react-native-screens 3.18.2 → 3.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +30 -38
  2. package/android/build.gradle +1 -5
  3. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +10 -0
  4. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +15 -0
  5. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +5 -0
  6. package/ios/RNSConvert.h +6 -0
  7. package/ios/RNSConvert.mm +26 -0
  8. package/ios/RNSEnums.h +6 -0
  9. package/ios/RNSFullWindowOverlay.mm +32 -0
  10. package/ios/RNSScreen.h +10 -2
  11. package/ios/RNSScreen.mm +133 -2
  12. package/ios/RNSScreenStackHeaderConfig.mm +17 -1
  13. package/lib/commonjs/TransitionProgressContext.js +2 -7
  14. package/lib/commonjs/TransitionProgressContext.js.map +1 -1
  15. package/lib/commonjs/createNativeStackNavigator.js +29 -76
  16. package/lib/commonjs/createNativeStackNavigator.js.map +1 -1
  17. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
  18. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  19. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
  20. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
  21. package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
  22. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  23. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
  24. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  25. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +2 -10
  26. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  27. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +2 -10
  28. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  29. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
  30. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
  31. package/lib/commonjs/fabric/SearchBarNativeComponent.js +0 -7
  32. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
  33. package/lib/commonjs/index.js +21 -45
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/index.native.js +43 -103
  36. package/lib/commonjs/index.native.js.map +1 -1
  37. package/lib/commonjs/native-stack/index.js +6 -11
  38. package/lib/commonjs/native-stack/index.js.map +1 -1
  39. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -25
  40. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  41. package/lib/commonjs/native-stack/types.js +4 -0
  42. package/lib/commonjs/native-stack/types.js.map +1 -1
  43. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +2 -6
  44. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
  45. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +11 -19
  46. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  47. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +0 -7
  48. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  49. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +7 -18
  50. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
  51. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -10
  52. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
  53. package/lib/commonjs/native-stack/views/FontProcessor.js +1 -6
  54. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
  55. package/lib/commonjs/native-stack/views/HeaderConfig.js +46 -50
  56. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  57. package/lib/commonjs/native-stack/views/NativeStackView.js +32 -58
  58. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  59. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +11 -21
  60. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  61. package/lib/commonjs/reanimated/ReanimatedScreen.js +3 -10
  62. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
  63. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +3 -19
  64. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  65. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +2 -7
  66. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  67. package/lib/commonjs/reanimated/index.js +0 -3
  68. package/lib/commonjs/reanimated/index.js.map +1 -1
  69. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -10
  70. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  71. package/lib/commonjs/types.js +4 -0
  72. package/lib/commonjs/types.js.map +1 -1
  73. package/lib/commonjs/useTransitionProgress.js +2 -10
  74. package/lib/commonjs/useTransitionProgress.js.map +1 -1
  75. package/lib/commonjs/utils.js +0 -4
  76. package/lib/commonjs/utils.js.map +1 -1
  77. package/lib/module/TransitionProgressContext.js.map +1 -1
  78. package/lib/module/createNativeStackNavigator.js +29 -67
  79. package/lib/module/createNativeStackNavigator.js.map +1 -1
  80. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -1
  81. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
  82. package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -1
  83. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
  84. package/lib/module/fabric/ScreenNativeComponent.js +0 -1
  85. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  86. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -1
  87. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
  88. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -1
  89. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  90. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -1
  91. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  92. package/lib/module/fabric/ScreenStackNativeComponent.js +0 -1
  93. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
  94. package/lib/module/fabric/SearchBarNativeComponent.js +0 -1
  95. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
  96. package/lib/module/index.js +13 -11
  97. package/lib/module/index.js.map +1 -1
  98. package/lib/module/index.native.js +45 -93
  99. package/lib/module/index.native.js.map +1 -1
  100. package/lib/module/native-stack/index.js +3 -2
  101. package/lib/module/native-stack/index.js.map +1 -1
  102. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +16 -16
  103. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
  104. package/lib/module/native-stack/types.js +1 -1
  105. package/lib/module/native-stack/types.js.map +1 -1
  106. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
  107. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +8 -7
  108. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
  109. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +0 -4
  110. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
  111. package/lib/module/native-stack/utils/useBackPressSubscription.js +7 -8
  112. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
  113. package/lib/module/native-stack/utils/useHeaderHeight.js +0 -2
  114. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
  115. package/lib/module/native-stack/views/FontProcessor.js +0 -3
  116. package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
  117. package/lib/module/native-stack/views/HeaderConfig.js +44 -39
  118. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  119. package/lib/module/native-stack/views/NativeStackView.js +32 -42
  120. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  121. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +12 -9
  122. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
  123. package/lib/module/reanimated/ReanimatedScreen.js +5 -4
  124. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
  125. package/lib/module/reanimated/ReanimatedScreenProvider.js +3 -14
  126. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  127. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +2 -1
  128. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
  129. package/lib/module/reanimated/index.js.map +1 -1
  130. package/lib/module/reanimated/useReanimatedTransitionProgress.js +0 -2
  131. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
  132. package/lib/module/types.js +1 -1
  133. package/lib/module/types.js.map +1 -1
  134. package/lib/module/useTransitionProgress.js +0 -2
  135. package/lib/module/useTransitionProgress.js.map +1 -1
  136. package/lib/module/utils.js.map +1 -1
  137. package/lib/typescript/index.d.ts +4 -2
  138. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -0
  139. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -0
  140. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -0
  141. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
  142. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
  143. package/lib/typescript/types.d.ts +1 -0
  144. package/package.json +9 -1
  145. package/src/createNativeStackNavigator.tsx +4 -2
  146. package/src/fabric/ScreenNativeComponent.js +7 -0
  147. package/src/index.native.tsx +32 -16
  148. package/src/index.tsx +13 -8
  149. package/src/native-stack/types.tsx +4 -5
  150. package/src/native-stack/views/HeaderConfig.tsx +8 -10
  151. package/src/native-stack/views/NativeStackView.tsx +8 -4
  152. package/src/reanimated/ReanimatedNativeStackScreen.tsx +5 -3
  153. package/src/reanimated/ReanimatedScreen.tsx +1 -1
