@react-navigation/native-stack 7.0.0-rc.8 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/{index.cjs → index.js} +4 -4
- package/lib/commonjs/navigators/{createNativeStackNavigator.cjs → createNativeStackNavigator.js} +5 -3
- package/lib/commonjs/navigators/createNativeStackNavigator.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/{types.cjs → types.js} +1 -1
- package/lib/commonjs/utils/{debounce.cjs → debounce.js} +1 -1
- package/lib/commonjs/utils/{debounce.cjs.map → debounce.js.map} +1 -1
- package/lib/commonjs/utils/{getModalRoutesKeys.cjs → getModalRoutesKeys.js} +1 -1
- package/lib/commonjs/utils/{useAnimatedHeaderHeight.cjs → useAnimatedHeaderHeight.js} +1 -1
- package/lib/commonjs/utils/{useDismissedRouteError.cjs → useDismissedRouteError.js} +1 -1
- package/lib/commonjs/utils/{useInvalidPreventRemoveError.cjs → useInvalidPreventRemoveError.js} +1 -1
- package/lib/commonjs/views/{FontProcessor.cjs → FontProcessor.js} +1 -1
- package/lib/commonjs/views/{FontProcessor.native.cjs → FontProcessor.native.js} +1 -1
- package/lib/commonjs/views/FooterComponent.js +19 -0
- package/lib/commonjs/views/FooterComponent.js.map +1 -0
- package/lib/commonjs/views/{NativeStackView.cjs → NativeStackView.js} +46 -50
- package/lib/commonjs/views/NativeStackView.js.map +1 -0
- package/lib/commonjs/views/{NativeStackView.native.cjs → NativeStackView.native.js} +132 -145
- package/lib/commonjs/views/NativeStackView.native.js.map +1 -0
- package/lib/commonjs/views/{HeaderConfig.cjs → useHeaderConfigProps.js} +70 -49
- package/lib/commonjs/views/useHeaderConfigProps.js.map +1 -0
- package/lib/module/{index.mjs → index.js} +6 -4
- package/lib/module/index.js.map +1 -0
- package/lib/module/navigators/{createNativeStackNavigator.mjs → createNativeStackNavigator.js} +7 -3
- package/lib/module/navigators/createNativeStackNavigator.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/utils/{debounce.mjs → debounce.js} +3 -1
- package/lib/module/utils/debounce.js.map +1 -0
- package/lib/module/utils/{getModalRoutesKeys.mjs → getModalRoutesKeys.js} +3 -1
- package/lib/module/utils/getModalRoutesKeys.js.map +1 -0
- package/lib/module/utils/{useAnimatedHeaderHeight.mjs → useAnimatedHeaderHeight.js} +3 -1
- package/lib/module/utils/useAnimatedHeaderHeight.js.map +1 -0
- package/lib/module/utils/{useDismissedRouteError.mjs → useDismissedRouteError.js} +3 -1
- package/lib/module/utils/useDismissedRouteError.js.map +1 -0
- package/lib/module/utils/{useInvalidPreventRemoveError.mjs → useInvalidPreventRemoveError.js} +3 -1
- package/lib/module/utils/useInvalidPreventRemoveError.js.map +1 -0
- package/lib/module/views/{FontProcessor.mjs → FontProcessor.js} +3 -1
- package/lib/module/views/{FontProcessor.mjs.map → FontProcessor.js.map} +1 -1
- package/lib/module/views/{FontProcessor.native.mjs → FontProcessor.native.js} +3 -1
- package/lib/module/views/FontProcessor.native.js.map +1 -0
- package/lib/module/views/FooterComponent.js +14 -0
- package/lib/module/views/FooterComponent.js.map +1 -0
- package/lib/module/views/{NativeStackView.mjs → NativeStackView.js} +50 -52
- package/lib/module/views/NativeStackView.js.map +1 -0
- package/lib/module/views/{NativeStackView.native.mjs → NativeStackView.native.js} +135 -145
- package/lib/module/views/NativeStackView.native.js.map +1 -0
- package/lib/module/views/{HeaderConfig.mjs → useHeaderConfigProps.js} +72 -49
- package/lib/module/views/useHeaderConfigProps.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/{src → commonjs/src}/index.d.ts +1 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/{src → commonjs/src}/navigators/createNativeStackNavigator.d.ts +2 -2
- package/lib/typescript/commonjs/src/navigators/createNativeStackNavigator.d.ts.map +1 -0
- package/lib/typescript/{src → commonjs/src}/types.d.ts +113 -35
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/getModalRoutesKeys.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/useDismissedRouteError.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/useInvalidPreventRemoveError.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/FontProcessor.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/FontProcessor.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/FooterComponent.d.ts +7 -0
- package/lib/typescript/commonjs/src/views/FooterComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/NativeStackView.d.ts +11 -0
- package/lib/typescript/commonjs/src/views/NativeStackView.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/NativeStackView.native.d.ts +11 -0
- package/lib/typescript/commonjs/src/views/NativeStackView.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/views/useHeaderConfigProps.d.ts +41 -0
- package/lib/typescript/commonjs/src/views/useHeaderConfigProps.d.ts.map +1 -0
- package/lib/typescript/commonjs/tsconfig.build.tsbuildinfo +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/index.d.ts +17 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/navigators/createNativeStackNavigator.d.ts +16 -0
- package/lib/typescript/module/src/navigators/createNativeStackNavigator.d.ts.map +1 -0
- package/lib/typescript/module/src/types.d.ts +623 -0
- package/lib/typescript/module/src/types.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/debounce.d.ts +2 -0
- package/lib/typescript/module/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/getModalRoutesKeys.d.ts +4 -0
- package/lib/typescript/module/src/utils/getModalRoutesKeys.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/useAnimatedHeaderHeight.d.ts +5 -0
- package/lib/typescript/module/src/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/useDismissedRouteError.d.ts +6 -0
- package/lib/typescript/module/src/utils/useDismissedRouteError.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/useInvalidPreventRemoveError.d.ts +3 -0
- package/lib/typescript/module/src/utils/useInvalidPreventRemoveError.d.ts.map +1 -0
- package/lib/typescript/module/src/views/FontProcessor.d.ts +2 -0
- package/lib/typescript/module/src/views/FontProcessor.d.ts.map +1 -0
- package/lib/typescript/module/src/views/FontProcessor.native.d.ts +2 -0
- package/lib/typescript/module/src/views/FontProcessor.native.d.ts.map +1 -0
- package/lib/typescript/module/src/views/FooterComponent.d.ts +7 -0
- package/lib/typescript/module/src/views/FooterComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/views/NativeStackView.d.ts +11 -0
- package/lib/typescript/module/src/views/NativeStackView.d.ts.map +1 -0
- package/lib/typescript/module/src/views/NativeStackView.native.d.ts +11 -0
- package/lib/typescript/module/src/views/NativeStackView.native.d.ts.map +1 -0
- package/lib/typescript/module/src/views/useHeaderConfigProps.d.ts +41 -0
- package/lib/typescript/module/src/views/useHeaderConfigProps.d.ts.map +1 -0
- package/lib/typescript/module/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +36 -19
- package/src/index.tsx +2 -0
- package/src/navigators/createNativeStackNavigator.tsx +6 -5
- package/src/types.tsx +107 -35
- package/src/utils/debounce.tsx +1 -1
- package/src/views/FooterComponent.tsx +10 -0
- package/src/views/NativeStackView.native.tsx +168 -202
- package/src/views/NativeStackView.tsx +62 -50
- package/src/views/{HeaderConfig.tsx → useHeaderConfigProps.tsx} +80 -63
- package/lib/commonjs/navigators/createNativeStackNavigator.cjs.map +0 -1
- package/lib/commonjs/views/DebugContainer.cjs +0 -22
- package/lib/commonjs/views/DebugContainer.cjs.map +0 -1
- package/lib/commonjs/views/DebugContainer.native.cjs +0 -49
- package/lib/commonjs/views/DebugContainer.native.cjs.map +0 -1
- package/lib/commonjs/views/HeaderConfig.cjs.map +0 -1
- package/lib/commonjs/views/NativeStackView.cjs.map +0 -1
- package/lib/commonjs/views/NativeStackView.native.cjs.map +0 -1
- package/lib/module/index.mjs.map +0 -1
- package/lib/module/navigators/createNativeStackNavigator.mjs.map +0 -1
- package/lib/module/types.mjs +0 -2
- package/lib/module/utils/debounce.mjs.map +0 -1
- package/lib/module/utils/getModalRoutesKeys.mjs.map +0 -1
- package/lib/module/utils/useAnimatedHeaderHeight.mjs.map +0 -1
- package/lib/module/utils/useDismissedRouteError.mjs.map +0 -1
- package/lib/module/utils/useInvalidPreventRemoveError.mjs.map +0 -1
- package/lib/module/views/DebugContainer.mjs +0 -14
- package/lib/module/views/DebugContainer.mjs.map +0 -1
- package/lib/module/views/DebugContainer.native.mjs +0 -38
- package/lib/module/views/DebugContainer.native.mjs.map +0 -1
- package/lib/module/views/FontProcessor.native.mjs.map +0 -1
- package/lib/module/views/HeaderConfig.mjs.map +0 -1
- package/lib/module/views/NativeStackView.mjs.map +0 -1
- package/lib/module/views/NativeStackView.native.mjs.map +0 -1
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/navigators/createNativeStackNavigator.d.ts.map +0 -1
- package/lib/typescript/src/types.d.ts.map +0 -1
- package/lib/typescript/src/utils/debounce.d.ts.map +0 -1
- package/lib/typescript/src/utils/getModalRoutesKeys.d.ts.map +0 -1
- package/lib/typescript/src/utils/useAnimatedHeaderHeight.d.ts.map +0 -1
- package/lib/typescript/src/utils/useDismissedRouteError.d.ts.map +0 -1
- package/lib/typescript/src/utils/useInvalidPreventRemoveError.d.ts.map +0 -1
- package/lib/typescript/src/views/DebugContainer.d.ts +0 -10
- package/lib/typescript/src/views/DebugContainer.d.ts.map +0 -1
- package/lib/typescript/src/views/DebugContainer.native.d.ts +0 -15
- package/lib/typescript/src/views/DebugContainer.native.d.ts.map +0 -1
- package/lib/typescript/src/views/FontProcessor.d.ts.map +0 -1
- package/lib/typescript/src/views/FontProcessor.native.d.ts.map +0 -1
- package/lib/typescript/src/views/HeaderConfig.d.ts +0 -11
- package/lib/typescript/src/views/HeaderConfig.d.ts.map +0 -1
- package/lib/typescript/src/views/NativeStackView.d.ts +0 -10
- package/lib/typescript/src/views/NativeStackView.d.ts.map +0 -1
- package/lib/typescript/src/views/NativeStackView.native.d.ts +0 -10
- package/lib/typescript/src/views/NativeStackView.native.d.ts.map +0 -1
- package/src/views/DebugContainer.native.tsx +0 -36
- package/src/views/DebugContainer.tsx +0 -14
- /package/lib/commonjs/{index.cjs.map → index.js.map} +0 -0
- /package/lib/commonjs/{types.cjs.map → types.js.map} +0 -0
- /package/lib/commonjs/utils/{getModalRoutesKeys.cjs.map → getModalRoutesKeys.js.map} +0 -0
- /package/lib/commonjs/utils/{useAnimatedHeaderHeight.cjs.map → useAnimatedHeaderHeight.js.map} +0 -0
- /package/lib/commonjs/utils/{useDismissedRouteError.cjs.map → useDismissedRouteError.js.map} +0 -0
- /package/lib/commonjs/utils/{useInvalidPreventRemoveError.cjs.map → useInvalidPreventRemoveError.js.map} +0 -0
- /package/lib/commonjs/views/{FontProcessor.cjs.map → FontProcessor.js.map} +0 -0
- /package/lib/commonjs/views/{FontProcessor.native.cjs.map → FontProcessor.native.js.map} +0 -0
- /package/lib/module/{types.mjs.map → types.js.map} +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/debounce.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/getModalRoutesKeys.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/useAnimatedHeaderHeight.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/useDismissedRouteError.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/utils/useInvalidPreventRemoveError.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/views/FontProcessor.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/views/FontProcessor.native.d.ts +0 -0
|
@@ -1,68 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { getDefaultHeaderHeight, getHeaderTitle, HeaderBackContext, HeaderHeightContext, HeaderShownContext, SafeAreaProviderCompat } from '@react-navigation/elements';
|
|
2
4
|
import { NavigationContext, NavigationRouteContext, StackActions, usePreventRemoveContext, useTheme } from '@react-navigation/native';
|
|
3
5
|
import * as React from 'react';
|
|
4
6
|
import { Animated, Platform, StatusBar, StyleSheet, useAnimatedValue, View } from 'react-native';
|
|
5
7
|
import { useSafeAreaFrame, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { HeaderConfig } from "./HeaderConfig.mjs";
|
|
8
|
+
import { ScreenStack, ScreenStackItem } from 'react-native-screens';
|
|
9
|
+
import { debounce } from "../utils/debounce.js";
|
|
10
|
+
import { getModalRouteKeys } from "../utils/getModalRoutesKeys.js";
|
|
11
|
+
import { AnimatedHeaderHeightContext } from "../utils/useAnimatedHeaderHeight.js";
|
|
12
|
+
import { useDismissedRouteError } from "../utils/useDismissedRouteError.js";
|
|
13
|
+
import { useInvalidPreventRemoveError } from "../utils/useInvalidPreventRemoveError.js";
|
|
14
|
+
import { FooterComponent } from "./FooterComponent.js";
|
|
15
|
+
import { useHeaderConfigProps } from "./useHeaderConfigProps.js";
|
|
15
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
-
const
|
|
17
|
-
const MaybeNestedStack = ({
|
|
18
|
-
options,
|
|
19
|
-
route,
|
|
20
|
-
presentation,
|
|
21
|
-
headerHeight,
|
|
22
|
-
headerTopInsetEnabled,
|
|
23
|
-
children
|
|
24
|
-
}) => {
|
|
25
|
-
const {
|
|
26
|
-
colors
|
|
27
|
-
} = useTheme();
|
|
28
|
-
const {
|
|
29
|
-
header,
|
|
30
|
-
headerShown = true,
|
|
31
|
-
contentStyle
|
|
32
|
-
} = options;
|
|
33
|
-
const isHeaderInModal = isAndroid ? false : presentation !== 'card' && headerShown === true && header === undefined;
|
|
34
|
-
const headerShownPreviousRef = React.useRef(headerShown);
|
|
35
|
-
React.useEffect(() => {
|
|
36
|
-
warnOnce(!isAndroid && presentation !== 'card' && headerShownPreviousRef.current !== headerShown, `Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`);
|
|
37
|
-
headerShownPreviousRef.current = headerShown;
|
|
38
|
-
}, [headerShown, presentation, route.name]);
|
|
39
|
-
const content = /*#__PURE__*/_jsx(DebugContainer, {
|
|
40
|
-
style: [styles.container, presentation !== 'transparentModal' && presentation !== 'containedTransparentModal' && {
|
|
41
|
-
backgroundColor: colors.background
|
|
42
|
-
}, contentStyle],
|
|
43
|
-
stackPresentation: presentation === 'card' ? 'push' : presentation,
|
|
44
|
-
children: children
|
|
45
|
-
});
|
|
46
|
-
if (isHeaderInModal) {
|
|
47
|
-
return /*#__PURE__*/_jsx(ScreenStack, {
|
|
48
|
-
style: styles.container,
|
|
49
|
-
children: /*#__PURE__*/_jsxs(Screen, {
|
|
50
|
-
enabled: true,
|
|
51
|
-
isNativeStack: true,
|
|
52
|
-
hasLargeHeader: options.headerLargeTitle ?? false,
|
|
53
|
-
style: StyleSheet.absoluteFill,
|
|
54
|
-
children: [content, /*#__PURE__*/_jsx(HeaderConfig, {
|
|
55
|
-
...options,
|
|
56
|
-
route: route,
|
|
57
|
-
headerHeight: headerHeight,
|
|
58
|
-
headerTopInsetEnabled: headerTopInsetEnabled,
|
|
59
|
-
canGoBack: true
|
|
60
|
-
})]
|
|
61
|
-
})
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
return content;
|
|
65
|
-
};
|
|
17
|
+
const ANDROID_DEFAULT_HEADER_HEIGHT = 56;
|
|
66
18
|
const SceneView = ({
|
|
67
19
|
index,
|
|
68
20
|
focused,
|
|
@@ -70,6 +22,7 @@ const SceneView = ({
|
|
|
70
22
|
previousDescriptor,
|
|
71
23
|
nextDescriptor,
|
|
72
24
|
isPresentationModal,
|
|
25
|
+
isPreloaded,
|
|
73
26
|
onWillDisappear,
|
|
74
27
|
onWillAppear,
|
|
75
28
|
onAppear,
|
|
@@ -77,7 +30,8 @@ const SceneView = ({
|
|
|
77
30
|
onDismissed,
|
|
78
31
|
onHeaderBackButtonClicked,
|
|
79
32
|
onNativeDismissCancelled,
|
|
80
|
-
onGestureCancel
|
|
33
|
+
onGestureCancel,
|
|
34
|
+
onSheetDetentChanged
|
|
81
35
|
}) => {
|
|
82
36
|
const {
|
|
83
37
|
route,
|
|
@@ -94,6 +48,7 @@ const SceneView = ({
|
|
|
94
48
|
const {
|
|
95
49
|
animationDuration,
|
|
96
50
|
animationTypeForReplace = 'push',
|
|
51
|
+
fullScreenGestureShadowEnabled = true,
|
|
97
52
|
gestureEnabled,
|
|
98
53
|
gestureDirection = presentation === 'card' ? 'horizontal' : 'vertical',
|
|
99
54
|
gestureResponseDistance,
|
|
@@ -108,17 +63,21 @@ const SceneView = ({
|
|
|
108
63
|
navigationBarTranslucent,
|
|
109
64
|
navigationBarHidden,
|
|
110
65
|
orientation,
|
|
111
|
-
sheetAllowedDetents =
|
|
112
|
-
|
|
66
|
+
sheetAllowedDetents = [1.0],
|
|
67
|
+
sheetLargestUndimmedDetentIndex = -1,
|
|
113
68
|
sheetGrabberVisible = false,
|
|
114
69
|
sheetCornerRadius = -1.0,
|
|
70
|
+
sheetElevation = 24,
|
|
115
71
|
sheetExpandsWhenScrolledToEdge = true,
|
|
72
|
+
sheetInitialDetentIndex = 0,
|
|
116
73
|
statusBarAnimation,
|
|
117
74
|
statusBarHidden,
|
|
118
75
|
statusBarStyle,
|
|
119
76
|
statusBarTranslucent,
|
|
120
77
|
statusBarBackgroundColor,
|
|
121
|
-
|
|
78
|
+
unstable_sheetFooter = null,
|
|
79
|
+
freezeOnBlur,
|
|
80
|
+
contentStyle
|
|
122
81
|
} = options;
|
|
123
82
|
if (gestureDirection === 'vertical' && Platform.OS === 'ios') {
|
|
124
83
|
// for `vertical` direction to work, we need to set `fullScreenGestureEnabled` to `true`
|
|
@@ -146,6 +105,9 @@ const SceneView = ({
|
|
|
146
105
|
// for navigator with first screen as `modal` and the next as `card`
|
|
147
106
|
presentation = 'card';
|
|
148
107
|
}
|
|
108
|
+
const {
|
|
109
|
+
colors
|
|
110
|
+
} = useTheme();
|
|
149
111
|
const insets = useSafeAreaInsets();
|
|
150
112
|
const frame = useSafeAreaFrame();
|
|
151
113
|
|
|
@@ -166,7 +128,7 @@ const SceneView = ({
|
|
|
166
128
|
// FIXME: Currently screens isn't using Material 3
|
|
167
129
|
// So our `getDefaultHeaderHeight` doesn't return the correct value
|
|
168
130
|
// So we hardcode the value here for now until screens is updated
|
|
169
|
-
android:
|
|
131
|
+
android: ANDROID_DEFAULT_HEADER_HEIGHT + topInset,
|
|
170
132
|
default: getDefaultHeaderHeight(frame, isModal, topInset)
|
|
171
133
|
});
|
|
172
134
|
const [headerHeight, setHeaderHeight] = React.useState(defaultHeaderHeight);
|
|
@@ -177,7 +139,7 @@ const SceneView = ({
|
|
|
177
139
|
debounce(setHeaderHeight, 100), []);
|
|
178
140
|
const hasCustomHeader = header !== undefined;
|
|
179
141
|
let headerHeightCorrectionOffset = 0;
|
|
180
|
-
if (
|
|
142
|
+
if (Platform.OS === 'android' && !hasCustomHeader) {
|
|
181
143
|
const statusBarHeight = StatusBar.currentHeight ?? 0;
|
|
182
144
|
|
|
183
145
|
// FIXME: On Android, the native header height is not correctly calculated
|
|
@@ -196,29 +158,46 @@ const SceneView = ({
|
|
|
196
158
|
// we apply additional padding in header only if its true.
|
|
197
159
|
// For more details see: https://github.com/react-navigation/react-navigation/pull/12014
|
|
198
160
|
const headerTopInsetEnabled = typeof statusBarTranslucent === 'boolean' ? statusBarTranslucent : topInset !== 0;
|
|
161
|
+
const canGoBack = previousDescriptor != null || parentHeaderBack != null;
|
|
199
162
|
const backTitle = previousDescriptor ? getHeaderTitle(previousDescriptor.options, previousDescriptor.route.name) : parentHeaderBack?.title;
|
|
200
|
-
const headerBack = React.useMemo(() =>
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
163
|
+
const headerBack = React.useMemo(() => {
|
|
164
|
+
if (canGoBack) {
|
|
165
|
+
return {
|
|
166
|
+
href: undefined,
|
|
167
|
+
// No href needed for native
|
|
168
|
+
title: backTitle
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
return undefined;
|
|
172
|
+
}, [canGoBack, backTitle]);
|
|
205
173
|
const isRemovePrevented = preventedRoutes[route.key]?.preventRemove;
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
174
|
+
const headerConfig = useHeaderConfigProps({
|
|
175
|
+
...options,
|
|
176
|
+
route,
|
|
177
|
+
canGoBack,
|
|
178
|
+
headerBackButtonMenuEnabled: isRemovePrevented !== undefined ? !isRemovePrevented : headerBackButtonMenuEnabled,
|
|
179
|
+
headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : undefined,
|
|
180
|
+
headerHeight,
|
|
181
|
+
headerShown: header !== undefined ? false : headerShown,
|
|
182
|
+
headerTopInsetEnabled
|
|
183
|
+
});
|
|
184
|
+
return /*#__PURE__*/_jsx(ScreenStackItem, {
|
|
185
|
+
screenId: route.key,
|
|
186
|
+
activityState: isPreloaded ? 0 : 2,
|
|
209
187
|
style: StyleSheet.absoluteFill,
|
|
210
|
-
|
|
188
|
+
accessibilityElementsHidden: !focused,
|
|
189
|
+
importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',
|
|
211
190
|
customAnimationOnSwipe: animationMatchesGesture,
|
|
212
191
|
fullScreenSwipeEnabled: fullScreenGestureEnabled,
|
|
213
|
-
|
|
192
|
+
fullScreenSwipeShadowEnabled: fullScreenGestureShadowEnabled,
|
|
193
|
+
freezeOnBlur: freezeOnBlur,
|
|
194
|
+
gestureEnabled: Platform.OS === 'android' ?
|
|
214
195
|
// This prop enables handling of system back gestures on Android
|
|
215
196
|
// Since we handle them in JS side, we disable this
|
|
216
197
|
false : gestureEnabled,
|
|
217
198
|
homeIndicatorHidden: autoHideHomeIndicator,
|
|
218
199
|
hideKeyboardOnSwipe: keyboardHandlingEnabled,
|
|
219
|
-
navigationBarColor: navigationBarColor
|
|
220
|
-
// @ts-expect-error prop supported from react-native-screens 3.32.0 onwards
|
|
221
|
-
,
|
|
200
|
+
navigationBarColor: navigationBarColor,
|
|
222
201
|
navigationBarTranslucent: navigationBarTranslucent,
|
|
223
202
|
navigationBarHidden: navigationBarHidden,
|
|
224
203
|
replaceAnimation: animationTypeForReplace,
|
|
@@ -226,9 +205,11 @@ const SceneView = ({
|
|
|
226
205
|
stackAnimation: animation,
|
|
227
206
|
screenOrientation: orientation,
|
|
228
207
|
sheetAllowedDetents: sheetAllowedDetents,
|
|
229
|
-
|
|
208
|
+
sheetLargestUndimmedDetentIndex: sheetLargestUndimmedDetentIndex,
|
|
230
209
|
sheetGrabberVisible: sheetGrabberVisible,
|
|
210
|
+
sheetInitialDetentIndex: sheetInitialDetentIndex,
|
|
231
211
|
sheetCornerRadius: sheetCornerRadius,
|
|
212
|
+
sheetElevation: sheetElevation,
|
|
232
213
|
sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
|
|
233
214
|
statusBarAnimation: statusBarAnimation,
|
|
234
215
|
statusBarHidden: statusBarHidden,
|
|
@@ -243,6 +224,7 @@ const SceneView = ({
|
|
|
243
224
|
onDisappear: onDisappear,
|
|
244
225
|
onDismissed: onDismissed,
|
|
245
226
|
onGestureCancel: onGestureCancel,
|
|
227
|
+
onSheetDetentChanged: onSheetDetentChanged,
|
|
246
228
|
gestureResponseDistance: gestureResponseDistance,
|
|
247
229
|
nativeBackButtonDismissalEnabled: false // on Android
|
|
248
230
|
,
|
|
@@ -262,6 +244,12 @@ const SceneView = ({
|
|
|
262
244
|
}], {
|
|
263
245
|
useNativeDriver: true,
|
|
264
246
|
listener: e => {
|
|
247
|
+
if (Platform.OS === 'android' && (options.headerBackground != null || options.headerTransparent)) {
|
|
248
|
+
// FIXME: On Android, we get 0 if the header is translucent
|
|
249
|
+
// So we set a default height in that case
|
|
250
|
+
setHeaderHeight(ANDROID_DEFAULT_HEADER_HEIGHT + topInset);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
265
253
|
if (e.nativeEvent && typeof e.nativeEvent === 'object' && 'headerHeight' in e.nativeEvent && typeof e.nativeEvent.headerHeight === 'number') {
|
|
266
254
|
const headerHeight = e.nativeEvent.headerHeight + headerHeightCorrectionOffset;
|
|
267
255
|
|
|
@@ -275,70 +263,56 @@ const SceneView = ({
|
|
|
275
263
|
}
|
|
276
264
|
}
|
|
277
265
|
}
|
|
278
|
-
})
|
|
279
|
-
|
|
266
|
+
}),
|
|
267
|
+
contentStyle: [presentation !== 'transparentModal' && presentation !== 'containedTransparentModal' && {
|
|
268
|
+
backgroundColor: colors.background
|
|
269
|
+
}, contentStyle],
|
|
270
|
+
headerConfig: headerConfig
|
|
271
|
+
// When ts-expect-error is added, it affects all the props below it
|
|
272
|
+
// So we keep any props that need it at the end
|
|
273
|
+
// Otherwise invalid props may not be caught by TypeScript
|
|
280
274
|
,
|
|
281
|
-
freezeOnBlur: freezeOnBlur,
|
|
282
275
|
children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
|
|
283
276
|
value: navigation,
|
|
284
277
|
children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
|
|
285
278
|
value: route,
|
|
286
|
-
children: /*#__PURE__*/_jsx(
|
|
287
|
-
value:
|
|
288
|
-
children: /*#__PURE__*/
|
|
289
|
-
value:
|
|
290
|
-
children:
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
style: headerTransparent ? styles.absolute : null,
|
|
324
|
-
children: header({
|
|
325
|
-
back: headerBack,
|
|
326
|
-
options,
|
|
327
|
-
route,
|
|
328
|
-
navigation
|
|
329
|
-
})
|
|
330
|
-
}) : null]
|
|
331
|
-
}), /*#__PURE__*/_jsx(HeaderConfig, {
|
|
332
|
-
...options,
|
|
333
|
-
route: route,
|
|
334
|
-
headerBackButtonMenuEnabled: isRemovePrevented !== undefined ? !isRemovePrevented : headerBackButtonMenuEnabled,
|
|
335
|
-
headerShown: header !== undefined ? false : headerShown,
|
|
336
|
-
headerHeight: headerHeight,
|
|
337
|
-
headerBackTitle: options.headerBackTitle !== undefined ? options.headerBackTitle : undefined,
|
|
338
|
-
headerTopInsetEnabled: headerTopInsetEnabled,
|
|
339
|
-
canGoBack: headerBack !== undefined
|
|
340
|
-
})]
|
|
341
|
-
})
|
|
279
|
+
children: /*#__PURE__*/_jsx(AnimatedHeaderHeightContext.Provider, {
|
|
280
|
+
value: animatedHeaderHeight,
|
|
281
|
+
children: /*#__PURE__*/_jsxs(HeaderHeightContext.Provider, {
|
|
282
|
+
value: headerShown !== false ? headerHeight : parentHeaderHeight ?? 0,
|
|
283
|
+
children: [headerBackground != null ?
|
|
284
|
+
/*#__PURE__*/
|
|
285
|
+
/**
|
|
286
|
+
* To show a custom header background, we render it at the top of the screen below the header
|
|
287
|
+
* The header also needs to be positioned absolutely (with `translucent` style)
|
|
288
|
+
*/
|
|
289
|
+
_jsx(View, {
|
|
290
|
+
style: [styles.background, headerTransparent ? styles.translucent : null, {
|
|
291
|
+
height: headerHeight
|
|
292
|
+
}],
|
|
293
|
+
children: headerBackground()
|
|
294
|
+
}) : null, header !== undefined && headerShown !== false ? /*#__PURE__*/_jsx(View, {
|
|
295
|
+
onLayout: e => {
|
|
296
|
+
const headerHeight = e.nativeEvent.layout.height;
|
|
297
|
+
setHeaderHeight(headerHeight);
|
|
298
|
+
rawAnimatedHeaderHeight.setValue(headerHeight);
|
|
299
|
+
},
|
|
300
|
+
style: [styles.header, headerTransparent ? styles.absolute : null],
|
|
301
|
+
children: header({
|
|
302
|
+
back: headerBack,
|
|
303
|
+
options,
|
|
304
|
+
route,
|
|
305
|
+
navigation
|
|
306
|
+
})
|
|
307
|
+
}) : null, /*#__PURE__*/_jsx(HeaderShownContext.Provider, {
|
|
308
|
+
value: isParentHeaderShown || headerShown !== false,
|
|
309
|
+
children: /*#__PURE__*/_jsx(HeaderBackContext.Provider, {
|
|
310
|
+
value: headerBack,
|
|
311
|
+
children: render()
|
|
312
|
+
})
|
|
313
|
+
}), presentation === 'formSheet' && unstable_sheetFooter && /*#__PURE__*/_jsx(FooterComponent, {
|
|
314
|
+
children: unstable_sheetFooter()
|
|
315
|
+
})]
|
|
342
316
|
})
|
|
343
317
|
})
|
|
344
318
|
})
|
|
@@ -348,7 +322,8 @@ const SceneView = ({
|
|
|
348
322
|
export function NativeStackView({
|
|
349
323
|
state,
|
|
350
324
|
navigation,
|
|
351
|
-
descriptors
|
|
325
|
+
descriptors,
|
|
326
|
+
describe
|
|
352
327
|
}) {
|
|
353
328
|
const {
|
|
354
329
|
setNextDismissedKey
|
|
@@ -358,20 +333,25 @@ export function NativeStackView({
|
|
|
358
333
|
} = useTheme();
|
|
359
334
|
useInvalidPreventRemoveError(descriptors);
|
|
360
335
|
const modalRouteKeys = getModalRouteKeys(state.routes, descriptors);
|
|
336
|
+
const preloadedDescriptors = state.preloadedRoutes.reduce((acc, route) => {
|
|
337
|
+
acc[route.key] = acc[route.key] || describe(route, true);
|
|
338
|
+
return acc;
|
|
339
|
+
}, {});
|
|
361
340
|
return /*#__PURE__*/_jsx(SafeAreaProviderCompat, {
|
|
362
341
|
style: {
|
|
363
342
|
backgroundColor: colors.background
|
|
364
343
|
},
|
|
365
344
|
children: /*#__PURE__*/_jsx(ScreenStack, {
|
|
366
345
|
style: styles.container,
|
|
367
|
-
children: state.routes.map((route, index) => {
|
|
368
|
-
const descriptor = descriptors[route.key];
|
|
346
|
+
children: state.routes.concat(state.preloadedRoutes).map((route, index) => {
|
|
347
|
+
const descriptor = descriptors[route.key] ?? preloadedDescriptors[route.key];
|
|
369
348
|
const isFocused = state.index === index;
|
|
370
349
|
const previousKey = state.routes[index - 1]?.key;
|
|
371
350
|
const nextKey = state.routes[index + 1]?.key;
|
|
372
351
|
const previousDescriptor = previousKey ? descriptors[previousKey] : undefined;
|
|
373
352
|
const nextDescriptor = nextKey ? descriptors[nextKey] : undefined;
|
|
374
353
|
const isModal = modalRouteKeys.includes(route.key);
|
|
354
|
+
const isPreloaded = preloadedDescriptors[route.key] !== undefined && descriptors[route.key] === undefined;
|
|
375
355
|
return /*#__PURE__*/_jsx(SceneView, {
|
|
376
356
|
index: index,
|
|
377
357
|
focused: isFocused,
|
|
@@ -379,6 +359,7 @@ export function NativeStackView({
|
|
|
379
359
|
previousDescriptor: previousDescriptor,
|
|
380
360
|
nextDescriptor: nextDescriptor,
|
|
381
361
|
isPresentationModal: isModal,
|
|
362
|
+
isPreloaded: isPreloaded,
|
|
382
363
|
onWillDisappear: () => {
|
|
383
364
|
navigation.emit({
|
|
384
365
|
type: 'transitionStart',
|
|
@@ -442,6 +423,16 @@ export function NativeStackView({
|
|
|
442
423
|
type: 'gestureCancel',
|
|
443
424
|
target: route.key
|
|
444
425
|
});
|
|
426
|
+
},
|
|
427
|
+
onSheetDetentChanged: event => {
|
|
428
|
+
navigation.emit({
|
|
429
|
+
type: 'sheetDetentChange',
|
|
430
|
+
target: route.key,
|
|
431
|
+
data: {
|
|
432
|
+
index: event.nativeEvent.index,
|
|
433
|
+
stable: event.nativeEvent.isStable
|
|
434
|
+
}
|
|
435
|
+
});
|
|
445
436
|
}
|
|
446
437
|
}, route.key);
|
|
447
438
|
})
|
|
@@ -452,9 +443,8 @@ const styles = StyleSheet.create({
|
|
|
452
443
|
container: {
|
|
453
444
|
flex: 1
|
|
454
445
|
},
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
flexDirection: 'column-reverse'
|
|
446
|
+
header: {
|
|
447
|
+
zIndex: 1
|
|
458
448
|
},
|
|
459
449
|
absolute: {
|
|
460
450
|
position: 'absolute',
|
|
@@ -474,4 +464,4 @@ const styles = StyleSheet.create({
|
|
|
474
464
|
overflow: 'hidden'
|
|
475
465
|
}
|
|
476
466
|
});
|
|
477
|
-
//# sourceMappingURL=NativeStackView.native.
|
|
467
|
+
//# sourceMappingURL=NativeStackView.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getDefaultHeaderHeight","getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","StackActions","usePreventRemoveContext","useTheme","React","Animated","Platform","StatusBar","StyleSheet","useAnimatedValue","View","useSafeAreaFrame","useSafeAreaInsets","ScreenStack","ScreenStackItem","debounce","getModalRouteKeys","AnimatedHeaderHeightContext","useDismissedRouteError","useInvalidPreventRemoveError","FooterComponent","useHeaderConfigProps","jsx","_jsx","jsxs","_jsxs","ANDROID_DEFAULT_HEADER_HEIGHT","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","isPresentationModal","isPreloaded","onWillDisappear","onWillAppear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","onGestureCancel","onSheetDetentChanged","route","navigation","options","render","animation","animationMatchesGesture","presentation","fullScreenGestureEnabled","animationDuration","animationTypeForReplace","fullScreenGestureShadowEnabled","gestureEnabled","gestureDirection","gestureResponseDistance","header","headerBackButtonMenuEnabled","headerShown","headerBackground","headerTransparent","autoHideHomeIndicator","keyboardHandlingEnabled","navigationBarColor","navigationBarTranslucent","navigationBarHidden","orientation","sheetAllowedDetents","sheetLargestUndimmedDetentIndex","sheetGrabberVisible","sheetCornerRadius","sheetElevation","sheetExpandsWhenScrolledToEdge","sheetInitialDetentIndex","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarBackgroundColor","unstable_sheetFooter","freezeOnBlur","contentStyle","OS","undefined","nextGestureDirection","gestureDirectionOverride","colors","insets","frame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","parentHeaderHeight","parentHeaderBack","topInset","top","preventedRoutes","defaultHeaderHeight","select","android","default","headerHeight","setHeaderHeight","useState","setHeaderHeightDebounced","useCallback","hasCustomHeader","headerHeightCorrectionOffset","statusBarHeight","currentHeight","rawAnimatedHeaderHeight","animatedHeaderHeight","useMemo","add","headerTopInsetEnabled","canGoBack","backTitle","name","title","headerBack","href","isRemovePrevented","key","preventRemove","headerConfig","headerBackTitle","screenId","activityState","style","absoluteFill","accessibilityElementsHidden","importantForAccessibility","customAnimationOnSwipe","fullScreenSwipeEnabled","fullScreenSwipeShadowEnabled","homeIndicatorHidden","hideKeyboardOnSwipe","replaceAnimation","stackPresentation","stackAnimation","screenOrientation","statusBarColor","swipeDirection","transitionDuration","nativeBackButtonDismissalEnabled","preventNativeDismiss","onHeaderHeightChange","event","nativeEvent","useNativeDriver","listener","e","doesHeaderAnimate","headerLargeTitle","headerSearchBarOptions","backgroundColor","background","children","Provider","value","styles","translucent","onLayout","layout","setValue","absolute","back","NativeStackView","state","descriptors","describe","setNextDismissedKey","modalRouteKeys","routes","preloadedDescriptors","preloadedRoutes","reduce","acc","container","concat","map","isFocused","previousKey","nextKey","includes","emit","type","data","closing","target","dispatch","pop","dismissCount","source","stable","isStable","create","flex","zIndex","position","start","end","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { getHeaderTitle, HeaderTitle } from '@react-navigation/elements';
|
|
2
4
|
import { useLocale, useTheme } from '@react-navigation/native';
|
|
3
5
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
4
|
-
import { isSearchBarAvailableForCurrentPlatform, ScreenStackHeaderBackButtonImage, ScreenStackHeaderCenterView,
|
|
5
|
-
import { processFonts } from
|
|
6
|
+
import { isSearchBarAvailableForCurrentPlatform, ScreenStackHeaderBackButtonImage, ScreenStackHeaderCenterView, ScreenStackHeaderLeftView, ScreenStackHeaderRightView, ScreenStackHeaderSearchBarView, SearchBar } from 'react-native-screens';
|
|
7
|
+
import { processFonts } from './FontProcessor';
|
|
6
8
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
export function
|
|
9
|
+
export function useHeaderConfigProps({
|
|
8
10
|
headerBackImageSource,
|
|
11
|
+
headerBackButtonDisplayMode,
|
|
9
12
|
headerBackButtonMenuEnabled,
|
|
10
13
|
headerBackTitle,
|
|
11
14
|
headerBackTitleStyle,
|
|
12
|
-
headerBackTitleVisible = true,
|
|
13
15
|
headerBackVisible,
|
|
14
16
|
headerShadowVisible,
|
|
15
17
|
headerLargeStyle,
|
|
@@ -106,40 +108,21 @@ export function HeaderConfig({
|
|
|
106
108
|
* - Back button should stay visible when `headerLeft` is specified
|
|
107
109
|
* - If `headerTitle` for Android is specified, so we only need to remove the title and keep the back button
|
|
108
110
|
*/
|
|
109
|
-
const backButtonInCustomView = headerBackVisible
|
|
111
|
+
const backButtonInCustomView = headerBackVisible || Platform.OS === 'android' && headerTitleElement != null && headerLeftElement == null;
|
|
110
112
|
const translucent = headerBackground != null || headerTransparent ||
|
|
111
113
|
// When using a SearchBar or large title, the header needs to be translucent for it to work on iOS
|
|
112
114
|
(hasHeaderSearchBar || headerLargeTitle) && Platform.OS === 'ios' && headerTransparent !== false;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
hidden: headerShown === false,
|
|
125
|
-
hideBackButton: headerBackVisible === false,
|
|
126
|
-
hideShadow: headerShadowVisible === false || headerBackground != null || headerTransparent && headerShadowVisible !== true,
|
|
127
|
-
largeTitle: headerLargeTitle,
|
|
128
|
-
largeTitleBackgroundColor: largeTitleBackgroundColor,
|
|
129
|
-
largeTitleColor: largeTitleColor,
|
|
130
|
-
largeTitleFontFamily: largeTitleFontFamily,
|
|
131
|
-
largeTitleFontSize: largeTitleFontSize,
|
|
132
|
-
largeTitleFontWeight: largeTitleFontWeight,
|
|
133
|
-
largeTitleHideShadow: headerLargeTitleShadowVisible === false,
|
|
134
|
-
title: titleText,
|
|
135
|
-
titleColor: titleColor,
|
|
136
|
-
titleFontFamily: titleFontFamily,
|
|
137
|
-
titleFontSize: titleFontSize,
|
|
138
|
-
titleFontWeight: String(titleFontWeight),
|
|
139
|
-
topInsetEnabled: headerTopInsetEnabled,
|
|
140
|
-
translucent:
|
|
141
|
-
// This defaults to `true`, so we can't pass `undefined`
|
|
142
|
-
translucent === true,
|
|
115
|
+
const isBackButtonDisplayModeAvailable =
|
|
116
|
+
// On iOS 14+
|
|
117
|
+
Platform.OS === 'ios' && parseInt(Platform.Version, 10) >= 14 &&
|
|
118
|
+
// Doesn't have custom back title
|
|
119
|
+
headerBackTitle == null &&
|
|
120
|
+
// Doesn't have custom styling
|
|
121
|
+
backTitleFontFamily == null && backTitleFontSize == null &&
|
|
122
|
+
// Back button menu is not disabled
|
|
123
|
+
headerBackButtonMenuEnabled !== false;
|
|
124
|
+
const isCenterViewRenderedAndroid = headerTitleAlign === 'center';
|
|
125
|
+
const children = /*#__PURE__*/_jsxs(_Fragment, {
|
|
143
126
|
children: [Platform.OS === 'ios' ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
144
127
|
children: [headerLeftElement != null ? /*#__PURE__*/_jsx(ScreenStackHeaderLeftView, {
|
|
145
128
|
children: headerLeftElement
|
|
@@ -147,16 +130,31 @@ export function HeaderConfig({
|
|
|
147
130
|
children: headerTitleElement
|
|
148
131
|
}) : null]
|
|
149
132
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
150
|
-
children: [headerLeftElement != null || typeof headerTitle === 'function' ?
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
133
|
+
children: [headerLeftElement != null || typeof headerTitle === 'function' ?
|
|
134
|
+
/*#__PURE__*/
|
|
135
|
+
// The style passed to header left, together with title element being wrapped
|
|
136
|
+
// in flex view is reqruied for proper header layout, in particular,
|
|
137
|
+
// for the text truncation to work.
|
|
138
|
+
_jsxs(ScreenStackHeaderLeftView, {
|
|
139
|
+
style: !isCenterViewRenderedAndroid ? {
|
|
140
|
+
flex: 1
|
|
141
|
+
} : null,
|
|
142
|
+
children: [headerLeftElement, headerTitleAlign !== 'center' ? typeof headerTitle === 'function' ? /*#__PURE__*/_jsx(View, {
|
|
143
|
+
style: {
|
|
144
|
+
flex: 1
|
|
145
|
+
},
|
|
146
|
+
children: headerTitleElement
|
|
147
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
148
|
+
style: {
|
|
149
|
+
flex: 1
|
|
150
|
+
},
|
|
151
|
+
children: /*#__PURE__*/_jsx(HeaderTitle, {
|
|
154
152
|
tintColor: tintColor,
|
|
155
153
|
style: headerTitleStyleSupported,
|
|
156
154
|
children: titleText
|
|
157
|
-
})
|
|
158
|
-
})
|
|
159
|
-
}) : null,
|
|
155
|
+
})
|
|
156
|
+
}) : null]
|
|
157
|
+
}) : null, isCenterViewRenderedAndroid ? /*#__PURE__*/_jsx(ScreenStackHeaderCenterView, {
|
|
160
158
|
children: typeof headerTitle === 'function' ? headerTitleElement : /*#__PURE__*/_jsx(HeaderTitle, {
|
|
161
159
|
tintColor: tintColor,
|
|
162
160
|
style: headerTitleStyleSupported,
|
|
@@ -173,11 +171,36 @@ export function HeaderConfig({
|
|
|
173
171
|
})
|
|
174
172
|
}) : null]
|
|
175
173
|
});
|
|
174
|
+
return {
|
|
175
|
+
backButtonInCustomView,
|
|
176
|
+
backgroundColor: headerBackgroundColor,
|
|
177
|
+
backTitle: headerBackTitle,
|
|
178
|
+
backTitleVisible: isBackButtonDisplayModeAvailable ? undefined : headerBackButtonDisplayMode !== 'minimal',
|
|
179
|
+
backButtonDisplayMode: isBackButtonDisplayModeAvailable ? headerBackButtonDisplayMode : undefined,
|
|
180
|
+
backTitleFontFamily,
|
|
181
|
+
backTitleFontSize,
|
|
182
|
+
blurEffect: headerBlurEffect,
|
|
183
|
+
color: tintColor,
|
|
184
|
+
direction,
|
|
185
|
+
disableBackButtonMenu: headerBackButtonMenuEnabled === false,
|
|
186
|
+
hidden: headerShown === false,
|
|
187
|
+
hideBackButton: headerBackVisible === false,
|
|
188
|
+
hideShadow: headerShadowVisible === false || headerBackground != null || headerTransparent && headerShadowVisible !== true,
|
|
189
|
+
largeTitle: headerLargeTitle,
|
|
190
|
+
largeTitleBackgroundColor,
|
|
191
|
+
largeTitleColor,
|
|
192
|
+
largeTitleFontFamily,
|
|
193
|
+
largeTitleFontSize,
|
|
194
|
+
largeTitleFontWeight,
|
|
195
|
+
largeTitleHideShadow: headerLargeTitleShadowVisible === false,
|
|
196
|
+
title: titleText,
|
|
197
|
+
titleColor,
|
|
198
|
+
titleFontFamily,
|
|
199
|
+
titleFontSize,
|
|
200
|
+
titleFontWeight: String(titleFontWeight),
|
|
201
|
+
topInsetEnabled: headerTopInsetEnabled,
|
|
202
|
+
translucent: translucent === true,
|
|
203
|
+
children
|
|
204
|
+
};
|
|
176
205
|
}
|
|
177
|
-
|
|
178
|
-
row: {
|
|
179
|
-
flexDirection: 'row',
|
|
180
|
-
alignItems: 'center'
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
//# sourceMappingURL=HeaderConfig.mjs.map
|
|
206
|
+
//# sourceMappingURL=useHeaderConfigProps.js.map
|