Skip to content
This repository was archived by the owner on Feb 25, 2020. It is now read-only.

Commit a21206f

Browse files
committed
fix: fix calculating default header height
1 parent 15023fa commit a21206f

File tree

2 files changed

+36
-22
lines changed

2 files changed

+36
-22
lines changed

src/views/Stack/Stack.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ViewProps,
99
} from 'react-native';
1010
import { NavigationRoute } from 'react-navigation';
11+
import { EdgeInsets } from 'react-native-safe-area-context';
1112
import Animated from 'react-native-reanimated';
1213
import * as Screens from 'react-native-screens'; // Import with * as to prevent getters being called
1314
import { getDefaultHeaderHeight } from '../Header/HeaderSegment';
@@ -34,6 +35,7 @@ type ProgressValues = {
3435

3536
type Props = {
3637
mode: 'card' | 'modal';
38+
insets: EdgeInsets | null;
3739
navigation: NavigationStackProp;
3840
descriptors: SceneDescriptorMap;
3941
routes: NavigationRoute[];
@@ -111,10 +113,12 @@ const ANIMATED_ONE = new Animated.Value(1);
111113

112114
const getFloatingHeaderHeights = (
113115
routes: NavigationRoute[],
116+
insets: EdgeInsets | null,
114117
layout: Layout,
115118
previous: { [key: string]: number }
116119
) => {
117-
const defaultHeaderHeight = getDefaultHeaderHeight(layout);
120+
const defaultHeaderHeight =
121+
getDefaultHeaderHeight(layout) + (insets ? insets.top : 0);
118122

119123
return routes.reduce(
120124
(acc, curr) => {
@@ -198,6 +202,7 @@ export default class Stack extends React.Component<Props, State> {
198202
descriptors: props.descriptors,
199203
floatingHeaderHeights: getFloatingHeaderHeights(
200204
props.routes,
205+
props.insets,
201206
state.layout,
202207
state.floatingHeaderHeights
203208
),
@@ -234,6 +239,7 @@ export default class Stack extends React.Component<Props, State> {
234239
layout,
235240
floatingHeaderHeights: getFloatingHeaderHeights(
236241
this.props.routes,
242+
this.props.insets,
237243
layout,
238244
{}
239245
),

src/views/Stack/StackView.tsx

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import * as React from 'react';
22
import { Platform } from 'react-native';
3-
import { SafeAreaProvider } from 'react-native-safe-area-context';
3+
import {
4+
SafeAreaProvider,
5+
SafeAreaConsumer,
6+
} from 'react-native-safe-area-context';
47
import { SceneView, StackActions, NavigationRoute } from 'react-navigation';
58
import Stack from './Stack';
69
import HeaderContainer, {
@@ -339,26 +342,31 @@ class StackView extends React.Component<Props, State> {
339342

340343
return (
341344
<SafeAreaProvider>
342-
<Stack
343-
mode={mode}
344-
getPreviousRoute={this.getPreviousRoute}
345-
getGesturesEnabled={this.getGesturesEnabled}
346-
routes={routes}
347-
openingRoutesKeys={openingRouteKeys}
348-
closingRoutesKeys={closingRouteKeys}
349-
onGoBack={this.handleGoBack}
350-
onOpenRoute={this.handleOpenRoute}
351-
onCloseRoute={this.handleCloseRoute}
352-
onPageChangeStart={onPageChangeStart}
353-
onPageChangeConfirm={onPageChangeConfirm}
354-
onPageChangeCancel={onPageChangeCancel}
355-
renderHeader={this.renderHeader}
356-
renderScene={this.renderScene}
357-
headerMode={headerMode}
358-
navigation={navigation}
359-
descriptors={descriptors}
360-
{...config}
361-
/>
345+
<SafeAreaConsumer>
346+
{insets => (
347+
<Stack
348+
mode={mode}
349+
insets={insets}
350+
getPreviousRoute={this.getPreviousRoute}
351+
getGesturesEnabled={this.getGesturesEnabled}
352+
routes={routes}
353+
openingRoutesKeys={openingRouteKeys}
354+
closingRoutesKeys={closingRouteKeys}
355+
onGoBack={this.handleGoBack}
356+
onOpenRoute={this.handleOpenRoute}
357+
onCloseRoute={this.handleCloseRoute}
358+
onPageChangeStart={onPageChangeStart}
359+
onPageChangeConfirm={onPageChangeConfirm}
360+
onPageChangeCancel={onPageChangeCancel}
361+
renderHeader={this.renderHeader}
362+
renderScene={this.renderScene}
363+
headerMode={headerMode}
364+
navigation={navigation}
365+
descriptors={descriptors}
366+
{...config}
367+
/>
368+
)}
369+
</SafeAreaConsumer>
362370
</SafeAreaProvider>
363371
);
364372
}

0 commit comments

Comments
 (0)