react-native-screens 3.18.2 → 3.20.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.
Files changed (153) hide show
  1. package/README.md +30 -38
  2. package/android/build.gradle +1 -5
  3. package/ios/RNSFullWindowOverlay.mm +32 -0
  4. package/ios/RNSScreen.h +3 -2
  5. package/ios/RNSScreen.mm +34 -2
  6. package/ios/RNSScreenStackHeaderConfig.mm +17 -1
  7. package/lib/commonjs/TransitionProgressContext.js +2 -7
  8. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  9. package/lib/commonjs/createNativeStackNavigator.js +29 -76
  10. package/lib/commonjs/createNativeStackNavigator.js.map +1 -1
  11. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
  12. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  13. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
  14. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  15. package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
  16. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  17. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
  18. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  19. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +2 -10
  20. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  21. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +2 -10
  22. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  23. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
  24. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  25. package/lib/commonjs/fabric/SearchBarNativeComponent.js +0 -7
  26. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  27. package/lib/commonjs/index.js +21 -45
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/index.native.js +46 -104
  30. package/lib/commonjs/index.native.js.map +1 -1
  31. package/lib/commonjs/native-stack/index.js +6 -11
  32. package/lib/commonjs/native-stack/index.js.map +1 -1
  33. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -25
  34. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  35. package/lib/commonjs/native-stack/types.js +4 -0
  36. package/lib/commonjs/native-stack/types.js.map +1 -1
  37. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +2 -6
  38. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  39. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +11 -19
  40. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  41. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +0 -7
  42. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  43. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +7 -18
  44. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  45. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -10
  46. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  47. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -6
  48. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  49. package/lib/commonjs/native-stack/views/HeaderConfig.js +46 -50
  50. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  51. package/lib/commonjs/native-stack/views/NativeStackView.js +32 -58
  52. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  53. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +11 -21
  54. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  55. package/lib/commonjs/reanimated/ReanimatedScreen.js +3 -10
  56. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  57. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +6 -20
  58. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  59. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +2 -7
  60. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  61. package/lib/commonjs/reanimated/index.js +0 -3
  62. package/lib/commonjs/reanimated/index.js.map +1 -1
  63. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -10
  64. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  65. package/lib/commonjs/types.js +4 -0
  66. package/lib/commonjs/types.js.map +1 -1
  67. package/lib/commonjs/useTransitionProgress.js +2 -10
  68. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  69. package/lib/commonjs/utils.js +0 -4
  70. package/lib/commonjs/utils.js.map +1 -1
  71. package/lib/module/TransitionProgressContext.js.map +1 -1
  72. package/lib/module/createNativeStackNavigator.js +29 -67
  73. package/lib/module/createNativeStackNavigator.js.map +1 -1
  74. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -1
  75. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  76. package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -1
  77. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  78. package/lib/module/fabric/ScreenNativeComponent.js +0 -1
  79. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  80. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -1
  81. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  82. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -1
  83. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  84. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -1
  85. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  86. package/lib/module/fabric/ScreenStackNativeComponent.js +0 -1
  87. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  88. package/lib/module/fabric/SearchBarNativeComponent.js +0 -1
  89. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  90. package/lib/module/index.js +13 -11
  91. package/lib/module/index.js.map +1 -1
  92. package/lib/module/index.native.js +48 -94
  93. package/lib/module/index.native.js.map +1 -1
  94. package/lib/module/native-stack/index.js +3 -2
  95. package/lib/module/native-stack/index.js.map +1 -1
  96. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +16 -16
  97. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  98. package/lib/module/native-stack/types.js +1 -1
  99. package/lib/module/native-stack/types.js.map +1 -1
  100. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  101. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +8 -7
  102. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  103. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +0 -4
  104. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  105. package/lib/module/native-stack/utils/useBackPressSubscription.js +7 -8
  106. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  107. package/lib/module/native-stack/utils/useHeaderHeight.js +0 -2
  108. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  109. package/lib/module/native-stack/views/FontProcessor.js +0 -3
  110. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  111. package/lib/module/native-stack/views/HeaderConfig.js +44 -39
  112. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  113. package/lib/module/native-stack/views/NativeStackView.js +32 -42
  114. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  115. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +12 -9
  116. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  117. package/lib/module/reanimated/ReanimatedScreen.js +5 -4
  118. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  119. package/lib/module/reanimated/ReanimatedScreenProvider.js +6 -15
  120. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  121. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +2 -1
  122. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  123. package/lib/module/reanimated/index.js.map +1 -1
  124. package/lib/module/reanimated/useReanimatedTransitionProgress.js +0 -2
  125. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  126. package/lib/module/types.js +1 -1
  127. package/lib/module/types.js.map +1 -1
  128. package/lib/module/useTransitionProgress.js +0 -2
  129. package/lib/module/useTransitionProgress.js.map +1 -1
  130. package/lib/module/utils.js.map +1 -1
  131. package/lib/typescript/TransitionProgressContext.d.ts +1 -1
  132. package/lib/typescript/createNativeStackNavigator.d.ts +5 -5
  133. package/lib/typescript/index.d.ts +4 -2
  134. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +3 -2
  135. package/lib/typescript/native-stack/types.d.ts +9 -9
  136. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -1
  137. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
  138. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +2 -1
  139. package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
  140. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
  141. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
  142. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -1
  143. package/lib/typescript/types.d.ts +10 -9
  144. package/package.json +10 -2
  145. package/src/createNativeStackNavigator.tsx +4 -2
  146. package/src/index.native.tsx +32 -16
  147. package/src/index.tsx +13 -8
  148. package/src/native-stack/types.tsx +4 -5
  149. package/src/native-stack/views/HeaderConfig.tsx +8 -10
  150. package/src/native-stack/views/NativeStackView.tsx +8 -4
  151. package/src/reanimated/ReanimatedNativeStackScreen.tsx +5 -3
  152. package/src/reanimated/ReanimatedScreen.tsx +1 -1
  153. package/android/src/main/java/com/swmansion/rnscreens/LifecycleHelper.kt +0 -60