@@ -1,59 +1,45 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
-
5
4
  var _reactNative = require("react-native");
6
-
7
5
  var _reactFreeze = require("react-freeze");
8
-
9
6
  var _package = require("react-native/package.json");
10
-
11
7
  var _TransitionProgressContext = _interopRequireDefault(require("./TransitionProgressContext"));
12
-
13
8
  var _useTransitionProgress = _interopRequireDefault(require("./useTransitionProgress"));
14
-
15
9
  var _utils = require("./utils");
16
-
17
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
- 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); }
20
-
11
+ 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); }
21
12
  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; }
22
-
23
13
  // web implementation is taken from `index.tsx`
24
14
  const isPlatformSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'windows';
25
15
  let ENABLE_SCREENS = isPlatformSupported;
26
-
27
- function enableScreens(shouldEnableScreens = true) {
16
+ function enableScreens() {
17
+ let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
28
18
  ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
29
-
30
19
  if (ENABLE_SCREENS && !_reactNative.UIManager.getViewManagerConfig('RNSScreen')) {
31
20
  console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
32
21
  }
33
22
  }
34
-
35
23
  let ENABLE_FREEZE = false;
36
-
37
- function enableFreeze(shouldEnableReactFreeze = true) {
24
+ function enableFreeze() {
25
+ let shouldEnableReactFreeze = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
38
26
  const minor = parseInt(_package.version.split('.')[1]); // eg. takes 66 from '0.66.0'
39
- // react-freeze requires react-native >=0.64, react-native from main is 0.0.0
40
27
 
28
+ // react-freeze requires react-native >=0.64, react-native from main is 0.0.0
41
29
  if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {
42
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.');
43
31
  }
44
-
45
32
  ENABLE_FREEZE = shouldEnableReactFreeze;
46
- } // const that tells if the library should use new implementation, will be undefined for older versions
47
-
33
+ }
48
34
 
35
+ // const that tells if the library should use new implementation, will be undefined for older versions
49
36
  const shouldUseActivityState = true;
50
-
51
37
  function screensEnabled() {
52
38
  return ENABLE_SCREENS;
53
- } // We initialize these lazily so that importing the module doesn't throw error when not linked
54
- // This is necessary coz libraries such as React Navigation import the library where it may not be enabled
55
-
39
+ }
56
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
57
43
  let NativeScreenValue;
