react-native-screens 3.18.1 → 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/react-native.config.js +12 -2
- 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
|
@@ -1,48 +1,43 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
1
|
+
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); }
|
|
3
2
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
-
|
|
5
3
|
import React from 'react';
|
|
6
4
|
import { Animated, Image, Platform, requireNativeComponent, StyleSheet, UIManager, View } from 'react-native';
|
|
7
5
|
import { Freeze } from 'react-freeze';
|
|
8
6
|
import { version } from 'react-native/package.json';
|
|
9
7
|
import TransitionProgressContext from './TransitionProgressContext';
|
|
10
8
|
import useTransitionProgress from './useTransitionProgress';
|
|
11
|
-
import { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils';
|
|
9
|
+
import { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils';
|
|
12
10
|
|
|
11
|
+
// web implementation is taken from `index.tsx`
|
|
13
12
|
const isPlatformSupported = Platform.OS === 'ios' || Platform.OS === 'android' || Platform.OS === 'windows';
|
|
14
13
|
let ENABLE_SCREENS = isPlatformSupported;
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function enableScreens() {
|
|
15
|
+
let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
17
16
|
ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
|
|
18
|
-
|
|
19
17
|
if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {
|
|
20
18
|
console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
|
-
|
|
24
21
|
let ENABLE_FREEZE = false;
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
function enableFreeze() {
|
|
23
|
+
let shouldEnableReactFreeze = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
27
24
|
const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'
|
|
28
|
-
// react-freeze requires react-native >=0.64, react-native from main is 0.0.0
|
|
29
25
|
|
|
26
|
+
// react-freeze requires react-native >=0.64, react-native from main is 0.0.0
|
|
30
27
|
if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {
|
|
31
28
|
console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.');
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
ENABLE_FREEZE = shouldEnableReactFreeze;
|
|
35
|
-
}
|
|
36
|
-
|
|
31
|
+
}
|
|
37
32
|
|
|
33
|
+
// const that tells if the library should use new implementation, will be undefined for older versions
|
|
38
34
|
const shouldUseActivityState = true;
|
|
39
|
-
|
|
40
35
|
function screensEnabled() {
|
|
41
36
|
return ENABLE_SCREENS;
|
|
42
|
-
}
|
|
43
|
-
// This is necessary coz libraries such as React Navigation import the library where it may not be enabled
|
|
44
|
-
|
|
37
|
+
}
|
|
45
38
|
|
|
39
|
+
// We initialize these lazily so that importing the module doesn't throw error when not linked
|
|
40
|
+
// This is necessary coz libraries such as React Navigation import the library where it may not be enabled
|
|
46
41
|
let NativeScreenValue;
|
|
47
42
|
let NativeScreenContainerValue;
|
|
48
43
|
let NativeScreenNavigationContainerValue;
|
|
@@ -57,53 +52,44 @@ const ScreensNativeModules = {
|
|
|
57
52
|
NativeScreenValue = NativeScreenValue || requireNativeComponent('RNSScreen');
|
|
58
53
|
return NativeScreenValue;
|
|
59
54
|
},
|
|
60
|
-
|
|
61
55
|
get NativeScreenContainer() {
|
|
62
56
|
NativeScreenContainerValue = NativeScreenContainerValue || requireNativeComponent('RNSScreenContainer');
|
|
63
57
|
return NativeScreenContainerValue;
|
|
64
58
|
},
|
|
65
|
-
|
|
66
59
|
get NativeScreenNavigationContainer() {
|
|
67
60
|
NativeScreenNavigationContainerValue = NativeScreenNavigationContainerValue || (Platform.OS === 'ios' ? requireNativeComponent('RNSScreenNavigationContainer') : this.NativeScreenContainer);
|
|
68
61
|
return NativeScreenNavigationContainerValue;
|
|
69
62
|
},
|
|
70
|
-
|
|
71
63
|
get NativeScreenStack() {
|
|
72
64
|
NativeScreenStack = NativeScreenStack || requireNativeComponent('RNSScreenStack');
|
|
73
65
|
return NativeScreenStack;
|
|
74
66
|
},
|
|
75
|
-
|
|
76
67
|
get NativeScreenStackHeaderConfig() {
|
|
77
68
|
NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || requireNativeComponent('RNSScreenStackHeaderConfig');
|
|
78
69
|
return NativeScreenStackHeaderConfig;
|
|
79
70
|
},
|
|
80
|
-
|
|
81
71
|
get NativeScreenStackHeaderSubview() {
|
|
82
72
|
NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || requireNativeComponent('RNSScreenStackHeaderSubview');
|
|
83
73
|
return NativeScreenStackHeaderSubview;
|
|
84
74
|
},
|
|
85
|
-
|
|
86
75
|
get NativeSearchBar() {
|
|
87
76
|
NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');
|
|
88
77
|
return NativeSearchBar;
|
|
89
78
|
},
|
|
90
|
-
|
|
91
79
|
get NativeFullWindowOverlay() {
|
|
92
80
|
NativeFullWindowOverlay = NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');
|
|
93
81
|
return NativeFullWindowOverlay;
|
|
94
82
|
}
|
|
95
|
-
|
|
96
83
|
};
|
|
97
|
-
|
|
98
84
|
// This component allows one more render before freezing the screen.
|
|
99
85
|
// Allows activityState to reach the native side and useIsFocused to work correctly.
|
|
100
|
-
function DelayedFreeze({
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
86
|
+
function DelayedFreeze(_ref) {
|
|
87
|
+
let {
|
|
88
|
+
freeze,
|
|
89
|
+
children
|
|
90
|
+
} = _ref;
|
|
104
91
|
// flag used for determining whether freeze should be enabled
|
|
105
92
|
const [freezeState, setFreezeState] = React.useState(false);
|
|
106
|
-
|
|
107
93
|
if (freeze !== freezeState) {
|
|
108
94
|
// setImmediate is executed at the end of the JS execution block.
|
|
109
95
|
// Used here for changing the state right after the render.
|
|
@@ -111,22 +97,19 @@ function DelayedFreeze({
|
|
|
111
97
|
setFreezeState(freeze);
|
|
112
98
|
});
|
|
113
99
|
}
|
|
114
|
-
|
|
115
100
|
return /*#__PURE__*/React.createElement(Freeze, {
|
|
116
101
|
freeze: freeze ? freezeState : false
|
|
117
102
|
}, children);
|
|
118
103
|
}
|
|
119
|
-
|
|
120
104
|
function ScreenStack(props) {
|
|
121
105
|
const {
|
|
122
106
|
children,
|
|
123
107
|
...rest
|
|
124
108
|
} = props;
|
|
125
|
-
const size = React.Children.count(children);
|
|
126
|
-
|
|
109
|
+
const size = React.Children.count(children);
|
|
110
|
+
// freezes all screens except the top one
|
|
127
111
|
const childrenWithFreeze = React.Children.map(children, (child, index) => {
|
|
128
112
|
var _props$descriptor, _props$descriptors, _descriptor$options$f, _descriptor$options;
|
|
129
|
-
|
|
130
113
|
// @ts-expect-error it's either SceneView in v6 or RouteView in v5
|
|
131
114
|
const {
|
|
132
115
|
props,
|
|
@@ -139,46 +122,36 @@ function ScreenStack(props) {
|
|
|
139
122
|
}, child);
|
|
140
123
|
});
|
|
141
124
|
return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStack, rest, childrenWithFreeze);
|
|
142
|
-
}
|
|
143
|
-
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
125
|
+
}
|
|
144
126
|
|
|
127
|
+
// Incomplete type, all accessible properties available at:
|
|
128
|
+
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
145
129
|
|
|
146
130
|
class InnerScreen extends React.Component {
|
|
147
|
-
constructor(
|
|
148
|
-
super(...
|
|
149
|
-
|
|
131
|
+
constructor() {
|
|
132
|
+
super(...arguments);
|
|
150
133
|
_defineProperty(this, "ref", null);
|
|
151
|
-
|
|
152
134
|
_defineProperty(this, "closing", new Animated.Value(0));
|
|
153
|
-
|
|
154
135
|
_defineProperty(this, "progress", new Animated.Value(0));
|
|
155
|
-
|
|
156
136
|
_defineProperty(this, "goingForward", new Animated.Value(0));
|
|
157
|
-
|
|
158
137
|
_defineProperty(this, "setRef", ref => {
|
|
159
138
|
var _this$props$onCompone, _this$props;
|
|
160
|
-
|
|
161
139
|
this.ref = ref;
|
|
162
140
|
(_this$props$onCompone = (_this$props = this.props).onComponentRef) === null || _this$props$onCompone === void 0 ? void 0 : _this$props$onCompone.call(_this$props, ref);
|
|
163
141
|
});
|
|
164
142
|
}
|
|
165
|
-
|
|
166
143
|
setNativeProps(props) {
|
|
167
144
|
var _this$ref;
|
|
168
|
-
|
|
169
145
|
(_this$ref = this.ref) === null || _this$ref === void 0 ? void 0 : _this$ref.setNativeProps(props);
|
|
170
146
|
}
|
|
171
|
-
|
|
172
147
|
render() {
|
|
173
148
|
const {
|
|
174
149
|
enabled = ENABLE_SCREENS,
|
|
175
150
|
freezeOnBlur = ENABLE_FREEZE,
|
|
176
151
|
...rest
|
|
177
152
|
} = this.props;
|
|
178
|
-
|
|
179
153
|
if (enabled && isPlatformSupported) {
|
|
180
154
|
var _gestureResponseDista, _gestureResponseDista2, _gestureResponseDista3, _gestureResponseDista4;
|
|
181
|
-
|
|
182
155
|
AnimatedNativeScreen = AnimatedNativeScreen || Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
|
|
183
156
|
let {
|
|
184
157
|
// Filter out active prop in this case because it is unused and
|
|
@@ -191,7 +164,6 @@ class InnerScreen extends React.Component {
|
|
|
191
164
|
gestureResponseDistance,
|
|
192
165
|
...props
|
|
193
166
|
} = rest;
|
|
194
|
-
|
|
195
167
|
if (active !== undefined && activityState === undefined) {
|
|
196
168
|
console.warn('It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens');
|
|
197
169
|
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
|
@@ -199,15 +171,14 @@ class InnerScreen extends React.Component {
|
|
|
199
171
|
|
|
200
172
|
const handleRef = ref => {
|
|
201
173
|
var _ref$viewConfig, _ref$viewConfig$valid;
|
|
202
|
-
|
|
203
174
|
if (ref !== null && ref !== void 0 && (_ref$viewConfig = ref.viewConfig) !== null && _ref$viewConfig !== void 0 && (_ref$viewConfig$valid = _ref$viewConfig.validAttributes) !== null && _ref$viewConfig$valid !== void 0 && _ref$viewConfig$valid.style) {
|
|
204
|
-
ref.viewConfig.validAttributes.style = {
|
|
175
|
+
ref.viewConfig.validAttributes.style = {
|
|
176
|
+
...ref.viewConfig.validAttributes.style,
|
|
205
177
|
display: false
|
|
206
178
|
};
|
|
207
179
|
this.setRef(ref);
|
|
208
180
|
}
|
|
209
181
|
};
|
|
210
|
-
|
|
211
182
|
return /*#__PURE__*/React.createElement(DelayedFreeze, {
|
|
212
183
|
freeze: freezeOnBlur && activityState === 0
|
|
213
184
|
}, /*#__PURE__*/React.createElement(AnimatedNativeScreen, _extends({}, props, {
|
|
@@ -217,7 +188,8 @@ class InnerScreen extends React.Component {
|
|
|
217
188
|
end: (_gestureResponseDista2 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.end) !== null && _gestureResponseDista2 !== void 0 ? _gestureResponseDista2 : -1,
|
|
218
189
|
top: (_gestureResponseDista3 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.top) !== null && _gestureResponseDista3 !== void 0 ? _gestureResponseDista3 : -1,
|
|
219
190
|
bottom: (_gestureResponseDista4 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.bottom) !== null && _gestureResponseDista4 !== void 0 ? _gestureResponseDista4 : -1
|
|
220
|
-
}
|
|
191
|
+
}
|
|
192
|
+
// This prevents showing blank screen when navigating between multiple screens with freezing
|
|
221
193
|
// https://github.com/software-mansion/react-native-screens/pull/1208
|
|
222
194
|
,
|
|
223
195
|
ref: handleRef,
|
|
@@ -230,7 +202,8 @@ class InnerScreen extends React.Component {
|
|
|
230
202
|
}], {
|
|
231
203
|
useNativeDriver: true
|
|
232
204
|
})
|
|
233
|
-
}), !isNativeStack ?
|
|
205
|
+
}), !isNativeStack ?
|
|
206
|
+
// see comment of this prop in types.tsx for information why it is needed
|
|
234
207
|
children : /*#__PURE__*/React.createElement(TransitionProgressContext.Provider, {
|
|
235
208
|
value: {
|
|
236
209
|
progress: this.progress,
|
|
@@ -248,11 +221,9 @@ class InnerScreen extends React.Component {
|
|
|
248
221
|
onComponentRef,
|
|
249
222
|
...props
|
|
250
223
|
} = rest;
|
|
251
|
-
|
|
252
224
|
if (active !== undefined && activityState === undefined) {
|
|
253
225
|
activityState = active !== 0 ? 2 : 0;
|
|
254
226
|
}
|
|
255
|
-
|
|
256
227
|
return /*#__PURE__*/React.createElement(Animated.View, _extends({
|
|
257
228
|
style: [style, {
|
|
258
229
|
display: activityState !== 0 ? 'flex' : 'none'
|
|
@@ -261,27 +232,34 @@ class InnerScreen extends React.Component {
|
|
|
261
232
|
}, props));
|
|
262
233
|
}
|
|
263
234
|
}
|
|
264
|
-
|
|
265
235
|
}
|
|
266
|
-
|
|
267
236
|
function ScreenContainer(props) {
|
|
268
237
|
const {
|
|
269
238
|
enabled = ENABLE_SCREENS,
|
|
270
239
|
hasTwoStates,
|
|
271
240
|
...rest
|
|
272
241
|
} = props;
|
|
273
|
-
|
|
274
242
|
if (enabled && isPlatformSupported) {
|
|
275
243
|
if (hasTwoStates) {
|
|
276
244
|
return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenNavigationContainer, rest);
|
|
277
245
|
}
|
|
278
|
-
|
|
279
246
|
return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenContainer, rest);
|
|
280
247
|
}
|
|
281
|
-
|
|
282
248
|
return /*#__PURE__*/React.createElement(View, rest);
|
|
283
249
|
}
|
|
284
|
-
|
|
250
|
+
function FullWindowOverlay(props) {
|
|
251
|
+
if (Platform.OS !== 'ios') {
|
|
252
|
+
console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
|
|
253
|
+
return /*#__PURE__*/React.createElement(View, props);
|
|
254
|
+
}
|
|
255
|
+
return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeFullWindowOverlay, {
|
|
256
|
+
style: {
|
|
257
|
+
position: 'absolute',
|
|
258
|
+
width: '100%',
|
|
259
|
+
height: '100%'
|
|
260
|
+
}
|
|
261
|
+
}, props.children);
|
|
262
|
+
}
|
|
285
263
|
const styles = StyleSheet.create({
|
|
286
264
|
headerSubview: {
|
|
287
265
|
position: 'absolute',
|
|
@@ -292,7 +270,6 @@ const styles = StyleSheet.create({
|
|
|
292
270
|
justifyContent: 'center'
|
|
293
271
|
}
|
|
294
272
|
});
|
|
295
|
-
|
|
296
273
|
const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
|
|
297
274
|
type: "back",
|
|
298
275
|
style: styles.headerSubview
|
|
@@ -300,41 +277,32 @@ const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createEleme
|
|
|
300
277
|
resizeMode: "center",
|
|
301
278
|
fadeDuration: 0
|
|
302
279
|
}, props)));
|
|
303
|
-
|
|
304
280
|
const ScreenStackHeaderRightView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
305
281
|
type: "right",
|
|
306
282
|
style: styles.headerSubview
|
|
307
283
|
}));
|
|
308
|
-
|
|
309
284
|
const ScreenStackHeaderLeftView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
310
285
|
type: "left",
|
|
311
286
|
style: styles.headerSubview
|
|
312
287
|
}));
|
|
313
|
-
|
|
314
288
|
const ScreenStackHeaderCenterView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
315
289
|
type: "center",
|
|
316
290
|
style: styles.headerSubview
|
|
317
291
|
}));
|
|
318
|
-
|
|
319
292
|
const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
320
293
|
type: "searchBar",
|
|
321
294
|
style: styles.headerSubview
|
|
322
295
|
}));
|
|
323
|
-
|
|
324
296
|
// context to be used when the user wants to use enhanced implementation
|
|
325
297
|
// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
|
|
326
298
|
const ScreenContext = /*#__PURE__*/React.createContext(InnerScreen);
|
|
327
|
-
|
|
328
299
|
class Screen extends React.Component {
|
|
329
300
|
render() {
|
|
330
301
|
const ScreenWrapper = this.context || InnerScreen;
|
|
331
302
|
return /*#__PURE__*/React.createElement(ScreenWrapper, this.props);
|
|
332
303
|
}
|
|
333
|
-
|
|
334
304
|
}
|
|
335
|
-
|
|
336
305
|
_defineProperty(Screen, "contextType", ScreenContext);
|
|
337
|
-
|
|
338
306
|
module.exports = {
|
|
339
307
|
// these are classes so they are not evaluated until used
|
|
340
308
|
// so no need to use getters for them
|
|
@@ -343,45 +311,29 @@ module.exports = {
|
|
|
343
311
|
ScreenContext,
|
|
344
312
|
ScreenStack,
|
|
345
313
|
InnerScreen,
|
|
346
|
-
|
|
314
|
+
FullWindowOverlay,
|
|
347
315
|
get NativeScreen() {
|
|
348
316
|
return ScreensNativeModules.NativeScreen;
|
|
349
317
|
},
|
|
350
|
-
|
|
351
318
|
get NativeScreenContainer() {
|
|
352
319
|
return ScreensNativeModules.NativeScreenContainer;
|
|
353
320
|
},
|
|
354
|
-
|
|
355
321
|
get NativeScreenNavigationContainer() {
|
|
356
322
|
return ScreensNativeModules.NativeScreenNavigationContainer;
|
|
357
323
|
},
|
|
358
|
-
|
|
359
324
|
get ScreenStackHeaderConfig() {
|
|
360
325
|
return ScreensNativeModules.NativeScreenStackHeaderConfig;
|
|
361
326
|
},
|
|
362
|
-
|
|
363
327
|
get ScreenStackHeaderSubview() {
|
|
364
328
|
return ScreensNativeModules.NativeScreenStackHeaderSubview;
|
|
365
329
|
},
|
|
366
|
-
|
|
367
330
|
get SearchBar() {
|
|
368
331
|
if (!isSearchBarAvailableForCurrentPlatform) {
|
|
369
332
|
console.warn('Importing SearchBar is only valid on iOS and Android devices.');
|
|
370
333
|
return View;
|
|
371
334
|
}
|
|
372
|
-
|
|
373
335
|
return ScreensNativeModules.NativeSearchBar;
|
|
374
336
|
},
|
|
375
|
-
|
|
376
|
-
get FullWindowOverlay() {
|
|
377
|
-
if (Platform.OS !== 'ios') {
|
|
378
|
-
console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
|
|
379
|
-
return View;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
return ScreensNativeModules.NativeFullWindowOverlay;
|
|
383
|
-
},
|
|
384
|
-
|
|
385
337
|
// these are functions and will not be evaluated until used
|
|
386
338
|
// so no need to use getters for them
|
|
387
339
|
ScreenStackHeaderBackButtonImage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.native.tsx"],"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","styles","create","headerSubview","position","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","FullWindowOverlay"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<React.PropsWithChildren<\n ViewProps & { type?: HeaderSubviewTypes }\n>>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<View>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }>\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}>\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n get FullWindowOverlay() {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return View;\n }\n\n return ScreensNativeModules.NativeFullWindowOverlay;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"]}
|
|
1
|
+
{"version":3,"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar"],"sources":["index.native.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
* Navigators
|
|
3
3
|
*/
|
|
4
4
|
export { default as createNativeStackNavigator } from './navigators/createNativeStackNavigator';
|
|
5
|
+
|
|
5
6
|
/**
|
|
6
7
|
* Views
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
export { default as NativeStackView } from './views/NativeStackView';
|
|
10
|
+
|
|
10
11
|
/**
|
|
11
12
|
* Utilities
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
14
|
export { default as useHeaderHeight } from './utils/useHeaderHeight';
|
|
15
15
|
export { default as HeaderHeightContext } from './utils/HeaderHeightContext';
|
|
16
|
+
|
|
16
17
|
/**
|
|
17
18
|
* Types
|
|
18
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["default","createNativeStackNavigator","NativeStackView","useHeaderHeight","HeaderHeightContext"],"sources":["index.tsx"],"sourcesContent":["/**\n * Navigators\n */\nexport { default as createNativeStackNavigator } from './navigators/createNativeStackNavigator';\n\n/**\n * Views\n */\nexport { default as NativeStackView } from './views/NativeStackView';\n\n/**\n * Utilities\n */\nexport { default as useHeaderHeight } from './utils/useHeaderHeight';\nexport { default as HeaderHeightContext } from './utils/HeaderHeightContext';\n\n/**\n * Types\n */\nexport type {\n NativeStackNavigationOptions,\n NativeStackNavigationProp,\n NativeStackScreenProps,\n} from './types';\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,0BAA0B,QAAQ,yCAAyC;;AAE/F;AACA;AACA;AACA,SAASD,OAAO,IAAIE,eAAe,QAAQ,yBAAyB;;AAEpE;AACA;AACA;AACA,SAASF,OAAO,IAAIG,eAAe,QAAQ,yBAAyB;AACpE,SAASH,OAAO,IAAII,mBAAmB,QAAQ,6BAA6B;;AAE5E;AACA;AACA"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
1
|
+
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); }
|
|
3
2
|
import { createNavigatorFactory, StackActions, StackRouter, useNavigationBuilder } from '@react-navigation/native';
|
|
4
3
|
import * as React from 'react';
|
|
5
4
|
import NativeStackView from '../views/NativeStackView';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
5
|
+
function NativeStackNavigator(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
initialRouteName,
|
|
8
|
+
children,
|
|
9
|
+
screenOptions,
|
|
10
|
+
...rest
|
|
11
|
+
} = _ref;
|
|
13
12
|
const {
|
|
14
13
|
state,
|
|
15
14
|
descriptors,
|
|
@@ -18,9 +17,10 @@ function NativeStackNavigator({
|
|
|
18
17
|
initialRouteName,
|
|
19
18
|
children,
|
|
20
19
|
screenOptions
|
|
21
|
-
});
|
|
22
|
-
// `@react-navigation/native-stack` rather than `react-native-screens/native-stack`
|
|
20
|
+
});
|
|
23
21
|
|
|
22
|
+
// Starting from React Navigation v6, `native-stack` should be imported from
|
|
23
|
+
// `@react-navigation/native-stack` rather than `react-native-screens/native-stack`
|
|
24
24
|
React.useEffect(() => {
|
|
25
25
|
// @ts-ignore navigation.dangerouslyGetParent was removed in v6
|
|
26
26
|
if ((navigation === null || navigation === void 0 ? void 0 : navigation.dangerouslyGetParent) === undefined) {
|
|
@@ -29,16 +29,17 @@ function NativeStackNavigator({
|
|
|
29
29
|
}, [navigation]);
|
|
30
30
|
React.useEffect(() => {
|
|
31
31
|
var _navigation$addListen;
|
|
32
|
-
|
|
33
32
|
return navigation === null || navigation === void 0 ? void 0 : (_navigation$addListen = navigation.addListener) === null || _navigation$addListen === void 0 ? void 0 : _navigation$addListen.call(navigation, 'tabPress', e => {
|
|
34
|
-
const isFocused = navigation.isFocused();
|
|
35
|
-
// This is necessary to know if preventDefault() has been called
|
|
33
|
+
const isFocused = navigation.isFocused();
|
|
36
34
|
|
|
35
|
+
// Run the operation in the next frame so we're sure all listeners have been run
|
|
36
|
+
// This is necessary to know if preventDefault() has been called
|
|
37
37
|
requestAnimationFrame(() => {
|
|
38
38
|
if (state.index > 0 && isFocused && !e.defaultPrevented) {
|
|
39
39
|
// When user taps on already focused tab and we're inside the tab,
|
|
40
40
|
// reset the stack to replicate native behaviour
|
|
41
|
-
navigation.dispatch({
|
|
41
|
+
navigation.dispatch({
|
|
42
|
+
...StackActions.popToTop(),
|
|
42
43
|
target: state.key
|
|
43
44
|
});
|
|
44
45
|
}
|
|
@@ -51,6 +52,5 @@ function NativeStackNavigator({
|
|
|
51
52
|
descriptors: descriptors
|
|
52
53
|
}));
|
|
53
54
|
}
|
|
54
|
-
|
|
55
55
|
export default createNavigatorFactory(NativeStackNavigator);
|
|
56
56
|
//# sourceMappingURL=createNativeStackNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["createNavigatorFactory","StackActions","StackRouter","useNavigationBuilder","React","NativeStackView","NativeStackNavigator","initialRouteName","children","screenOptions","rest","state","descriptors","navigation","useEffect","dangerouslyGetParent","undefined","console","warn","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","popToTop","target","key"],"sources":["createNativeStackNavigator.tsx"],"sourcesContent":["import {\n createNavigatorFactory,\n EventArg,\n StackActions,\n StackActionHelpers,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n ParamListBase,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigatorProps,\n} from '../types';\nimport NativeStackView from '../views/NativeStackView';\n\nfunction NativeStackNavigator({\n initialRouteName,\n children,\n screenOptions,\n ...rest\n}: NativeStackNavigatorProps) {\n const { state, descriptors, navigation } = useNavigationBuilder<\n StackNavigationState<ParamListBase>,\n StackRouterOptions,\n StackActionHelpers<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n >(StackRouter, {\n initialRouteName,\n children,\n screenOptions,\n });\n\n // Starting from React Navigation v6, `native-stack` should be imported from\n // `@react-navigation/native-stack` rather than `react-native-screens/native-stack`\n React.useEffect(() => {\n // @ts-ignore navigation.dangerouslyGetParent was removed in v6\n if (navigation?.dangerouslyGetParent === undefined) {\n console.warn(\n 'Looks like you are importing `native-stack` from `react-native-screens/native-stack`. Since version 6 of `react-navigation`, it should be imported from `@react-navigation/native-stack`.'\n );\n }\n }, [navigation]);\n\n React.useEffect(\n () =>\n navigation?.addListener?.('tabPress', (e) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n <NativeStackView\n {...rest}\n state={state}\n navigation={navigation}\n descriptors={descriptors}\n />\n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n typeof NativeStackNavigator\n>(NativeStackNavigator);\n"],"mappings":";AAAA,SACEA,sBAAsB,EAEtBC,YAAY,EAGZC,WAAW,EAGXC,oBAAoB,QACf,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAM9B,OAAOC,eAAe,MAAM,0BAA0B;AAEtD,SAASC,oBAAoB,OAKC;EAAA,IALA;IAC5BC,gBAAgB;IAChBC,QAAQ;IACRC,aAAa;IACb,GAAGC;EACsB,CAAC;EAC1B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAGV,oBAAoB,CAM7DD,WAAW,EAAE;IACbK,gBAAgB;IAChBC,QAAQ;IACRC;EACF,CAAC,CAAC;;EAEF;EACA;EACAL,KAAK,CAACU,SAAS,CAAC,MAAM;IACpB;IACA,IAAI,CAAAD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,oBAAoB,MAAKC,SAAS,EAAE;MAClDC,OAAO,CAACC,IAAI,CACV,2LAA2L,CAC5L;IACH;EACF,CAAC,EAAE,CAACL,UAAU,CAAC,CAAC;EAEhBT,KAAK,CAACU,SAAS,CACb;IAAA;IAAA,OACED,UAAU,aAAVA,UAAU,gDAAVA,UAAU,CAAEM,WAAW,0DAAvB,2BAAAN,UAAU,EAAgB,UAAU,EAAGO,CAAC,IAAK;MAC3C,MAAMC,SAAS,GAAGR,UAAU,CAACQ,SAAS,EAAE;;MAExC;MACA;MACAC,qBAAqB,CAAC,MAAM;QAC1B,IACEX,KAAK,CAACY,KAAK,GAAG,CAAC,IACfF,SAAS,IACT,CAAED,CAAC,CAAgCI,gBAAgB,EACnD;UACA;UACA;UACAX,UAAU,CAACY,QAAQ,CAAC;YAClB,GAAGxB,YAAY,CAACyB,QAAQ,EAAE;YAC1BC,MAAM,EAAEhB,KAAK,CAACiB;UAChB,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EAAA,GACJ,CAACf,UAAU,EAAEF,KAAK,CAACY,KAAK,EAAEZ,KAAK,CAACiB,GAAG,CAAC,CACrC;EAED,oBACE,oBAAC,eAAe,eACVlB,IAAI;IACR,KAAK,EAAEC,KAAM;IACb,UAAU,EAAEE,UAAW;IACvB,WAAW,EAAED;EAAY,GACzB;AAEN;AAEA,eAAeZ,sBAAsB,CAKnCM,oBAAoB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=types.js.map
|