@@ -1,48 +1,45 @@
1
- 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); }
2
-
3
- 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
-
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); }
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
5
  import React from 'react';
6
6
  import { Animated, Image, Platform, requireNativeComponent, StyleSheet, UIManager, View } from 'react-native';
7
7
  import { Freeze } from 'react-freeze';
8
8
  import { version } from 'react-native/package.json';
9
9
  import TransitionProgressContext from './TransitionProgressContext';
10
10
  import useTransitionProgress from './useTransitionProgress';
11
- import { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils'; // web implementation is taken from `index.tsx`
11
+ import { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils';
12
12
 
13
+ // web implementation is taken from `index.tsx`
13
14
  const isPlatformSupported = Platform.OS === 'ios' || Platform.OS === 'android' || Platform.OS === 'windows';
14
15
  let ENABLE_SCREENS = isPlatformSupported;
15
-
16
- function enableScreens(shouldEnableScreens = true) {
16
+ function enableScreens() {
17
+ let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
17
18
  ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
18
-
19
19
  if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {
20
20
  console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
21
21
  }
22
22
  }
23
-
24
23
  let ENABLE_FREEZE = false;
25
-
26
- function enableFreeze(shouldEnableReactFreeze = true) {
24
+ function enableFreeze() {
25
+ let shouldEnableReactFreeze = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
27
26
  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
27
 
28
+ // react-freeze requires react-native >=0.64, react-native from main is 0.0.0
30
29
  if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {
31
30
  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
31
  }
33
-
34
32
  ENABLE_FREEZE = shouldEnableReactFreeze;
35
- } // const that tells if the library should use new implementation, will be undefined for older versions
36
-
33
+ }
37
34
 
35
+ // const that tells if the library should use new implementation, will be undefined for older versions
38
36
  const shouldUseActivityState = true;
39
-
40
37
  function screensEnabled() {
41
38
  return ENABLE_SCREENS;
42
- } // We initialize these lazily so that importing the module doesn't throw error when not linked
43
- // This is necessary coz libraries such as React Navigation import the library where it may not be enabled
44
-
39
+ }
45
40
 
41
+ // We initialize these lazily so that importing the module doesn't throw error when not linked
42
+ // This is necessary coz libraries such as React Navigation import the library where it may not be enabled
46
43
  let NativeScreenValue;
47
44
  let NativeScreenContainerValue;
48
45
  let NativeScreenNavigationContainerValue;
@@ -57,53 +54,44 @@ const ScreensNativeModules = {
57
54
  NativeScreenValue = NativeScreenValue || requireNativeComponent('RNSScreen');
58
55
  return NativeScreenValue;
59
56
  },
60
-
61
57
  get NativeScreenContainer() {
62
58
  NativeScreenContainerValue = NativeScreenContainerValue || requireNativeComponent('RNSScreenContainer');
63
59
  return NativeScreenContainerValue;
64
60
  },
65
-
66
61
  get NativeScreenNavigationContainer() {
67
62
  NativeScreenNavigationContainerValue = NativeScreenNavigationContainerValue || (Platform.OS === 'ios' ? requireNativeComponent('RNSScreenNavigationContainer') : this.NativeScreenContainer);
68
63
  return NativeScreenNavigationContainerValue;
69
64
  },
70
-
71
65
  get NativeScreenStack() {
72
66
  NativeScreenStack = NativeScreenStack || requireNativeComponent('RNSScreenStack');
73
67
  return NativeScreenStack;
74
68
  },
75
-
76
69
  get NativeScreenStackHeaderConfig() {
77
70
  NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || requireNativeComponent('RNSScreenStackHeaderConfig');
78
71
  return NativeScreenStackHeaderConfig;
79
72
  },
80
-
81
73
  get NativeScreenStackHeaderSubview() {
82
74
  NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || requireNativeComponent('RNSScreenStackHeaderSubview');
83
75
  return NativeScreenStackHeaderSubview;
84
76
  },
85
-
86
77
  get NativeSearchBar() {
87
78
  NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');
88
79
  return NativeSearchBar;
89
80
  },
90
-
91
81
  get NativeFullWindowOverlay() {
92
82
  NativeFullWindowOverlay = NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');
93
83
  return NativeFullWindowOverlay;
94
84
  }
95
-
96
85
  };
97
-
98
86
  // This component allows one more render before freezing the screen.
99
87
  // Allows activityState to reach the native side and useIsFocused to work correctly.
100
- function DelayedFreeze({
101
- freeze,
102
- children
103
- }) {
88
+ function DelayedFreeze(_ref) {
89
+ let {
90
+ freeze,
91
+ children
92
+ } = _ref;
104
93
  // flag used for determining whether freeze should be enabled
105
94
  const [freezeState, setFreezeState] = React.useState(false);
106
-
107
95
  if (freeze !== freezeState) {
108
96
  // setImmediate is executed at the end of the JS execution block.
109
97
  // Used here for changing the state right after the render.
@@ -111,22 +99,19 @@ function DelayedFreeze({
111
99
  setFreezeState(freeze);
112
100
  });
113
101
  }
114
-
115
102
  return /*#__PURE__*/React.createElement(Freeze, {
116
103
  freeze: freeze ? freezeState : false
117
104
  }, children);
118
105
  }
119
-
120
106
  function ScreenStack(props) {
121
107
  const {
122
108
  children,
123
109
  ...rest
124
110
  } = props;
125
- const size = React.Children.count(children); // freezes all screens except the top one
126
-
111
+ const size = React.Children.count(children);
112
+ // freezes all screens except the top one
127
113
  const childrenWithFreeze = React.Children.map(children, (child, index) => {
128
114
  var _props$descriptor, _props$descriptors, _descriptor$options$f, _descriptor$options;
129
-
130
115
  // @ts-expect-error it's either SceneView in v6 or RouteView in v5
131
116
  const {
132
117
  props,
@@ -139,46 +124,36 @@ function ScreenStack(props) {
139
124
  }, child);
140
125
  });
141
126
  return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStack, rest, childrenWithFreeze);
142
- } // Incomplete type, all accessible properties available at:
143
- // react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
127
+ }
144
128
 