58
44
  let NativeScreenContainerValue;
59
45
  let NativeScreenNavigationContainerValue;
@@ -68,53 +54,44 @@ const ScreensNativeModules = {
68
54
  NativeScreenValue = NativeScreenValue || (0, _reactNative.requireNativeComponent)('RNSScreen');
69
55
  return NativeScreenValue;
70
56
  },
71
-
72
57
  get NativeScreenContainer() {
73
58
  NativeScreenContainerValue = NativeScreenContainerValue || (0, _reactNative.requireNativeComponent)('RNSScreenContainer');
74
59
  return NativeScreenContainerValue;
75
60
  },
76
-
77
61
  get NativeScreenNavigationContainer() {
78
62
  NativeScreenNavigationContainerValue = NativeScreenNavigationContainerValue || (_reactNative.Platform.OS === 'ios' ? (0, _reactNative.requireNativeComponent)('RNSScreenNavigationContainer') : this.NativeScreenContainer);
79
63
  return NativeScreenNavigationContainerValue;
80
64
  },
81
-
82
65
  get NativeScreenStack() {
83
66
  NativeScreenStack = NativeScreenStack || (0, _reactNative.requireNativeComponent)('RNSScreenStack');
84
67
  return NativeScreenStack;
85
68
  },
86
-
87
69
  get NativeScreenStackHeaderConfig() {
88
70
  NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderConfig');
89
71
  return NativeScreenStackHeaderConfig;
90
72
  },
91
-
92
73
  get NativeScreenStackHeaderSubview() {
93
74
  NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderSubview');
94
75
  return NativeScreenStackHeaderSubview;
95
76
  },
96
-
97
77
  get NativeSearchBar() {
98
78
  NativeSearchBar = NativeSearchBar || (0, _reactNative.requireNativeComponent)('RNSSearchBar');
99
79
  return NativeSearchBar;
100
80
  },
101
-
102
81
  get NativeFullWindowOverlay() {
103
82
  NativeFullWindowOverlay = NativeFullWindowOverlay || (0, _reactNative.requireNativeComponent)('RNSFullWindowOverlay');
104
83
  return NativeFullWindowOverlay;
105
84
  }
106
-
107
85
  };
108
-
109
86
  // This component allows one more render before freezing the screen.
110
87
  // Allows activityState to reach the native side and useIsFocused to work correctly.
