react-native-screens 3.18.2 → 3.19.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/README.md +30 -38
- package/android/build.gradle +1 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +10 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +15 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +5 -0
- package/ios/RNSConvert.h +6 -0
- package/ios/RNSConvert.mm +26 -0
- package/ios/RNSEnums.h +6 -0
- package/ios/RNSFullWindowOverlay.mm +32 -0
- package/ios/RNSScreen.h +10 -2
- package/ios/RNSScreen.mm +133 -2
- package/ios/RNSScreenStackHeaderConfig.mm +17 -1
- package/lib/commonjs/TransitionProgressContext.js +2 -7
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/createNativeStackNavigator.js +29 -76
- package/lib/commonjs/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +2 -10
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +2 -10
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +0 -7
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/index.js +21 -45
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.native.js +43 -103
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/index.js +6 -11
- package/lib/commonjs/native-stack/index.js.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -25
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/native-stack/types.js +4 -0
- package/lib/commonjs/native-stack/types.js.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +2 -6
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +11 -19
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +0 -7
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +7 -18
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -10
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +1 -6
- package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/commonjs/native-stack/views/HeaderConfig.js +46 -50
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +32 -58
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +11 -21
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js +3 -10
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +3 -19
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +2 -7
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/commonjs/reanimated/index.js +0 -3
- package/lib/commonjs/reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -10
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/commonjs/types.js +4 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useTransitionProgress.js +2 -10
- package/lib/commonjs/useTransitionProgress.js.map +1 -1
- package/lib/commonjs/utils.js +0 -4
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/TransitionProgressContext.js.map +1 -1
- package/lib/module/createNativeStackNavigator.js +29 -67
- package/lib/module/createNativeStackNavigator.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +0 -1
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/index.js +13 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.native.js +45 -93
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/index.js +3 -2
- package/lib/module/native-stack/index.js.map +1 -1
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js +16 -16
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/native-stack/types.js +1 -1
- package/lib/module/native-stack/types.js.map +1 -1
- package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +8 -7
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +0 -4
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useBackPressSubscription.js +7 -8
- package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/module/native-stack/utils/useHeaderHeight.js +0 -2
- package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/views/FontProcessor.js +0 -3
- package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/module/native-stack/views/HeaderConfig.js +44 -39
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +32 -42
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js +12 -9
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js +5 -4
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js +3 -14
- package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +2 -1
- package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/module/reanimated/index.js.map +1 -1
- package/lib/module/reanimated/useReanimatedTransitionProgress.js +0 -2
- package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/module/types.js +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/useTransitionProgress.js +0 -2
- package/lib/module/useTransitionProgress.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -0
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -0
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -0
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/types.d.ts +1 -0
- package/package.json +9 -1
- package/src/createNativeStackNavigator.tsx +4 -2
- package/src/fabric/ScreenNativeComponent.js +7 -0
- package/src/index.native.tsx +32 -16
- package/src/index.tsx +13 -8
- package/src/native-stack/types.tsx +4 -5
- package/src/native-stack/views/HeaderConfig.tsx +8 -10
- package/src/native-stack/views/NativeStackView.tsx +8 -4
- package/src/reanimated/ReanimatedNativeStackScreen.tsx +5 -3
- package/src/reanimated/ReanimatedScreen.tsx +1 -1
|
@@ -4,33 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _reactNative = require("react-native");
|
|
11
|
-
|
|
12
9
|
var _reactNativeScreens = require("react-native-screens");
|
|
13
|
-
|
|
14
10
|
var _reactNavigation = require("react-navigation");
|
|
15
|
-
|
|
16
11
|
var _reactNavigationStack = require("react-navigation-stack");
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
-
|
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
22
14
|
const REMOVE_ACTION = 'NativeStackNavigator/REMOVE';
|
|
23
15
|
const isAndroid = _reactNative.Platform.OS === 'android';
|
|
24
16
|
let didWarn = isAndroid;
|
|
25
|
-
|
|
26
17
|
function renderComponentOrThunk(componentOrThunk, props) {
|
|
27
18
|
if (typeof componentOrThunk === 'function') {
|
|
28
19
|
return componentOrThunk(props);
|
|
29
20
|
}
|
|
30
|
-
|
|
31
21
|
return componentOrThunk;
|
|
32
22
|
}
|
|
33
|
-
|
|
34
23
|
function removeScene(route, dismissCount, navigation) {
|
|
35
24
|
navigation.dispatch({
|
|
36
25
|
// @ts-ignore special navigation action for native stack
|
|
@@ -40,23 +29,19 @@ function removeScene(route, dismissCount, navigation) {
|
|
|
40
29
|
dismissCount
|
|
41
30
|
});
|
|
42
31
|
}
|
|
43
|
-
|
|
44
32
|
function onAppear(route, descriptor, navigation) {
|
|
45
33
|
var _descriptor$options, _descriptor$options$o;
|
|
46
|
-
|
|
47
34
|
(_descriptor$options = descriptor.options) === null || _descriptor$options === void 0 ? void 0 : (_descriptor$options$o = _descriptor$options.onAppear) === null || _descriptor$options$o === void 0 ? void 0 : _descriptor$options$o.call(_descriptor$options);
|
|
48
35
|
navigation.dispatch(_reactNavigation.StackActions.completeTransition({
|
|
49
36
|
toChildKey: route.key,
|
|
50
37
|
key: navigation.state.key
|
|
51
38
|
}));
|
|
52
39
|
}
|
|
53
|
-
|
|
54
40
|
function onFinishTransitioning(navigation) {
|
|
55
41
|
const {
|
|
56
42
|
routes
|
|
57
43
|
} = navigation.state;
|
|
58
44
|
const lastRoute = (routes === null || routes === void 0 ? void 0 : routes.length) && routes[routes.length - 1];
|
|
59
|
-
|
|
60
45
|
if (lastRoute) {
|
|
61
46
|
navigation.dispatch(_reactNavigation.StackActions.completeTransition({
|
|
62
47
|
toChildKey: lastRoute.key,
|
|
@@ -64,7 +49,6 @@ function onFinishTransitioning(navigation) {
|
|
|
64
49
|
}));
|
|
65
50
|
}
|
|
66
51
|
}
|
|
67
|
-
|
|
68
52
|
function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
69
53
|
const {
|
|
70
54
|
options
|
|
@@ -130,31 +114,25 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
130
114
|
translucent: headerTranslucent || translucent || false
|
|
131
115
|
};
|
|
132
116
|
const hasHeader = headerShown !== false && headerMode !== 'none' && options.header !== null;
|
|
133
|
-
|
|
134
117
|
if (!hasHeader) {
|
|
135
118
|
return /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderConfig, _extends({}, headerOptions, {
|
|
136
119
|
hidden: true
|
|
137
120
|
}));
|
|
138
121
|
}
|
|
139
|
-
|
|
140
122
|
if (headerStyle !== undefined) {
|
|
141
123
|
headerOptions.backgroundColor = headerStyle.backgroundColor;
|
|
142
124
|
headerOptions.blurEffect = headerStyle.blurEffect;
|
|
143
125
|
}
|
|
144
|
-
|
|
145
126
|
const children = [];
|
|
146
|
-
|
|
147
127
|
if (options.backButtonImage) {
|
|
148
128
|
children.push( /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderBackButtonImage, {
|
|
149
129
|
key: "backImage",
|
|
150
130
|
source: options.backButtonImage
|
|
151
131
|
}));
|
|
152
132
|
}
|
|
153
|
-
|
|
154
133
|
if (_reactNative.Platform.OS === 'ios' && options.searchBar) {
|
|
155
134
|
children.push( /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderSearchBarView, null, /*#__PURE__*/_react.default.createElement(_reactNativeScreens.SearchBar, options.searchBar)));
|
|
156
135
|
}
|
|
157
|
-
|
|
158
136
|
if (options.headerLeft !== undefined) {
|
|
159
137
|
children.push( /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderLeftView, {
|
|
160
138
|
key: "left"
|
|
@@ -168,7 +146,6 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
168
146
|
descriptor.navigation.goBack(descriptor.key);
|
|
169
147
|
});
|
|
170
148
|
};
|
|
171
|
-
|
|
172
149
|
children.push( /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderLeftView, {
|
|
173
150
|
key: "left"
|
|
174
151
|
}, /*#__PURE__*/_react.default.createElement(_reactNavigationStack.HeaderBackButton, {
|
|
@@ -180,7 +157,8 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
180
157
|
truncatedLabel: options.truncatedBackButtonTitle,
|
|
181
158
|
labelVisible: options.backTitleVisible,
|
|
182
159
|
labelStyle: options.headerBackTitleStyle,
|
|
183
|
-
titleLayout: options.layoutPreset
|
|
160
|
+
titleLayout: options.layoutPreset
|
|
161
|
+
// @ts-ignore old props kept for very old version of `react-navigation-stack`
|
|
184
162
|
,
|
|
185
163
|
title: options.backButtonTitle,
|
|
186
164
|
truncatedTitle: options.truncatedBackButtonTitle,
|
|
@@ -190,7 +168,6 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
190
168
|
scene: scene
|
|
191
169
|
})));
|
|
192
170
|
}
|
|
193
|
-
|
|
194
171
|
if (options.headerTitle) {
|
|
195
172
|
if (title === undefined && typeof options.headerTitle === 'string') {
|
|
196
173
|
headerOptions.title = options.headerTitle;
|
|
@@ -202,7 +179,6 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
202
179
|
})));
|
|
203
180
|
}
|
|
204
181
|
}
|
|
205
|
-
|
|
206
182
|
if (options.headerRight) {
|
|
207
183
|
children.push( /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderRightView, {
|
|
208
184
|
key: "right"
|
|
@@ -210,26 +186,23 @@ function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
|
210
186
|
scene
|
|
211
187
|
})));
|
|
212
188
|
}
|
|
213
|
-
|
|
214
189
|
if (children.length > 0) {
|
|
215
190
|
headerOptions.children = children;
|
|
216
191
|
}
|
|
217
|
-
|
|
218
192
|
return /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStackHeaderConfig, headerOptions);
|
|
219
193
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
194
|
+
const MaybeNestedStack = _ref => {
|
|
195
|
+
let {
|
|
196
|
+
isHeaderInModal,
|
|
197
|
+
screenProps,
|
|
198
|
+
route,
|
|
199
|
+
navigation,
|
|
200
|
+
SceneComponent,
|
|
201
|
+
index,
|
|
202
|
+
descriptor,
|
|
203
|
+
navigationConfig
|
|
204
|
+
} = _ref;
|
|
231
205
|
const Screen = _react.default.useContext(_reactNativeScreens.ScreenContext);
|
|
232
|
-
|
|
233
206
|
if (isHeaderInModal) {
|
|
234
207
|
return /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStack, {
|
|
235
208
|
style: styles.scenes
|
|
@@ -243,26 +216,23 @@ const MaybeNestedStack = ({
|
|
|
243
216
|
component: SceneComponent
|
|
244
217
|
})));
|
|
245
218
|
}
|
|
246
|
-
|
|
247
219
|
return /*#__PURE__*/_react.default.createElement(_reactNavigation.SceneView, {
|
|
248
220
|
screenProps: screenProps,
|
|
249
221
|
navigation: navigation,
|
|
250
222
|
component: SceneComponent
|
|
251
223
|
});
|
|
252
224
|
};
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
225
|
+
function StackView(_ref2) {
|
|
226
|
+
let {
|
|
227
|
+
navigation,
|
|
228
|
+
descriptors,
|
|
229
|
+
navigationConfig,
|
|
230
|
+
screenProps
|
|
231
|
+
} = _ref2;
|
|
260
232
|
const {
|
|
261
233
|
routes
|
|
262
234
|
} = navigation.state;
|
|
263
|
-
|
|
264
235
|
const Screen = _react.default.useContext(_reactNativeScreens.ScreenContext);
|
|
265
|
-
|
|
266
236
|
return /*#__PURE__*/_react.default.createElement(_reactNativeScreens.ScreenStack, {
|
|
267
237
|
style: styles.scenes,
|
|
268
238
|
onFinishTransitioning: () => onFinishTransitioning(navigation)
|
|
@@ -279,33 +249,26 @@ function StackView({
|
|
|
279
249
|
} = navigationConfig;
|
|
280
250
|
const SceneComponent = getComponent();
|
|
281
251
|
let stackPresentation = 'push';
|
|
282
|
-
|
|
283
252
|
if (options.stackPresentation) {
|
|
284
253
|
stackPresentation = options.stackPresentation;
|
|
285
254
|
} else {
|
|
286
255
|
// this shouldn't be used because we have a prop for that
|
|
287
256
|
if (mode === 'modal' || mode === 'containedModal') {
|
|
288
257
|
stackPresentation = mode;
|
|
289
|
-
|
|
290
258
|
if (transparentCard || options.cardTransparent) {
|
|
291
259
|
stackPresentation = mode === 'containedModal' ? 'containedTransparentModal' : 'transparentModal';
|
|
292
260
|
}
|
|
293
261
|
}
|
|
294
262
|
}
|
|
295
|
-
|
|
296
263
|
let stackAnimation = options.stackAnimation;
|
|
297
|
-
|
|
298
264
|
if (options.animationEnabled === false) {
|
|
299
265
|
stackAnimation = 'none';
|
|
300
266
|
}
|
|
301
|
-
|
|
302
267
|
const hasHeader = options.headerShown !== false && (navigationConfig === null || navigationConfig === void 0 ? void 0 : navigationConfig.headerMode) !== 'none' && options.header !== null;
|
|
303
|
-
|
|
304
268
|
if (!didWarn && stackPresentation !== 'push' && options.headerShown !== undefined) {
|
|
305
269
|
didWarn = true;
|
|
306
270
|
console.warn('Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.');
|
|
307
271
|
}
|
|
308
|
-
|
|
309
272
|
const isHeaderInModal = isAndroid ? false : stackPresentation !== 'push' && hasHeader && options.headerShown === true;
|
|
310
273
|
const isHeaderInPush = isAndroid ? hasHeader : stackPresentation === 'push' && hasHeader;
|
|
311
274
|
return /*#__PURE__*/_react.default.createElement(Screen, {
|
|
@@ -330,17 +293,14 @@ function StackView({
|
|
|
330
293
|
onAppear: () => onAppear(route, descriptor, routeNavigationProp),
|
|
331
294
|
onWillAppear: () => {
|
|
332
295
|
var _options$onWillAppear;
|
|
333
|
-
|
|
334
296
|
return options === null || options === void 0 ? void 0 : (_options$onWillAppear = options.onWillAppear) === null || _options$onWillAppear === void 0 ? void 0 : _options$onWillAppear.call(options);
|
|
335
297
|
},
|
|
336
298
|
onWillDisappear: () => {
|
|
337
299
|
var _options$onWillDisapp;
|
|
338
|
-
|
|
339
300
|
return options === null || options === void 0 ? void 0 : (_options$onWillDisapp = options.onWillDisappear) === null || _options$onWillDisapp === void 0 ? void 0 : _options$onWillDisapp.call(options);
|
|
340
301
|
},
|
|
341
302
|
onDisappear: () => {
|
|
342
303
|
var _options$onDisappear;
|
|
343
|
-
|
|
344
304
|
return options === null || options === void 0 ? void 0 : (_options$onDisappear = options.onDisappear) === null || _options$onDisappear === void 0 ? void 0 : _options$onDisappear.call(options);
|
|
345
305
|
},
|
|
346
306
|
onHeaderBackButtonClicked: () => removeScene(route, 1, routeNavigationProp),
|
|
@@ -357,24 +317,23 @@ function StackView({
|
|
|
357
317
|
}));
|
|
358
318
|
}));
|
|
359
319
|
}
|
|
360
|
-
|
|
361
320
|
const styles = _reactNative.StyleSheet.create({
|
|
362
321
|
scenes: {
|
|
363
322
|
flex: 1
|
|
364
323
|
}
|
|
365
324
|
});
|
|
325
|
+
function createStackNavigator(routeConfigMap) {
|
|
326
|
+
let stackConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
327
|
+
const router = (0, _reactNavigation.StackRouter)(routeConfigMap, stackConfig);
|
|
366
328
|
|
|
367
|
-
|
|
368
|
-
const router = (0, _reactNavigation.StackRouter)(routeConfigMap, stackConfig); // below we override getStateForAction method in order to add handling for
|
|
329
|
+
// below we override getStateForAction method in order to add handling for
|
|
369
330
|
// a custom native stack navigation action. The action REMOVE that we want to
|
|
370
331
|
// add works in a similar way to POP, but it does not remove all the routes
|
|
371
332
|
// that sit on top of the removed route. For example if we have three routes
|
|
372
333
|
// [a,b,c] and call POP on b, then both b and c will go away. In case we
|
|
373
334
|
// call REMOVE on b, only b will be removed from the stack and the resulting
|
|
374
335
|
// state will be [a, c]
|
|
375
|
-
|
|
376
336
|
const superGetStateForAction = router.getStateForAction;
|
|
377
|
-
|
|
378
337
|
router.getStateForAction = (action, state) => {
|
|
379
338
|
if (action.type === REMOVE_ACTION) {
|
|
380
339
|
const {
|
|
@@ -383,15 +342,12 @@ function createStackNavigator(routeConfigMap, stackConfig = {}) {
|
|
|
383
342
|
dismissCount
|
|
384
343
|
} = action;
|
|
385
344
|
let backRouteIndex = state.index;
|
|
386
|
-
|
|
387
345
|
if (key) {
|
|
388
346
|
const backRoute = state.routes.find(route => route.key === key);
|
|
389
347
|
backRouteIndex = state.routes.indexOf(backRoute);
|
|
390
348
|
}
|
|
391
|
-
|
|
392
349
|
if (backRouteIndex > 0) {
|
|
393
350
|
const newRoutes = [...state.routes];
|
|
394
|
-
|
|
395
351
|
if (dismissCount > 1) {
|
|
396
352
|
// when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time
|
|
397
353
|
// and the `backRouteIndex` is the index of the previous screen. Since we are starting already
|
|
@@ -400,22 +356,19 @@ function createStackNavigator(routeConfigMap, stackConfig = {}) {
|
|
|
400
356
|
} else {
|
|
401
357
|
newRoutes.splice(backRouteIndex, 1);
|
|
402
358
|
}
|
|
403
|
-
|
|
404
|
-
|
|
359
|
+
return {
|
|
360
|
+
...state,
|
|
405
361
|
routes: newRoutes,
|
|
406
362
|
index: newRoutes.length - 1,
|
|
407
363
|
isTransitioning: immediate !== true
|
|
408
364
|
};
|
|
409
365
|
}
|
|
410
366
|
}
|
|
411
|
-
|
|
412
367
|
return superGetStateForAction(action, state);
|
|
413
|
-
};
|
|
414
|
-
|
|
415
|
-
|
|
368
|
+
};
|
|
369
|
+
// Create a navigator with StackView as the view
|
|
416
370
|
return (0, _reactNavigation.createNavigator)(StackView, router, stackConfig);
|
|
417
371
|
}
|
|
418
|
-
|
|
419
372
|
var _default = createStackNavigator;
|
|
420
373
|
exports.default = _default;
|
|
421
374
|
//# sourceMappingURL=createNativeStackNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createNativeStackNavigator.tsx"],"names":["REMOVE_ACTION","isAndroid","Platform","OS","didWarn","renderComponentOrThunk","componentOrThunk","props","removeScene","route","dismissCount","navigation","dispatch","type","immediate","key","onAppear","descriptor","options","StackActions","completeTransition","toChildKey","state","onFinishTransitioning","routes","lastRoute","length","renderHeaderConfig","index","navigationConfig","headerMode","backButtonInCustomView","direction","disableBackButtonMenu","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerHideBackButton","headerHideShadow","headerLargeStyle","headerLargeTitle","headerLargeTitleHideShadow","headerLargeTitleStyle","headerShown","headerStyle","headerTintColor","headerTitleStyle","headerTopInsetEnabled","headerTranslucent","hideShadow","largeTitle","largeTitleHideShadow","title","translucent","scene","headerOptions","backTitle","backTitleFontFamily","fontFamily","backTitleFontSize","fontSize","color","topInsetEnabled","hideBackButton","largeTitleBackgroundColor","backgroundColor","largeTitleColor","largeTitleFontFamily","largeTitleFontSize","largeTitleFontWeight","fontWeight","titleColor","titleFontFamily","titleFontSize","titleFontWeight","hasHeader","header","undefined","blurEffect","children","backButtonImage","push","searchBar","headerLeft","headerBackImage","goBack","requestAnimationFrame","headerPressColorAndroid","backButtonTitle","truncatedBackButtonTitle","backTitleVisible","layoutPreset","headerTitle","headerRight","MaybeNestedStack","isHeaderInModal","screenProps","SceneComponent","Screen","React","useContext","ScreenContext","styles","scenes","StyleSheet","absoluteFill","StackView","descriptors","map","getComponent","routeNavigationProp","mode","transparentCard","stackPresentation","cardTransparent","stackAnimation","animationEnabled","console","warn","isHeaderInPush","cardStyle","customAnimationOnSwipe","replaceAnimation","gestureEnabled","nativeBackButtonDismissalEnabled","fullScreenSwipeEnabled","screenOrientation","statusBarAnimation","statusBarColor","statusBarHidden","statusBarStyle","statusBarTranslucent","onWillAppear","onWillDisappear","onDisappear","e","nativeEvent","create","flex","createStackNavigator","routeConfigMap","stackConfig","router","superGetStateForAction","getStateForAction","action","backRouteIndex","backRoute","find","indexOf","newRoutes","splice","isTransitioning"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Platform,\n StyleSheet,\n Animated,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport {\n ScreenContext,\n ScreenStack,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderConfigProps,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n StackPresentationTypes,\n} from 'react-native-screens';\nimport {\n createNavigator,\n SceneView,\n StackActions,\n StackRouter,\n NavigationRouteConfigMap,\n CreateNavigatorConfig,\n NavigationStackRouterConfig,\n NavigationParams,\n NavigationRoute,\n NavigationDescriptor,\n NavigationState,\n NavigationNavigator,\n NavigationAction,\n NavigationProp,\n NavigationScreenProp,\n} from 'react-navigation';\nimport { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';\nimport { HeaderBackButton } from 'react-navigation-stack';\nimport {\n StackNavigationHelpers,\n StackNavigationProp,\n Layout,\n} from 'react-navigation-stack/src/vendor/types';\n\nconst REMOVE_ACTION = 'NativeStackNavigator/REMOVE';\n\nconst isAndroid = Platform.OS === 'android';\n\nlet didWarn = isAndroid;\n\nfunction renderComponentOrThunk(componentOrThunk: unknown, props: unknown) {\n if (typeof componentOrThunk === 'function') {\n return componentOrThunk(props);\n }\n return componentOrThunk;\n}\n\ntype NativeStackRemoveNavigationAction = {\n type: typeof REMOVE_ACTION;\n immediate: boolean;\n dismissCount: number;\n key?: string;\n};\n\nexport type NativeStackNavigationProp = StackNavigationProp;\n\nexport type NativeStackNavigationOptions = StackNavigatorOptions &\n NativeStackNavigationOptionsV5 &\n BackButtonProps & {\n onWillAppear?: () => void;\n onAppear?: () => void;\n onWillDisappear?: () => void;\n onDisappear?: () => void;\n // these props differ from the ones used in v5 `native-stack`, and we would like to keep the API consistent between versions\n /** Use `headerHideShadow` to be consistent with v5 `native-stack` */\n hideShadow?: boolean;\n /** Use `headerLargeTitle` to be consistent with v5 `native-stack` */\n largeTitle?: boolean;\n /** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */\n largeTitleHideShadow?: boolean;\n /** Use `headerTranslucent` to be consistent with v5 `native-stack` */\n translucent?: boolean;\n };\n\n// these are adopted from `stack` navigator\ntype StackNavigatorOptions = {\n /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */\n header?: React.ComponentType<Record<string, unknown>> | null;\n /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n cardTransparent?: boolean;\n /** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */\n animationEnabled?: boolean;\n cardStyle?: StyleProp<ViewStyle>;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype BackButtonProps = {\n headerBackImage?: (props: { tintColor: string }) => React.ReactNode;\n headerPressColorAndroid?: string;\n headerTintColor?: string;\n backButtonTitle?: string;\n truncatedBackButtonTitle?: string;\n backTitleVisible?: boolean;\n headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n layoutPreset?: Layout;\n};\n\ntype NativeStackDescriptor = NavigationDescriptor<\n NavigationParams,\n NativeStackNavigationOptions\n>;\n\ntype NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype NativeStackNavigationConfig = {\n /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n mode?: 'modal' | 'containedModal';\n /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */\n headerMode?: 'none';\n /** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n transparentCard?: boolean;\n};\n\nfunction removeScene(\n route: NavigationRoute<NavigationParams>,\n dismissCount: number,\n navigation: StackNavigationHelpers\n) {\n navigation.dispatch({\n // @ts-ignore special navigation action for native stack\n type: REMOVE_ACTION,\n immediate: true,\n key: route.key,\n dismissCount,\n });\n}\n\nfunction onAppear(\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigation: StackNavigationHelpers\n) {\n descriptor.options?.onAppear?.();\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: route.key,\n key: navigation.state.key,\n })\n );\n}\n\nfunction onFinishTransitioning(navigation: StackNavigationHelpers) {\n const { routes } = navigation.state;\n const lastRoute = routes?.length && routes[routes.length - 1];\n\n if (lastRoute) {\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: lastRoute.key,\n key: navigation.state.key,\n })\n );\n }\n}\n\nfunction renderHeaderConfig(\n index: number,\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigationConfig: NativeStackNavigationConfig\n) {\n const { options } = descriptor;\n const { headerMode } = navigationConfig;\n\n const {\n backButtonInCustomView,\n direction,\n disableBackButtonMenu,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible,\n headerHideBackButton,\n headerHideShadow,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleHideShadow,\n headerLargeTitleStyle,\n headerShown,\n headerStyle,\n headerTintColor,\n headerTitleStyle,\n headerTopInsetEnabled = true,\n headerTranslucent,\n hideShadow,\n largeTitle,\n largeTitleHideShadow,\n title,\n translucent,\n } = options;\n\n const scene = {\n index,\n key: route.key,\n route,\n descriptor,\n };\n\n const headerOptions: ScreenStackHeaderConfigProps = {\n backButtonInCustomView,\n backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,\n backTitleFontFamily: headerBackTitleStyle?.fontFamily,\n backTitleFontSize: headerBackTitleStyle?.fontSize,\n color: headerTintColor,\n direction,\n disableBackButtonMenu,\n topInsetEnabled: headerTopInsetEnabled,\n hideBackButton: headerHideBackButton,\n hideShadow: headerHideShadow || hideShadow,\n largeTitle: headerLargeTitle || largeTitle,\n largeTitleBackgroundColor:\n headerLargeStyle?.backgroundColor ||\n // @ts-ignore old implementation, will not be present in TS API, but can be used here\n headerLargeTitleStyle?.backgroundColor,\n largeTitleColor: headerLargeTitleStyle?.color,\n largeTitleFontFamily: headerLargeTitleStyle?.fontFamily,\n largeTitleFontSize: headerLargeTitleStyle?.fontSize,\n largeTitleFontWeight: headerLargeTitleStyle?.fontWeight,\n largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,\n title,\n titleColor: headerTitleStyle?.color || headerTintColor,\n titleFontFamily: headerTitleStyle?.fontFamily,\n titleFontSize: headerTitleStyle?.fontSize,\n titleFontWeight: headerTitleStyle?.fontWeight,\n translucent: headerTranslucent || translucent || false,\n };\n\n const hasHeader =\n headerShown !== false && headerMode !== 'none' && options.header !== null;\n if (!hasHeader) {\n return <ScreenStackHeaderConfig {...headerOptions} hidden />;\n }\n\n if (headerStyle !== undefined) {\n headerOptions.backgroundColor = headerStyle.backgroundColor;\n headerOptions.blurEffect = headerStyle.blurEffect;\n }\n\n const children = [];\n\n if (options.backButtonImage) {\n children.push(\n <ScreenStackHeaderBackButtonImage\n key=\"backImage\"\n source={options.backButtonImage}\n />\n );\n }\n\n if (Platform.OS === 'ios' && options.searchBar) {\n children.push(\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...options.searchBar} />\n </ScreenStackHeaderSearchBarView>\n );\n }\n\n if (options.headerLeft !== undefined) {\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n {renderComponentOrThunk(options.headerLeft, { scene })}\n </ScreenStackHeaderLeftView>\n );\n } else if (options.headerBackImage !== undefined) {\n const goBack = () => {\n // Go back on next tick because button ripple effect needs to happen on Android\n requestAnimationFrame(() => {\n descriptor.navigation.goBack(descriptor.key);\n });\n };\n\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n <HeaderBackButton\n onPress={goBack}\n pressColorAndroid={options.headerPressColorAndroid}\n tintColor={options.headerTintColor}\n backImage={options.headerBackImage}\n label={options.backButtonTitle}\n truncatedLabel={options.truncatedBackButtonTitle}\n labelVisible={options.backTitleVisible}\n labelStyle={options.headerBackTitleStyle}\n titleLayout={options.layoutPreset}\n // @ts-ignore old props kept for very old version of `react-navigation-stack`\n title={options.backButtonTitle}\n truncatedTitle={options.truncatedBackButtonTitle}\n backTitleVisible={options.backTitleVisible}\n titleStyle={options.headerBackTitleStyle}\n layoutPreset={options.layoutPreset}\n scene={scene}\n />\n </ScreenStackHeaderLeftView>\n );\n }\n\n if (options.headerTitle) {\n if (title === undefined && typeof options.headerTitle === 'string') {\n headerOptions.title = options.headerTitle;\n } else {\n children.push(\n <ScreenStackHeaderCenterView key=\"center\">\n {renderComponentOrThunk(options.headerTitle, { scene })}\n </ScreenStackHeaderCenterView>\n );\n }\n }\n\n if (options.headerRight) {\n children.push(\n <ScreenStackHeaderRightView key=\"right\">\n {renderComponentOrThunk(options.headerRight, { scene })}\n </ScreenStackHeaderRightView>\n );\n }\n\n if (children.length > 0) {\n headerOptions.children = children;\n }\n\n return <ScreenStackHeaderConfig {...headerOptions} />;\n}\n\nconst MaybeNestedStack = ({\n isHeaderInModal,\n screenProps,\n route,\n navigation,\n SceneComponent,\n index,\n descriptor,\n navigationConfig,\n}: {\n isHeaderInModal: boolean;\n screenProps: unknown;\n route: NavigationRoute<NavigationParams>;\n navigation: NavigationScreenProp<\n NavigationRoute<NavigationParams>,\n NavigationParams\n >;\n SceneComponent: React.ComponentType<Record<string, unknown>>;\n index: number;\n descriptor: NativeStackDescriptor;\n navigationConfig: NativeStackNavigationConfig;\n}) => {\n const Screen = React.useContext(ScreenContext);\n\n if (isHeaderInModal) {\n return (\n <ScreenStack style={styles.scenes}>\n <Screen style={StyleSheet.absoluteFill} enabled isNativeStack>\n {renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n </Screen>\n </ScreenStack>\n );\n }\n return (\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n );\n};\n\ntype StackViewProps = {\n navigation: StackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n navigationConfig: NativeStackNavigationConfig;\n screenProps: unknown;\n};\n\nfunction StackView({\n navigation,\n descriptors,\n navigationConfig,\n screenProps,\n}: StackViewProps) {\n const { routes } = navigation.state;\n const Screen = React.useContext(ScreenContext);\n return (\n <ScreenStack\n style={styles.scenes}\n onFinishTransitioning={() => onFinishTransitioning(navigation)}>\n {routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const { getComponent, options } = descriptor;\n const routeNavigationProp = descriptor.navigation;\n const { mode, transparentCard } = navigationConfig;\n const SceneComponent = getComponent();\n\n let stackPresentation: StackPresentationTypes = 'push';\n\n if (options.stackPresentation) {\n stackPresentation = options.stackPresentation;\n } else {\n // this shouldn't be used because we have a prop for that\n if (mode === 'modal' || mode === 'containedModal') {\n stackPresentation = mode;\n if (transparentCard || options.cardTransparent) {\n stackPresentation =\n mode === 'containedModal'\n ? 'containedTransparentModal'\n : 'transparentModal';\n }\n }\n }\n let stackAnimation = options.stackAnimation;\n if (options.animationEnabled === false) {\n stackAnimation = 'none';\n }\n\n const hasHeader =\n options.headerShown !== false &&\n navigationConfig?.headerMode !== 'none' &&\n options.header !== null;\n\n if (\n !didWarn &&\n stackPresentation !== 'push' &&\n options.headerShown !== undefined\n ) {\n didWarn = true;\n console.warn(\n 'Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.'\n );\n }\n\n const isHeaderInModal = isAndroid\n ? false\n : stackPresentation !== 'push' &&\n hasHeader &&\n options.headerShown === true;\n const isHeaderInPush = isAndroid\n ? hasHeader\n : stackPresentation === 'push' && hasHeader;\n\n return (\n <Screen\n key={`screen_${route.key}`}\n enabled\n isNativeStack\n style={[StyleSheet.absoluteFill, options.cardStyle]}\n stackAnimation={stackAnimation}\n customAnimationOnSwipe={options.customAnimationOnSwipe}\n stackPresentation={stackPresentation}\n replaceAnimation={\n options.replaceAnimation === undefined\n ? 'pop'\n : options.replaceAnimation\n }\n pointerEvents={\n index === navigation.state.routes.length - 1 ? 'auto' : 'none'\n }\n gestureEnabled={\n Platform.OS === 'android'\n ? false\n : options.gestureEnabled === undefined\n ? true\n : options.gestureEnabled\n }\n nativeBackButtonDismissalEnabled={\n options.nativeBackButtonDismissalEnabled\n }\n fullScreenSwipeEnabled={options.fullScreenSwipeEnabled}\n screenOrientation={options.screenOrientation}\n statusBarAnimation={options.statusBarAnimation}\n statusBarColor={options.statusBarColor}\n statusBarHidden={options.statusBarHidden}\n statusBarStyle={options.statusBarStyle}\n statusBarTranslucent={options.statusBarTranslucent}\n onAppear={() => onAppear(route, descriptor, routeNavigationProp)}\n onWillAppear={() => options?.onWillAppear?.()}\n onWillDisappear={() => options?.onWillDisappear?.()}\n onDisappear={() => options?.onDisappear?.()}\n onHeaderBackButtonClicked={() =>\n removeScene(route, 1, routeNavigationProp)\n }\n onDismissed={(e) =>\n removeScene(\n route,\n e.nativeEvent.dismissCount,\n routeNavigationProp\n )\n }>\n {isHeaderInPush &&\n renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <MaybeNestedStack\n isHeaderInModal={isHeaderInModal}\n screenProps={screenProps}\n route={route}\n navigation={routeNavigationProp}\n SceneComponent={SceneComponent}\n index={index}\n descriptor={descriptor}\n navigationConfig={navigationConfig}\n />\n </Screen>\n );\n })}\n </ScreenStack>\n );\n}\n\nconst styles = StyleSheet.create({\n scenes: { flex: 1 },\n});\n\nfunction createStackNavigator(\n routeConfigMap: NavigationRouteConfigMap<\n NativeStackNavigationOptions,\n StackNavigationProp\n >,\n stackConfig: CreateNavigatorConfig<\n NativeStackNavigationConfig,\n NavigationStackRouterConfig,\n NativeStackNavigationOptions,\n StackNavigationProp\n > = {}\n): NavigationNavigator<\n Record<string, unknown>,\n NavigationProp<NavigationState>\n> {\n const router = StackRouter(routeConfigMap, stackConfig);\n\n // below we override getStateForAction method in order to add handling for\n // a custom native stack navigation action. The action REMOVE that we want to\n // add works in a similar way to POP, but it does not remove all the routes\n // that sit on top of the removed route. For example if we have three routes\n // [a,b,c] and call POP on b, then both b and c will go away. In case we\n // call REMOVE on b, only b will be removed from the stack and the resulting\n // state will be [a, c]\n const superGetStateForAction = router.getStateForAction;\n router.getStateForAction = (\n action: NavigationAction | NativeStackRemoveNavigationAction,\n state\n ) => {\n if (action.type === REMOVE_ACTION) {\n const { key, immediate, dismissCount } = action;\n let backRouteIndex = state.index;\n if (key) {\n const backRoute = state.routes.find(\n (route: NavigationRoute<NavigationParams>) => route.key === key\n );\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n const newRoutes = [...state.routes];\n if (dismissCount > 1) {\n // when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time\n // and the `backRouteIndex` is the index of the previous screen. Since we are starting already\n // on the previous screen, we add 1 to start.\n newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);\n } else {\n newRoutes.splice(backRouteIndex, 1);\n }\n\n return {\n ...state,\n routes: newRoutes,\n index: newRoutes.length - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n return superGetStateForAction(action as NavigationAction, state);\n };\n // Create a navigator with StackView as the view\n return createNavigator(StackView, router, stackConfig);\n}\n\nexport default createStackNavigator;\n"]}
|
|
1
|
+
{"version":3,"names":["REMOVE_ACTION","isAndroid","Platform","OS","didWarn","renderComponentOrThunk","componentOrThunk","props","removeScene","route","dismissCount","navigation","dispatch","type","immediate","key","onAppear","descriptor","options","StackActions","completeTransition","toChildKey","state","onFinishTransitioning","routes","lastRoute","length","renderHeaderConfig","index","navigationConfig","headerMode","backButtonInCustomView","direction","disableBackButtonMenu","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerHideBackButton","headerHideShadow","headerLargeStyle","headerLargeTitle","headerLargeTitleHideShadow","headerLargeTitleStyle","headerShown","headerStyle","headerTintColor","headerTitleStyle","headerTopInsetEnabled","headerTranslucent","hideShadow","largeTitle","largeTitleHideShadow","title","translucent","scene","headerOptions","backTitle","backTitleFontFamily","fontFamily","backTitleFontSize","fontSize","color","topInsetEnabled","hideBackButton","largeTitleBackgroundColor","backgroundColor","largeTitleColor","largeTitleFontFamily","largeTitleFontSize","largeTitleFontWeight","fontWeight","titleColor","titleFontFamily","titleFontSize","titleFontWeight","hasHeader","header","undefined","blurEffect","children","backButtonImage","push","searchBar","headerLeft","headerBackImage","goBack","requestAnimationFrame","headerPressColorAndroid","backButtonTitle","truncatedBackButtonTitle","backTitleVisible","layoutPreset","headerTitle","headerRight","MaybeNestedStack","isHeaderInModal","screenProps","SceneComponent","Screen","React","useContext","ScreenContext","styles","scenes","StyleSheet","absoluteFill","StackView","descriptors","map","getComponent","routeNavigationProp","mode","transparentCard","stackPresentation","cardTransparent","stackAnimation","animationEnabled","console","warn","isHeaderInPush","cardStyle","customAnimationOnSwipe","replaceAnimation","gestureEnabled","nativeBackButtonDismissalEnabled","fullScreenSwipeEnabled","screenOrientation","statusBarAnimation","statusBarColor","statusBarHidden","statusBarStyle","statusBarTranslucent","onWillAppear","onWillDisappear","onDisappear","e","nativeEvent","create","flex","createStackNavigator","routeConfigMap","stackConfig","router","StackRouter","superGetStateForAction","getStateForAction","action","backRouteIndex","backRoute","find","indexOf","newRoutes","splice","isTransitioning","createNavigator"],"sources":["createNativeStackNavigator.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Platform,\n StyleSheet,\n Animated,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport {\n ScreenContext,\n ScreenStack,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderConfigProps,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n StackPresentationTypes,\n} from 'react-native-screens';\nimport {\n createNavigator,\n SceneView,\n StackActions,\n StackRouter,\n NavigationRouteConfigMap,\n CreateNavigatorConfig,\n NavigationStackRouterConfig,\n NavigationParams,\n NavigationRoute,\n NavigationDescriptor,\n NavigationState,\n NavigationNavigator,\n NavigationAction,\n NavigationProp,\n NavigationScreenProp,\n} from 'react-navigation';\nimport { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';\nimport { HeaderBackButton } from 'react-navigation-stack';\nimport {\n StackNavigationHelpers,\n StackNavigationProp,\n Layout,\n} from 'react-navigation-stack/src/vendor/types';\n\nconst REMOVE_ACTION = 'NativeStackNavigator/REMOVE';\n\nconst isAndroid = Platform.OS === 'android';\n\nlet didWarn = isAndroid;\n\nfunction renderComponentOrThunk(componentOrThunk: unknown, props: unknown) {\n if (typeof componentOrThunk === 'function') {\n return componentOrThunk(props);\n }\n return componentOrThunk;\n}\n\ntype NativeStackRemoveNavigationAction = {\n type: typeof REMOVE_ACTION;\n immediate: boolean;\n dismissCount: number;\n key?: string;\n};\n\nexport type NativeStackNavigationProp = StackNavigationProp;\n\nexport type NativeStackNavigationOptions = StackNavigatorOptions &\n NativeStackNavigationOptionsV5 &\n BackButtonProps & {\n onWillAppear?: () => void;\n onAppear?: () => void;\n onWillDisappear?: () => void;\n onDisappear?: () => void;\n // these props differ from the ones used in v5 `native-stack`, and we would like to keep the API consistent between versions\n /** Use `headerHideShadow` to be consistent with v5 `native-stack` */\n hideShadow?: boolean;\n /** Use `headerLargeTitle` to be consistent with v5 `native-stack` */\n largeTitle?: boolean;\n /** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */\n largeTitleHideShadow?: boolean;\n /** Use `headerTranslucent` to be consistent with v5 `native-stack` */\n translucent?: boolean;\n };\n\n// these are adopted from `stack` navigator\ntype StackNavigatorOptions = {\n /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */\n header?: React.ComponentType<Record<string, unknown>> | null;\n /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n cardTransparent?: boolean;\n /** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */\n animationEnabled?: boolean;\n cardStyle?: StyleProp<ViewStyle>;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype BackButtonProps = {\n headerBackImage?: (props: { tintColor: string }) => React.ReactNode;\n headerPressColorAndroid?: string;\n headerTintColor?: string;\n backButtonTitle?: string;\n truncatedBackButtonTitle?: string;\n backTitleVisible?: boolean;\n headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n layoutPreset?: Layout;\n};\n\ntype NativeStackDescriptor = NavigationDescriptor<\n NavigationParams,\n NativeStackNavigationOptions\n>;\n\ntype NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype NativeStackNavigationConfig = {\n /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n mode?: 'modal' | 'containedModal';\n /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */\n headerMode?: 'none';\n /** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n transparentCard?: boolean;\n};\n\nfunction removeScene(\n route: NavigationRoute<NavigationParams>,\n dismissCount: number,\n navigation: StackNavigationHelpers\n) {\n navigation.dispatch({\n // @ts-ignore special navigation action for native stack\n type: REMOVE_ACTION,\n immediate: true,\n key: route.key,\n dismissCount,\n });\n}\n\nfunction onAppear(\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigation: StackNavigationHelpers\n) {\n descriptor.options?.onAppear?.();\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: route.key,\n key: navigation.state.key,\n })\n );\n}\n\nfunction onFinishTransitioning(navigation: StackNavigationHelpers) {\n const { routes } = navigation.state;\n const lastRoute = routes?.length && routes[routes.length - 1];\n\n if (lastRoute) {\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: lastRoute.key,\n key: navigation.state.key,\n })\n );\n }\n}\n\nfunction renderHeaderConfig(\n index: number,\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigationConfig: NativeStackNavigationConfig\n) {\n const { options } = descriptor;\n const { headerMode } = navigationConfig;\n\n const {\n backButtonInCustomView,\n direction,\n disableBackButtonMenu,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible,\n headerHideBackButton,\n headerHideShadow,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleHideShadow,\n headerLargeTitleStyle,\n headerShown,\n headerStyle,\n headerTintColor,\n headerTitleStyle,\n headerTopInsetEnabled = true,\n headerTranslucent,\n hideShadow,\n largeTitle,\n largeTitleHideShadow,\n title,\n translucent,\n } = options;\n\n const scene = {\n index,\n key: route.key,\n route,\n descriptor,\n };\n\n const headerOptions: ScreenStackHeaderConfigProps = {\n backButtonInCustomView,\n backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,\n backTitleFontFamily: headerBackTitleStyle?.fontFamily,\n backTitleFontSize: headerBackTitleStyle?.fontSize,\n color: headerTintColor,\n direction,\n disableBackButtonMenu,\n topInsetEnabled: headerTopInsetEnabled,\n hideBackButton: headerHideBackButton,\n hideShadow: headerHideShadow || hideShadow,\n largeTitle: headerLargeTitle || largeTitle,\n largeTitleBackgroundColor:\n headerLargeStyle?.backgroundColor ||\n // @ts-ignore old implementation, will not be present in TS API, but can be used here\n headerLargeTitleStyle?.backgroundColor,\n largeTitleColor: headerLargeTitleStyle?.color,\n largeTitleFontFamily: headerLargeTitleStyle?.fontFamily,\n largeTitleFontSize: headerLargeTitleStyle?.fontSize,\n largeTitleFontWeight: headerLargeTitleStyle?.fontWeight,\n largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,\n title,\n titleColor: headerTitleStyle?.color || headerTintColor,\n titleFontFamily: headerTitleStyle?.fontFamily,\n titleFontSize: headerTitleStyle?.fontSize,\n titleFontWeight: headerTitleStyle?.fontWeight,\n translucent: headerTranslucent || translucent || false,\n };\n\n const hasHeader =\n headerShown !== false && headerMode !== 'none' && options.header !== null;\n if (!hasHeader) {\n return <ScreenStackHeaderConfig {...headerOptions} hidden />;\n }\n\n if (headerStyle !== undefined) {\n headerOptions.backgroundColor = headerStyle.backgroundColor;\n headerOptions.blurEffect = headerStyle.blurEffect;\n }\n\n const children = [];\n\n if (options.backButtonImage) {\n children.push(\n <ScreenStackHeaderBackButtonImage\n key=\"backImage\"\n source={options.backButtonImage}\n />\n );\n }\n\n if (Platform.OS === 'ios' && options.searchBar) {\n children.push(\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...options.searchBar} />\n </ScreenStackHeaderSearchBarView>\n );\n }\n\n if (options.headerLeft !== undefined) {\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n {renderComponentOrThunk(options.headerLeft, { scene })}\n </ScreenStackHeaderLeftView>\n );\n } else if (options.headerBackImage !== undefined) {\n const goBack = () => {\n // Go back on next tick because button ripple effect needs to happen on Android\n requestAnimationFrame(() => {\n descriptor.navigation.goBack(descriptor.key);\n });\n };\n\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n <HeaderBackButton\n onPress={goBack}\n pressColorAndroid={options.headerPressColorAndroid}\n tintColor={options.headerTintColor}\n backImage={options.headerBackImage}\n label={options.backButtonTitle}\n truncatedLabel={options.truncatedBackButtonTitle}\n labelVisible={options.backTitleVisible}\n labelStyle={options.headerBackTitleStyle}\n titleLayout={options.layoutPreset}\n // @ts-ignore old props kept for very old version of `react-navigation-stack`\n title={options.backButtonTitle}\n truncatedTitle={options.truncatedBackButtonTitle}\n backTitleVisible={options.backTitleVisible}\n titleStyle={options.headerBackTitleStyle}\n layoutPreset={options.layoutPreset}\n scene={scene}\n />\n </ScreenStackHeaderLeftView>\n );\n }\n\n if (options.headerTitle) {\n if (title === undefined && typeof options.headerTitle === 'string') {\n headerOptions.title = options.headerTitle;\n } else {\n children.push(\n <ScreenStackHeaderCenterView key=\"center\">\n {renderComponentOrThunk(options.headerTitle, { scene })}\n </ScreenStackHeaderCenterView>\n );\n }\n }\n\n if (options.headerRight) {\n children.push(\n <ScreenStackHeaderRightView key=\"right\">\n {renderComponentOrThunk(options.headerRight, { scene })}\n </ScreenStackHeaderRightView>\n );\n }\n\n if (children.length > 0) {\n headerOptions.children = children;\n }\n\n return <ScreenStackHeaderConfig {...headerOptions} />;\n}\n\nconst MaybeNestedStack = ({\n isHeaderInModal,\n screenProps,\n route,\n navigation,\n SceneComponent,\n index,\n descriptor,\n navigationConfig,\n}: {\n isHeaderInModal: boolean;\n screenProps: unknown;\n route: NavigationRoute<NavigationParams>;\n navigation: NavigationScreenProp<\n NavigationRoute<NavigationParams>,\n NavigationParams\n >;\n SceneComponent: React.ComponentType<Record<string, unknown>>;\n index: number;\n descriptor: NativeStackDescriptor;\n navigationConfig: NativeStackNavigationConfig;\n}) => {\n const Screen = React.useContext(ScreenContext);\n\n if (isHeaderInModal) {\n return (\n <ScreenStack style={styles.scenes}>\n <Screen style={StyleSheet.absoluteFill} enabled isNativeStack>\n {renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n </Screen>\n </ScreenStack>\n );\n }\n return (\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n );\n};\n\ntype StackViewProps = {\n navigation: StackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n navigationConfig: NativeStackNavigationConfig;\n screenProps: unknown;\n};\n\nfunction StackView({\n navigation,\n descriptors,\n navigationConfig,\n screenProps,\n}: StackViewProps) {\n const { routes } = navigation.state;\n const Screen = React.useContext(ScreenContext);\n return (\n <ScreenStack\n style={styles.scenes}\n onFinishTransitioning={() => onFinishTransitioning(navigation)}\n >\n {routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const { getComponent, options } = descriptor;\n const routeNavigationProp = descriptor.navigation;\n const { mode, transparentCard } = navigationConfig;\n const SceneComponent = getComponent();\n\n let stackPresentation: StackPresentationTypes = 'push';\n\n if (options.stackPresentation) {\n stackPresentation = options.stackPresentation;\n } else {\n // this shouldn't be used because we have a prop for that\n if (mode === 'modal' || mode === 'containedModal') {\n stackPresentation = mode;\n if (transparentCard || options.cardTransparent) {\n stackPresentation =\n mode === 'containedModal'\n ? 'containedTransparentModal'\n : 'transparentModal';\n }\n }\n }\n let stackAnimation = options.stackAnimation;\n if (options.animationEnabled === false) {\n stackAnimation = 'none';\n }\n\n const hasHeader =\n options.headerShown !== false &&\n navigationConfig?.headerMode !== 'none' &&\n options.header !== null;\n\n if (\n !didWarn &&\n stackPresentation !== 'push' &&\n options.headerShown !== undefined\n ) {\n didWarn = true;\n console.warn(\n 'Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.'\n );\n }\n\n const isHeaderInModal = isAndroid\n ? false\n : stackPresentation !== 'push' &&\n hasHeader &&\n options.headerShown === true;\n const isHeaderInPush = isAndroid\n ? hasHeader\n : stackPresentation === 'push' && hasHeader;\n\n return (\n <Screen\n key={`screen_${route.key}`}\n enabled\n isNativeStack\n style={[StyleSheet.absoluteFill, options.cardStyle]}\n stackAnimation={stackAnimation}\n customAnimationOnSwipe={options.customAnimationOnSwipe}\n stackPresentation={stackPresentation}\n replaceAnimation={\n options.replaceAnimation === undefined\n ? 'pop'\n : options.replaceAnimation\n }\n pointerEvents={\n index === navigation.state.routes.length - 1 ? 'auto' : 'none'\n }\n gestureEnabled={\n Platform.OS === 'android'\n ? false\n : options.gestureEnabled === undefined\n ? true\n : options.gestureEnabled\n }\n nativeBackButtonDismissalEnabled={\n options.nativeBackButtonDismissalEnabled\n }\n fullScreenSwipeEnabled={options.fullScreenSwipeEnabled}\n screenOrientation={options.screenOrientation}\n statusBarAnimation={options.statusBarAnimation}\n statusBarColor={options.statusBarColor}\n statusBarHidden={options.statusBarHidden}\n statusBarStyle={options.statusBarStyle}\n statusBarTranslucent={options.statusBarTranslucent}\n onAppear={() => onAppear(route, descriptor, routeNavigationProp)}\n onWillAppear={() => options?.onWillAppear?.()}\n onWillDisappear={() => options?.onWillDisappear?.()}\n onDisappear={() => options?.onDisappear?.()}\n onHeaderBackButtonClicked={() =>\n removeScene(route, 1, routeNavigationProp)\n }\n onDismissed={(e) =>\n removeScene(\n route,\n e.nativeEvent.dismissCount,\n routeNavigationProp\n )\n }\n >\n {isHeaderInPush &&\n renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <MaybeNestedStack\n isHeaderInModal={isHeaderInModal}\n screenProps={screenProps}\n route={route}\n navigation={routeNavigationProp}\n SceneComponent={SceneComponent}\n index={index}\n descriptor={descriptor}\n navigationConfig={navigationConfig}\n />\n </Screen>\n );\n })}\n </ScreenStack>\n );\n}\n\nconst styles = StyleSheet.create({\n scenes: { flex: 1 },\n});\n\nfunction createStackNavigator(\n routeConfigMap: NavigationRouteConfigMap<\n NativeStackNavigationOptions,\n StackNavigationProp\n >,\n stackConfig: CreateNavigatorConfig<\n NativeStackNavigationConfig,\n NavigationStackRouterConfig,\n NativeStackNavigationOptions,\n StackNavigationProp\n > = {}\n): NavigationNavigator<\n Record<string, unknown>,\n NavigationProp<NavigationState>\n> {\n const router = StackRouter(routeConfigMap, stackConfig);\n\n // below we override getStateForAction method in order to add handling for\n // a custom native stack navigation action. The action REMOVE that we want to\n // add works in a similar way to POP, but it does not remove all the routes\n // that sit on top of the removed route. For example if we have three routes\n // [a,b,c] and call POP on b, then both b and c will go away. In case we\n // call REMOVE on b, only b will be removed from the stack and the resulting\n // state will be [a, c]\n const superGetStateForAction = router.getStateForAction;\n router.getStateForAction = (\n action: NavigationAction | NativeStackRemoveNavigationAction,\n state\n ) => {\n if (action.type === REMOVE_ACTION) {\n const { key, immediate, dismissCount } = action;\n let backRouteIndex = state.index;\n if (key) {\n const backRoute = state.routes.find(\n (route: NavigationRoute<NavigationParams>) => route.key === key\n );\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n const newRoutes = [...state.routes];\n if (dismissCount > 1) {\n // when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time\n // and the `backRouteIndex` is the index of the previous screen. Since we are starting already\n // on the previous screen, we add 1 to start.\n newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);\n } else {\n newRoutes.splice(backRouteIndex, 1);\n }\n\n return {\n ...state,\n routes: newRoutes,\n index: newRoutes.length - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n return superGetStateForAction(action as NavigationAction, state);\n };\n // Create a navigator with StackView as the view\n return createNavigator(StackView, router, stackConfig);\n}\n\nexport default createStackNavigator;\n"],"mappings":"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"}
|
|
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
*
|
|
14
11
|
* @format
|
|
15
12
|
*/
|
|
16
|
-
|
|
17
13
|
/* eslint-disable */
|
|
18
14
|
var _default = (0, _codegenNativeComponent.default)('RNSFullWindowOverlay', {});
|
|
19
|
-
|
|
20
15
|
exports.default = _default;
|
|
21
16
|
//# sourceMappingURL=FullWindowOverlayNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sources":["FullWindowOverlayNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSFullWindowOverlay',\n {}\n): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eAWgB,IAAAA,+BAAsB,EACpC,sBAAsB,EACtB,CAAC,CAAC,CACH;AAAA"}
|
|
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
*
|
|
14
11
|
* @format
|
|
15
12
|
*/
|
|
16
|
-
|
|
17
13
|
/* eslint-disable */
|
|
18
14
|
var _default = (0, _codegenNativeComponent.default)('RNSScreenContainer', {});
|
|
19
|
-
|
|
20
15
|
exports.default = _default;
|
|
21
16
|
//# sourceMappingURL=ScreenContainerNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sources":["ScreenContainerNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSScreenContainer',\n {}\n): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eAWgB,IAAAA,+BAAsB,EACpC,oBAAoB,EACpB,CAAC,CAAC,CACH;AAAA"}
|
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
*
|
|
14
11
|
* @format
|
|
15
12
|
*/
|
|
16
|
-
|
|
17
13
|
/* eslint-disable */
|
|
18
14
|
var _default = (0, _codegenNativeComponent.default)('RNSScreen', {
|
|
19
15
|
interfaceOnly: true
|
|
20
16
|
});
|
|
21
|
-
|
|
22
17
|
exports.default = _default;
|
|
23
18
|
//# sourceMappingURL=ScreenNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sources":["ScreenNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype TransitionProgressEvent = $ReadOnly<{|\n progress: Double,\n closing: Int32,\n goingForward: Int32,\n|}>;\n\ntype GestureResponseDistanceType = $ReadOnly<{|\n start: Float,\n end: Float,\n top: Float,\n bottom: Float,\n|}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\ntype SheetDetentTypes = 'large' | 'medium' | 'all';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onNativeDismissCancelled?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,\n sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>,\n sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>,\n sheetGrabberVisible?: WithDefault<boolean, false>,\n sheetCornerRadius?: WithDefault<Float, -1.0>,\n sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>,\n customAnimationOnSwipe?: boolean,\n fullScreenSwipeEnabled?: boolean,\n homeIndicatorHidden?: boolean,\n preventNativeDismiss?: boolean,\n gestureEnabled?: WithDefault<boolean, true>,\n statusBarColor?: ColorValue,\n statusBarHidden?: boolean,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n gestureResponseDistance?: GestureResponseDistanceType,\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n transitionDuration?: WithDefault<Int32, 350>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>,\n hideKeyboardOnSwipe?: boolean,\n activityState?: WithDefault<Float, -1.0>,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n onHeaderBackButtonClicked?: ?BubblingEventHandler<ScreenEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eAiGgB,IAAAA,+BAAsB,EAAc,WAAW,EAAE;EAC/DC,aAAa,EAAE;AACjB,CAAC,CAAC;AAAA"}
|
|
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
*
|
|
14
11
|
* @format
|
|
15
12
|
*/
|
|
16
|
-
|
|
17
13
|
/* eslint-disable */
|
|
18
14
|
var _default = (0, _codegenNativeComponent.default)('RNSScreenNavigationContainer', {});
|
|
19
|
-
|
|
20
15
|
exports.default = _default;
|
|
21
16
|
//# sourceMappingURL=ScreenNavigationContainerNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sources":["ScreenNavigationContainerNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSScreenNavigationContainer',\n {}\n): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eAWgB,IAAAA,+BAAsB,EACpC,8BAA8B,EAC9B,CAAC,CAAC,CACH;AAAA"}
|