129
+ // Incomplete type, all accessible properties available at:
130
+ // react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
145
131
 
146
132
  class InnerScreen extends React.Component {
147
- constructor(...args) {
148
- super(...args);
149
-
133
+ constructor() {
134
+ super(...arguments);
150
135
  _defineProperty(this, "ref", null);
151
-
152
136
  _defineProperty(this, "closing", new Animated.Value(0));
153
-
154
137
  _defineProperty(this, "progress", new Animated.Value(0));
155
-
156
138
  _defineProperty(this, "goingForward", new Animated.Value(0));
157
-
158
139
  _defineProperty(this, "setRef", ref => {
159
140
  var _this$props$onCompone, _this$props;
160
-
161
141
  this.ref = ref;
162
142
  (_this$props$onCompone = (_this$props = this.props).onComponentRef) === null || _this$props$onCompone === void 0 ? void 0 : _this$props$onCompone.call(_this$props, ref);
163
143
  });
164
144
  }
165
-
166
145
  setNativeProps(props) {
167
146
  var _this$ref;
168
-
169
147
  (_this$ref = this.ref) === null || _this$ref === void 0 ? void 0 : _this$ref.setNativeProps(props);
170
148
  }
171
-
172
149
  render() {
173
150
  const {
174
151
  enabled = ENABLE_SCREENS,
175
152
  freezeOnBlur = ENABLE_FREEZE,
176
153
  ...rest
177
154
  } = this.props;
178
-
179
155
  if (enabled && isPlatformSupported) {
180
156
  var _gestureResponseDista, _gestureResponseDista2, _gestureResponseDista3, _gestureResponseDista4;
181
-
182
157
  AnimatedNativeScreen = AnimatedNativeScreen || Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
183
158
  let {
184
159
  // Filter out active prop in this case because it is unused and
@@ -191,7 +166,6 @@ class InnerScreen extends React.Component {
191
166
  gestureResponseDistance,
192
167
  ...props
193
168
  } = rest;
194
-
195
169
  if (active !== undefined && activityState === undefined) {
196
170
  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
171
  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 +173,14 @@ class InnerScreen extends React.Component {
199
173
 
200
174
  const handleRef = ref => {
201
175
  var _ref$viewConfig, _ref$viewConfig$valid;
202
-
203
176
  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 = { ...ref.viewConfig.validAttributes.style,
177
+ ref.viewConfig.validAttributes.style = {
178
+ ...ref.viewConfig.validAttributes.style,
205
179
  display: false
206
180
  };
207
181
  this.setRef(ref);
208
182
  }
209
183
  };
210
-
211
184
  return /*#__PURE__*/React.createElement(DelayedFreeze, {
212
185
  freeze: freezeOnBlur && activityState === 0
213
186
  }, /*#__PURE__*/React.createElement(AnimatedNativeScreen, _extends({}, props, {
@@ -217,7 +190,8 @@ class InnerScreen extends React.Component {
217
190
  end: (_gestureResponseDista2 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.end) !== null && _gestureResponseDista2 !== void 0 ? _gestureResponseDista2 : -1,
218
191
  top: (_gestureResponseDista3 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.top) !== null && _gestureResponseDista3 !== void 0 ? _gestureResponseDista3 : -1,
219
192
  bottom: (_gestureResponseDista4 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.bottom) !== null && _gestureResponseDista4 !== void 0 ? _gestureResponseDista4 : -1
220
- } // This prevents showing blank screen when navigating between multiple screens with freezing
193
+ }
194
+ // This prevents showing blank screen when navigating between multiple screens with freezing
221
195
  // https://github.com/software-mansion/react-native-screens/pull/1208
222
196
  ,
223
197
  ref: handleRef,
@@ -230,7 +204,8 @@ class InnerScreen extends React.Component {
230
204
  }], {
231
205
  useNativeDriver: true
232
206
  })
233
- }), !isNativeStack ? // see comment of this prop in types.tsx for information why it is needed
207
+ }), !isNativeStack ?
208
+ // see comment of this prop in types.tsx for information why it is needed
234
209
  children : /*#__PURE__*/React.createElement(TransitionProgressContext.Provider, {
235
210
  value: {
236
211
  progress: this.progress,
@@ -248,11 +223,9 @@ class InnerScreen extends React.Component {
248
223
  onComponentRef,
249
224
  ...props
250
225
  } = rest;
251
-
252
226
  if (active !== undefined && activityState === undefined) {
253
227
  activityState = active !== 0 ? 2 : 0;
254
228
  }
255
-
256
229
  return /*#__PURE__*/React.createElement(Animated.View, _extends({
257
230
  style: [style, {
258
231
  display: activityState !== 0 ? 'flex' : 'none'
@@ -261,27 +234,34 @@ class InnerScreen extends React.Component {
261
234
  }, props));
262
235
  }
263
236
  }
264
-
265
237
  }
266
-
267
238
  function ScreenContainer(props) {
268
239
  const {
269
240
  enabled = ENABLE_SCREENS,
270
241
  hasTwoStates,
271
242
  ...rest
272
243
  } = props;
273
-
274
244
  if (enabled && isPlatformSupported) {
275
245
  if (hasTwoStates) {
276
246
  return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenNavigationContainer, rest);
277
247
  }
278
-
279
248
  return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenContainer, rest);
280
249
  }
281
-
282
250
  return /*#__PURE__*/React.createElement(View, rest);
283
251
  }
284
-
252
+ function FullWindowOverlay(props) {
253
+ if (Platform.OS !== 'ios') {
254
+ console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
255
+ return /*#__PURE__*/React.createElement(View, props);
256
+ }
257
+ return /*#__PURE__*/React.createElement(ScreensNativeModules.NativeFullWindowOverlay, {
258
+ style: {
259
+ position: 'absolute',
260
+ width: '100%',
261
+ height: '100%'
262
+ }
263
+ }, props.children);
264
+ }
285
265
  const styles = StyleSheet.create({
286
266
  headerSubview: {
287
267
  position: 'absolute',
@@ -292,7 +272,6 @@ const styles = StyleSheet.create({
292
272
  justifyContent: 'center'
293
273
  }
294
274
  });
295
-
296
275
  const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
297
276
  type: "back",
298
277
  style: styles.headerSubview
@@ -300,41 +279,32 @@ const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createEleme
300
279
  resizeMode: "center",
301
280
  fadeDuration: 0
302
281
  }, props)));
303
-
304
282
  const ScreenStackHeaderRightView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
305
283
  type: "right",
306
284
  style: styles.headerSubview
307
285
  }));