111
- function DelayedFreeze({
112
- freeze,
113
- children
114
- }) {
88
+ function DelayedFreeze(_ref) {
89
+ let {
90
+ freeze,
91
+ children
92
+ } = _ref;
115
93
  // flag used for determining whether freeze should be enabled
116
94
  const [freezeState, setFreezeState] = _react.default.useState(false);
117
-
118
95
  if (freeze !== freezeState) {
119
96
  // setImmediate is executed at the end of the JS execution block.
120
97
  // Used here for changing the state right after the render.
@@ -122,24 +99,19 @@ function DelayedFreeze({
122
99
  setFreezeState(freeze);
123
100
  });
124
101
  }
125
-
126
102
  return /*#__PURE__*/_react.default.createElement(_reactFreeze.Freeze, {
127
103
  freeze: freeze ? freezeState : false
128
104
  }, children);
129
105
  }
130
-
131
106
  function ScreenStack(props) {
132
107
  const {
133
108
  children,
134
109
  ...rest
135
110
  } = props;
136
-
137
- const size = _react.default.Children.count(children); // freezes all screens except the top one
138
-
139
-
111
+ const size = _react.default.Children.count(children);
112
+ // freezes all screens except the top one
140
113
  const childrenWithFreeze = _react.default.Children.map(children, (child, index) => {
141
114
  var _props$descriptor, _props$descriptors, _descriptor$options$f, _descriptor$options;
142
-
143
115
  // @ts-expect-error it's either SceneView in v6 or RouteView in v5
144
116
  const {
145
117
  props,
@@ -151,48 +123,37 @@ function ScreenStack(props) {
151
123
  freeze: freezeEnabled && size - index > 1
152
124
  }, child);
153
125
  });
154
-
155
126
  return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStack, rest, childrenWithFreeze);
156
- } // Incomplete type, all accessible properties available at:
157
- // react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
127
+ }
158
128
 
129
+ // Incomplete type, all accessible properties available at:
130
+ // react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
159
131
 
