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