308
-
309
286
  const ScreenStackHeaderLeftView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
310
287
  type: "left",
311
288
  style: styles.headerSubview
312
289
  }));
313
-
314
290
  const ScreenStackHeaderCenterView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
315
291
  type: "center",
316
292
  style: styles.headerSubview
317
293
  }));
318
-
319
294
  const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/React.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
320
295
  type: "searchBar",
321
296
  style: styles.headerSubview
322
297
  }));
323
-
324
298
  // context to be used when the user wants to use enhanced implementation
325
299
  // e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
326
300
  const ScreenContext = /*#__PURE__*/React.createContext(InnerScreen);
327
-
328
301
  class Screen extends React.Component {
329
302
  render() {
330
303
  const ScreenWrapper = this.context || InnerScreen;
331
304
  return /*#__PURE__*/React.createElement(ScreenWrapper, this.props);
332
305
  }
333
-
334
306
  }
335
-
336
307
  _defineProperty(Screen, "contextType", ScreenContext);
337
-
338
308
  module.exports = {
339
309
  // these are classes so they are not evaluated until used
340
310
  // so no need to use getters for them
@@ -343,45 +313,29 @@ module.exports = {
343
313
  ScreenContext,
344
314
  ScreenStack,
345
315
  InnerScreen,
346
-
316
+ FullWindowOverlay,
347
317
  get NativeScreen() {
348
318
  return ScreensNativeModules.NativeScreen;
349
319
  },
350
-
351
320
  get NativeScreenContainer() {
352
321
  return ScreensNativeModules.NativeScreenContainer;
353
322
  },
354
-
355
323
  get NativeScreenNavigationContainer() {
356
324
  return ScreensNativeModules.NativeScreenNavigationContainer;
357
325
  },
358
-
359
326
  get ScreenStackHeaderConfig() {
360
327
  return ScreensNativeModules.NativeScreenStackHeaderConfig;
361
328
  },
362
-
363
329
  get ScreenStackHeaderSubview() {
364
330
  return ScreensNativeModules.NativeScreenStackHeaderSubview;
365
331
  },
366
-
367
332
  get SearchBar() {
368
333
  if (!isSearchBarAvailableForCurrentPlatform) {
369
334
  console.warn('Importing SearchBar is only valid on iOS and Android devices.');
370
335
  return View;
371
336
  }
372
-
373
337
  return ScreensNativeModules.NativeSearchBar;
374
338
  },
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
339
  // these are functions and will not be evaluated until used
386
340
  // so no need to use getters for them
387
341
  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,"sources":["index.tsx"],"names":["default","createNativeStackNavigator","NativeStackView","useHeaderHeight","HeaderHeightContext"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,0BAApB,QAAsD,yCAAtD;AAEA;AACA;AACA;;AACA,SAASD,OAAO,IAAIE,eAApB,QAA2C,yBAA3C;AAEA;AACA;AACA;;AACA,SAASF,OAAO,IAAIG,eAApB,QAA2C,yBAA3C;AACA,SAASH,OAAO,IAAII,mBAApB,QAA+C,6BAA/C;AAEA;AACA;AACA","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"]}
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 || 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); }
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
- function NativeStackNavigator({
8
- initialRouteName,
9
- children,
10
- screenOptions,
11
- ...rest
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
- }); // Starting from React Navigation v6, `native-stack` should be imported from
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(); // Run the operation in the next frame so we're sure all listeners have been run
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({ ...StackActions.popToTop(),
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,"sources":["createNativeStackNavigator.tsx"],"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"],"mappings":";;AAAA,SACEA,sBADF,EAGEC,YAHF,EAMEC,WANF,EASEC,oBATF,QAUO,0BAVP;AAWA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAMA,OAAOC,eAAP,MAA4B,0BAA5B;;AAEA,SAASC,oBAAT,CAA8B;AAC5BC,EAAAA,gBAD4B;AAE5BC,EAAAA,QAF4B;AAG5BC,EAAAA,aAH4B;AAI5B,KAAGC;AAJyB,CAA9B,EAK8B;AAC5B,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,WAAT;AAAsBC,IAAAA;AAAtB,MAAqCV,oBAAoB,CAM7DD,WAN6D,EAMhD;AACbK,IAAAA,gBADa;AAEbC,IAAAA,QAFa;AAGbC,IAAAA;AAHa,GANgD,CAA/D,CAD4B,CAa5B;AACA;;AACAL,EAAAA,KAAK,CAACU,SAAN,CAAgB,MAAM;AACpB;AACA,QAAI,CAAAD,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEE,oBAAZ,MAAqCC,SAAzC,EAAoD;AAClDC,MAAAA,OAAO,CAACC,IAAR,CACE,2LADF;AAGD;AACF,GAPD,EAOG,CAACL,UAAD,CAPH;AASAT,EAAAA,KAAK,CAACU,SAAN,CACE;AAAA;;AAAA,WACED,UADF,aACEA,UADF,gDACEA,UAAU,CAAEM,WADd,0DACE,2BAAAN,UAAU,EAAgB,UAAhB,EAA6BO,CAAD,IAAO;AAC3C,YAAMC,SAAS,GAAGR,UAAU,CAACQ,SAAX,EAAlB,CAD2C,CAG3C;AACA;;AACAC,MAAAA,qBAAqB,CAAC,MAAM;AAC1B,YACEX,KAAK,CAACY,KAAN,GAAc,CAAd,IACAF,SADA,IAEA,CAAED,CAAD,CAAkCI,gBAHrC,EAIE;AACA;AACA;AACAX,UAAAA,UAAU,CAACY,QAAX,CAAoB,EAClB,GAAGxB,YAAY,CAACyB,QAAb,EADe;AAElBC,YAAAA,MAAM,EAAEhB,KAAK,CAACiB;AAFI,WAApB;AAID;AACF,OAboB,CAArB;AAcD,KAnBS,CADZ;AAAA,GADF,EAsBE,CAACf,UAAD,EAAaF,KAAK,CAACY,KAAnB,EAA0BZ,KAAK,CAACiB,GAAhC,CAtBF;AAyBA,sBACE,oBAAC,eAAD,eACMlB,IADN;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,UAAU,EAAEE,UAHd;AAIE,IAAA,WAAW,EAAED;AAJf,KADF;AAQD;;AAED,eAAeZ,sBAAsB,CAKnCM,oBALmC,CAArC","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"]}
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"}