160
132
  class InnerScreen extends _react.default.Component {
161
- constructor(...args) {
162
- super(...args);
163
-
133
+ constructor() {
134
+ super(...arguments);
164
135
  _defineProperty(this, "ref", null);
165
-
166
136
  _defineProperty(this, "closing", new _reactNative.Animated.Value(0));
167
-
168
137
  _defineProperty(this, "progress", new _reactNative.Animated.Value(0));
169
-
170
138
  _defineProperty(this, "goingForward", new _reactNative.Animated.Value(0));
171
-
172
139
  _defineProperty(this, "setRef", ref => {
173
140
  var _this$props$onCompone, _this$props;
174
-
175
141
  this.ref = ref;
176
142
  (_this$props$onCompone = (_this$props = this.props).onComponentRef) === null || _this$props$onCompone === void 0 ? void 0 : _this$props$onCompone.call(_this$props, ref);
177
143
  });
178
144
  }
179
-
180
145
  setNativeProps(props) {
181
146
  var _this$ref;
182
-
183
147
  (_this$ref = this.ref) === null || _this$ref === void 0 ? void 0 : _this$ref.setNativeProps(props);
184
148
  }
185
-
186
149
  render() {
187
150
  const {
188
151
  enabled = ENABLE_SCREENS,
189
152
  freezeOnBlur = ENABLE_FREEZE,
190
153
  ...rest
191
154
  } = this.props;
192
-
193
155
  if (enabled && isPlatformSupported) {
194
156
  var _gestureResponseDista, _gestureResponseDista2, _gestureResponseDista3, _gestureResponseDista4;
195
-
196
157
  AnimatedNativeScreen = AnimatedNativeScreen || _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
197
158
  let {
198
159
  // Filter out active prop in this case because it is unused and
@@ -205,7 +166,6 @@ class InnerScreen extends _react.default.Component {
205
166
  gestureResponseDistance,
206
167
  ...props
207
168
  } = rest;
208
-
209
169
  if (active !== undefined && activityState === undefined) {
210
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');
211
171
  activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
@@ -213,15 +173,14 @@ class InnerScreen extends _react.default.Component {
213
173
 
214
174
  const handleRef = ref => {
215
175
  var _ref$viewConfig, _ref$viewConfig$valid;
216
-
217
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) {
218
- ref.viewConfig.validAttributes.style = { ...ref.viewConfig.validAttributes.style,
177
+ ref.viewConfig.validAttributes.style = {
178
+ ...ref.viewConfig.validAttributes.style,
219
179
  display: false
220
180
  };
221
181
  this.setRef(ref);
222
182
  }
223
183
  };
224
-
225
184
  return /*#__PURE__*/_react.default.createElement(DelayedFreeze, {
226
185
  freeze: freezeOnBlur && activityState === 0
227
186
  }, /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, props, {
@@ -231,7 +190,8 @@ class InnerScreen extends _react.default.Component {
231
190
  end: (_gestureResponseDista2 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.end) !== null && _gestureResponseDista2 !== void 0 ? _gestureResponseDista2 : -1,
232
191
  top: (_gestureResponseDista3 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.top) !== null && _gestureResponseDista3 !== void 0 ? _gestureResponseDista3 : -1,
233
192
  bottom: (_gestureResponseDista4 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.bottom) !== null && _gestureResponseDista4 !== void 0 ? _gestureResponseDista4 : -1
234
- } // 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
235
195
  // https://github.com/software-mansion/react-native-screens/pull/1208
236
196
  ,
237
197
  ref: handleRef,
@@ -244,7 +204,8 @@ class InnerScreen extends _react.default.Component {
244
204
  }], {
245
205
  useNativeDriver: true
246
206
  })
247
- }), !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
248
209
  children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
249
210
  value: {
250
211
  progress: this.progress,
@@ -262,11 +223,9 @@ class InnerScreen extends _react.default.Component {
262
223
  onComponentRef,
263
224
  ...props
264
225
  } = rest;
265
-
266
226
  if (active !== undefined && activityState === undefined) {
267
227
  activityState = active !== 0 ? 2 : 0;
268
228
  }
269
-
270
229
  return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({
271
230
  style: [style, {
272
231
  display: activityState !== 0 ? 'flex' : 'none'
@@ -275,27 +234,34 @@ class InnerScreen extends _react.default.Component {
275
234
  }, props));
276
235
  }
277
236
  }
278
-
279
237
  }
280
-
281
238
  function ScreenContainer(props) {
282
239
  const {
283
240
  enabled = ENABLE_SCREENS,
284
241
  hasTwoStates,
285
242
  ...rest
286
243
  } = props;
287
-
288
244
  if (enabled && isPlatformSupported) {
289
245
  if (hasTwoStates) {
290
246
  return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenNavigationContainer, rest);
291
247
  }
292
-
293
248
  return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenContainer, rest);
294
249
  }
295
-
296
250
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, rest);
297
251
  }
298
-
252
+ function FullWindowOverlay(props) {
253
+ if (_reactNative.Platform.OS !== 'ios') {
254
+ console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
255
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, props);
256
+ }
257
+ return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeFullWindowOverlay, {
258
+ style: {
259
+ position: 'absolute',
260
+ width: '100%',
261
+ height: '100%'
262
+ }
263
+ }, props.children);
264
+ }
299
265
  const styles = _reactNative.StyleSheet.create({
300
266
  headerSubview: {
301
267
  position: 'absolute',
@@ -306,7 +272,6 @@ const styles = _reactNative.StyleSheet.create({
306
272
  justifyContent: 'center'
307
273
  }
308
274
  });
309
-
310
275
  const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
311
276
  type: "back",
312
277
  style: styles.headerSubview
@@ -314,41 +279,32 @@ const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.cr
314
279
  resizeMode: "center",
315
280
  fadeDuration: 0
316
281
  }, props)));
317
-
318
282
  const ScreenStackHeaderRightView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
319
283
  type: "right",
320
284
  style: styles.headerSubview
321
285
  }));
322
-
323
286
  const ScreenStackHeaderLeftView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
324
287
  type: "left",
325
288
  style: styles.headerSubview
326
289
  }));
327
-
328
290
  const ScreenStackHeaderCenterView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
329
291
  type: "center",
330
292
  style: styles.headerSubview
331
293
  }));
332
-
333
294
  const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
334
295
  type: "searchBar",
335
296
  style: styles.headerSubview
336
297
  }));
337
-
338
298
  // context to be used when the user wants to use enhanced implementation
339
299
  // e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
340
300
  const ScreenContext = /*#__PURE__*/_react.default.createContext(InnerScreen);
341
-
342
301
  class Screen extends _react.default.Component {
343
302
  render() {
344
303
  const ScreenWrapper = this.context || InnerScreen;
345
304
  return /*#__PURE__*/_react.default.createElement(ScreenWrapper, this.props);
346
305
  }
347
-
348
306
  }
349
-
350
307
  _defineProperty(Screen, "contextType", ScreenContext);
351
-
352
308
  module.exports = {
353
309
  // these are classes so they are not evaluated until used
354
310
  // so no need to use getters for them
@@ -357,45 +313,29 @@ module.exports = {
357
313
  ScreenContext,
358
314
  ScreenStack,
359
315
  InnerScreen,
360
-
316
+ FullWindowOverlay,
361
317
  get NativeScreen() {
362
318
  return ScreensNativeModules.NativeScreen;
363
319
  },
364
-
365
320
  get NativeScreenContainer() {
366
321
  return ScreensNativeModules.NativeScreenContainer;
367
322
  },
368
-
369
323
  get NativeScreenNavigationContainer() {
370
324
  return ScreensNativeModules.NativeScreenNavigationContainer;
371
325
  },
372
-
373
326
  get ScreenStackHeaderConfig() {
374
327
  return ScreensNativeModules.NativeScreenStackHeaderConfig;
375
328
  },
376
-
377
329
  get ScreenStackHeaderSubview() {
378
330
  return ScreensNativeModules.NativeScreenStackHeaderSubview;
379
331
  },
380
-
381
332
  get SearchBar() {
382
333
  if (!_utils.isSearchBarAvailableForCurrentPlatform) {
383
334
  console.warn('Importing SearchBar is only valid on iOS and Android devices.');
384
335
  return _reactNative.View;
385
336
  }
386
-
387
337
  return ScreensNativeModules.NativeSearchBar;
388
338
  },
389
-
390
- get FullWindowOverlay() {
391
- if (_reactNative.Platform.OS !== 'ios') {
392
- console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
393
- return _reactNative.View;
394
- }
395
-
396
- return ScreensNativeModules.NativeFullWindowOverlay;
397
- },
398
-
399
339
  // these are functions and will not be evaluated until used
400
340
  // so no need to use getters for them
401
341
  ScreenStackHeaderBackButtonImage,
@@ -1 +1 @@
1
- {"version":3,"sources":["index.native.tsx"],"names":["isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","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","StyleSheet","create","headerSubview","position","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","FullWindowOverlay","useTransitionProgress","executeNativeBackPress"],"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":["isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","requireNativeComponent","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","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","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","useTransitionProgress","executeNativeBackPress"],"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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"}
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "createNativeStackNavigator", {
6
+ Object.defineProperty(exports, "HeaderHeightContext", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _createNativeStackNavigator.default;
9
+ return _HeaderHeightContext.default;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "NativeStackView", {
@@ -15,26 +15,21 @@ Object.defineProperty(exports, "NativeStackView", {
15
15
  return _NativeStackView.default;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "useHeaderHeight", {
18
+ Object.defineProperty(exports, "createNativeStackNavigator", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _useHeaderHeight.default;
21
+ return _createNativeStackNavigator.default;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "HeaderHeightContext", {
24
+ Object.defineProperty(exports, "useHeaderHeight", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _HeaderHeightContext.default;
27
+ return _useHeaderHeight.default;
28
28
  }
29
29
  });
30
-
31
30
  var _createNativeStackNavigator = _interopRequireDefault(require("./navigators/createNativeStackNavigator"));
32
-
33
31
  var _NativeStackView = _interopRequireDefault(require("./views/NativeStackView"));
34
-
35
32
  var _useHeaderHeight = _interopRequireDefault(require("./utils/useHeaderHeight"));
36
-
37
33
  var _HeaderHeightContext = _interopRequireDefault(require("./utils/HeaderHeightContext"));
38
-
39
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAKA;;AAKA;;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":[],"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AAKA;AAKA;AACA;AAA6E"}