react-native-screens 3.10.1 → 3.12.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 (128) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +13 -7
  3. package/RNScreens.podspec +36 -6
  4. package/android/build.gradle +74 -3
  5. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
  6. package/android/src/fabric/java/com/swmansion/rnscreens/RNScreensComponentsRegistry.java +28 -0
  7. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +11 -2
  8. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +52 -21
  9. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +1 -1
  10. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +64 -33
  11. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +9 -31
  12. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +0 -30
  13. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +12 -5
  14. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +83 -18
  15. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +17 -5
  16. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +14 -1
  17. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +41 -14
  18. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +72 -11
  19. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +18 -1
  20. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +7 -2
  21. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +29 -2
  22. package/android/src/main/jni/Android.mk +45 -0
  23. package/android/src/main/jni/OnLoad.cpp +9 -0
  24. package/android/src/main/jni/RNScreensComponentsRegistry.cpp +66 -0
  25. package/android/src/main/jni/RNScreensComponentsRegistry.h +34 -0
  26. package/android/src/main/res/anim/rns_default_enter_in.xml +18 -0
  27. package/android/src/main/res/anim/rns_default_enter_out.xml +19 -0
  28. package/android/src/main/res/anim/rns_default_exit_in.xml +17 -0
  29. package/android/src/main/res/anim/rns_default_exit_out.xml +18 -0
  30. package/android/src/main/res/anim/rns_fade_in.xml +7 -0
  31. package/android/src/main/res/anim/rns_fade_out.xml +7 -0
  32. package/android/src/main/res/anim/rns_no_animation_20.xml +6 -0
  33. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +71 -0
  34. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +30 -0
  35. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +104 -0
  36. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +41 -0
  37. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
  38. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
  39. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
  40. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
  41. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +16 -0
  42. package/common/cpp/Android.mk +38 -0
  43. package/common/cpp/rnscreens/RNSScreenComponentDescriptor.h +41 -0
  44. package/common/cpp/rnscreens/RNSScreenShadowNode.cpp +9 -0
  45. package/common/cpp/rnscreens/RNSScreenShadowNode.h +29 -0
  46. package/common/cpp/rnscreens/RNSScreenState.cpp +14 -0
  47. package/common/cpp/rnscreens/RNSScreenState.h +46 -0
  48. package/createNativeStackNavigator/README.md +12 -0
  49. package/ios/RNSScreen.h +10 -0
  50. package/ios/RNSScreen.m +34 -0
  51. package/ios/RNSScreenComponentView.h +23 -0
  52. package/ios/RNSScreenComponentView.mm +159 -0
  53. package/ios/RNSScreenContainer.m +5 -0
  54. package/ios/RNSScreenController.h +10 -0
  55. package/ios/RNSScreenController.mm +79 -0
  56. package/ios/RNSScreenStack.m +22 -7
  57. package/ios/RNSScreenStackAnimator.m +45 -14
  58. package/ios/RNSScreenStackComponentView.h +15 -0
  59. package/ios/RNSScreenStackComponentView.mm +295 -0
  60. package/ios/RNSScreenStackHeaderConfig.m +4 -1
  61. package/ios/RNSScreenStackHeaderConfigComponentView.h +42 -0
  62. package/ios/RNSScreenStackHeaderConfigComponentView.mm +662 -0
  63. package/ios/RNSScreenStackHeaderSubviewComponentView.h +14 -0
  64. package/ios/RNSScreenStackHeaderSubviewComponentView.mm +77 -0
  65. package/ios/RNSScreenWindowTraits.h +1 -0
  66. package/ios/RNSScreenWindowTraits.m +20 -0
  67. package/ios/UIViewController+RNScreens.m +10 -0
  68. package/ios/utils/RNSUIBarButtonItem.h +5 -0
  69. package/ios/utils/RNSUIBarButtonItem.mm +22 -0
  70. package/lib/commonjs/fabric/Screen.js +27 -0
  71. package/lib/commonjs/fabric/Screen.js.map +1 -0
  72. package/lib/commonjs/fabric/ScreenNativeComponent.js +23 -0
  73. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
  74. package/lib/commonjs/fabric/ScreenStack.js +27 -0
  75. package/lib/commonjs/fabric/ScreenStack.js.map +1 -0
  76. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +27 -0
  77. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  78. package/lib/commonjs/fabric/ScreenStackHeaderSubview.js +34 -0
  79. package/lib/commonjs/fabric/ScreenStackHeaderSubview.js.map +1 -0
  80. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +27 -0
  81. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  82. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +21 -0
  83. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
  84. package/lib/commonjs/fabric/index.js +40 -0
  85. package/lib/commonjs/fabric/index.js.map +1 -0
  86. package/lib/commonjs/index.native.js +32 -15
  87. package/lib/commonjs/index.native.js.map +1 -1
  88. package/lib/commonjs/native-stack/views/NativeStackView.js +33 -4
  89. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  90. package/lib/module/fabric/Screen.js +11 -0
  91. package/lib/module/fabric/Screen.js.map +1 -0
  92. package/lib/module/fabric/ScreenNativeComponent.js +11 -0
  93. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
  94. package/lib/module/fabric/ScreenStack.js +12 -0
  95. package/lib/module/fabric/ScreenStack.js.map +1 -0
  96. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -0
  97. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  98. package/lib/module/fabric/ScreenStackHeaderSubview.js +21 -0
  99. package/lib/module/fabric/ScreenStackHeaderSubview.js.map +1 -0
  100. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +10 -0
  101. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  102. package/lib/module/fabric/ScreenStackNativeComponent.js +9 -0
  103. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
  104. package/lib/module/fabric/index.js +6 -0
  105. package/lib/module/fabric/index.js.map +1 -0
  106. package/lib/module/index.native.js +32 -15
  107. package/lib/module/index.native.js.map +1 -1
  108. package/lib/module/native-stack/views/NativeStackView.js +33 -4
  109. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  110. package/lib/typescript/native-stack/types.d.ts +34 -0
  111. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
  112. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
  113. package/lib/typescript/types.d.ts +60 -5
  114. package/native-stack/README.md +39 -3
  115. package/package.json +17 -3
  116. package/reanimated/package.json +6 -0
  117. package/src/fabric/Screen.js +12 -0
  118. package/src/fabric/ScreenNativeComponent.js +64 -0
  119. package/src/fabric/ScreenStack.js +8 -0
  120. package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +54 -0
  121. package/src/fabric/ScreenStackHeaderSubview.js +20 -0
  122. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +31 -0
  123. package/src/fabric/ScreenStackNativeComponent.js +19 -0
  124. package/src/fabric/index.js +11 -0
  125. package/src/index.native.tsx +35 -14
  126. package/src/native-stack/types.tsx +34 -0
  127. package/src/native-stack/views/NativeStackView.tsx +33 -4
  128. package/src/types.tsx +60 -5
@@ -0,0 +1,77 @@
1
+ #import "RNSScreenStackHeaderSubviewComponentView.h"
2
+
3
+ #import <React/RCTConversions.h>
4
+
5
+ #import <react/renderer/components/rnscreens/ComponentDescriptors.h>
6
+ #import <react/renderer/components/rnscreens/EventEmitters.h>
7
+ #import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
8
+
9
+ #import "RCTFabricComponentsPlugins.h"
10
+
11
+ using namespace facebook::react;
12
+
13
+ @implementation RNSScreenStackHeaderSubviewComponentView {
14
+ BOOL _isInitialValueSet;
15
+ RNSScreenStackHeaderSubviewType _type;
16
+ }
17
+
18
+ - (instancetype)initWithFrame:(CGRect)frame
19
+ {
20
+ if (self = [super initWithFrame:frame]) {
21
+ static const auto defaultProps = std::make_shared<const RNSScreenStackHeaderSubviewProps>();
22
+ _props = defaultProps;
23
+ }
24
+
25
+ return self;
26
+ }
27
+
28
+ - (void)updateLayoutMetrics:(const facebook::react::LayoutMetrics &)layoutMetrics
29
+ oldLayoutMetrics:(const facebook::react::LayoutMetrics &)oldLayoutMetrics
30
+ {
31
+ CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
32
+ // CALayer will crash if we pass NaN or Inf values.
33
+ // It's unclear how to detect this case on cross-platform manner holistically, so we have to do it on the mounting
34
+ // layer as well. NaN/Inf is a kinda valid result of some math operations. Even if we can (and should) detect (and
35
+ // report early) incorrect (NaN and Inf) values which come from JavaScript side, we sometimes cannot backtrace the
36
+ // sources of a calculation that produced an incorrect/useless result.
37
+ if (!std::isfinite(frame.size.width) || !std::isfinite(frame.size.height)) {
38
+ RCTLogWarn(
39
+ @"-[UIView(ComponentViewProtocol) updateLayoutMetrics:oldLayoutMetrics:]: Received invalid layout metrics (%@) for a view (%@).",
40
+ NSStringFromCGRect(frame),
41
+ self);
42
+ } else {
43
+ self.bounds = CGRect{CGPointZero, frame.size};
44
+ }
45
+ }
46
+
47
+ #pragma mark - RCTComponentViewProtocol
48
+
49
+ - (void)prepareForRecycle
50
+ {
51
+ [super prepareForRecycle];
52
+ _isInitialValueSet = NO;
53
+ }
54
+
55
+ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
56
+ {
57
+ const auto &newHeaderSubviewProps = *std::static_pointer_cast<const RNSScreenStackHeaderSubviewProps>(props);
58
+
59
+ if (_type != newHeaderSubviewProps.type) {
60
+ _type = newHeaderSubviewProps.type;
61
+ _isInitialValueSet = YES;
62
+ }
63
+
64
+ [super updateProps:props oldProps:oldProps];
65
+ }
66
+
67
+ + (ComponentDescriptorProvider)componentDescriptorProvider
68
+ {
69
+ return concreteComponentDescriptorProvider<RNSScreenStackHeaderSubviewComponentDescriptor>();
70
+ }
71
+
72
+ @end
73
+
74
+ Class<RCTComponentViewProtocol> RNSScreenStackHeaderSubviewCls(void)
75
+ {
76
+ return RNSScreenStackHeaderSubviewComponentView.class;
77
+ }
@@ -9,6 +9,7 @@
9
9
  #endif
10
10
  + (void)updateStatusBarAppearance;
11
11
  + (void)enforceDesiredDeviceOrientation;
12
+ + (void)updateHomeIndicatorAutoHidden;
12
13
 
13
14
  #if !TARGET_OS_TV
14
15
  + (UIStatusBarStyle)statusBarStyleForRNSStatusBarStyle:(RNSStatusBarStyle)statusBarStyle;
@@ -42,6 +42,25 @@
42
42
  #endif
43
43
  }
44
44
 
45
+ + (void)updateHomeIndicatorAutoHidden
46
+ {
47
+ #if !TARGET_OS_TV
48
+
49
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
50
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
51
+ if (@available(iOS 13, *)) {
52
+ UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
53
+ if (firstWindow != nil) {
54
+ [[firstWindow rootViewController] setNeedsUpdateOfHomeIndicatorAutoHidden];
55
+ }
56
+ } else
57
+ #endif
58
+ {
59
+ [UIApplication.sharedApplication.keyWindow.rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
60
+ }
61
+ #endif
62
+ }
63
+
45
64
  #if !TARGET_OS_TV
46
65
  + (UIStatusBarStyle)statusBarStyleForRNSStatusBarStyle:(RNSStatusBarStyle)statusBarStyle
47
66
  {
@@ -165,6 +184,7 @@
165
184
  {
166
185
  [RNSScreenWindowTraits updateStatusBarAppearance];
167
186
  [RNSScreenWindowTraits enforceDesiredDeviceOrientation];
187
+ [RNSScreenWindowTraits updateHomeIndicatorAutoHidden];
168
188
  }
169
189
 
170
190
  #if !TARGET_OS_TV
@@ -31,6 +31,12 @@
31
31
  return childVC ? childVC.supportedInterfaceOrientations : [self reactNativeScreensSupportedInterfaceOrientations];
32
32
  }
33
33
 
34
+ - (UIViewController *)reactNativeScreensChildViewControllerForHomeIndicatorAutoHidden
35
+ {
36
+ UIViewController *childVC = [self findChildRNScreensViewController];
37
+ return childVC ?: [self reactNativeScreensChildViewControllerForHomeIndicatorAutoHidden];
38
+ }
39
+
34
40
  - (UIViewController *)findChildRNScreensViewController
35
41
  {
36
42
  UIViewController *lastViewController = [[self childViewControllers] lastObject];
@@ -61,6 +67,10 @@
61
67
  method_exchangeImplementations(
62
68
  class_getInstanceMethod(uiVCClass, @selector(supportedInterfaceOrientations)),
63
69
  class_getInstanceMethod(uiVCClass, @selector(reactNativeScreensSupportedInterfaceOrientations)));
70
+
71
+ method_exchangeImplementations(
72
+ class_getInstanceMethod(uiVCClass, @selector(childViewControllerForHomeIndicatorAutoHidden)),
73
+ class_getInstanceMethod(uiVCClass, @selector(reactNativeScreensChildViewControllerForHomeIndicatorAutoHidden)));
64
74
  });
65
75
  }
66
76
  #endif
@@ -0,0 +1,5 @@
1
+ @interface RNSUIBarButtonItem : UIBarButtonItem
2
+
3
+ @property (nonatomic) BOOL menuHidden;
4
+
5
+ @end
@@ -0,0 +1,22 @@
1
+ #import "./RNSUIBarButtonItem.h"
2
+
3
+ @implementation RNSUIBarButtonItem
4
+
5
+ - (void)setMenuHidden:(BOOL)menuHidden
6
+ {
7
+ _menuHidden = menuHidden;
8
+ }
9
+
10
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_14_0) && \
11
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_14_0
12
+ - (void)setMenu:(UIMenu *)menu
13
+ {
14
+ if (@available(iOS 14.0, *)) {
15
+ if (!_menuHidden) {
16
+ super.menu = menu;
17
+ }
18
+ }
19
+ }
20
+ #endif
21
+
22
+ @end
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Screen;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _ScreenNativeComponent = _interopRequireDefault(require("./ScreenNativeComponent"));
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
17
+
18
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ function Screen(props) {
23
+ return /*#__PURE__*/React.createElement(_ScreenNativeComponent.default, _extends({}, props, {
24
+ style: [props.style, _reactNative.StyleSheet.absoluteFill]
25
+ }));
26
+ }
27
+ //# sourceMappingURL=Screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Screen.js"],"names":["Screen","props","style","StyleSheet","absoluteFill"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAEe,SAASA,MAAT,CAAgBC,KAAhB,EAAuB;AACpC,sBACE,oBAAC,8BAAD,eACMA,KADN;AAEE,IAAA,KAAK,EAAE,CAACA,KAAK,CAACC,KAAP,EAAcC,wBAAWC,YAAzB;AAFT,KADF;AAMD","sourcesContent":["import * as React from 'react';\nimport ScreenNativeComponent from './ScreenNativeComponent';\nimport { StyleSheet } from 'react-native';\n\nexport default function Screen(props) {\n return (\n <ScreenNativeComponent\n {...props}\n style={[props.style, StyleSheet.absoluteFill]}\n />\n );\n}\n"]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ /**
13
+ *
14
+ * @format
15
+ */
16
+
17
+ /* eslint-disable */
18
+ var _default = (0, _codegenNativeComponent.default)('RNSScreen', {
19
+ interfaceOnly: true
20
+ });
21
+
22
+ exports.default = _default;
23
+ //# sourceMappingURL=ScreenNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenNativeComponent.js"],"names":["interfaceOnly"],"mappings":";;;;;;;AAKA;;;;AALA;AACA;AACA;AACA;;AACA;eAyDgB,qCAAoC,WAApC,EAAiD;AAC/DA,EAAAA,aAAa,EAAE;AADgD,CAAjD,C","sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype StackPresentation = 'push' | 'modal' | 'transparentModal';\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n // TODO: implement this props on iOS\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n gestureEnabled?: WithDefault<boolean, true>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarColor?: ColorValue,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n statusBarHidden?: boolean,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n activityState?: WithDefault<Int32, -1>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ScreenStack;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _ScreenStackNativeComponent = _interopRequireDefault(require("./ScreenStackNativeComponent"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
+
16
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ 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); }
19
+
20
+ function ScreenStack(props) {
21
+ return /*#__PURE__*/React.createElement(_ScreenStackNativeComponent.default, _extends({}, props, {
22
+ style: [{
23
+ flex: 1
24
+ }, props.style]
25
+ }));
26
+ }
27
+ //# sourceMappingURL=ScreenStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenStack.js"],"names":["ScreenStack","props","flex","style"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;AAEe,SAASA,WAAT,CAAqBC,KAArB,EAA4B;AACzC,sBACE,oBAAC,mCAAD,eAAgCA,KAAhC;AAAuC,IAAA,KAAK,EAAE,CAAC;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAD,EAAcD,KAAK,CAACE,KAApB;AAA9C,KADF;AAGD","sourcesContent":["import * as React from 'react';\nimport ScreenStackNativeComponent from './ScreenStackNativeComponent';\n\nexport default function ScreenStack(props) {\n return (\n <ScreenStackNativeComponent {...props} style={[{ flex: 1 }, props.style]} />\n );\n}\n"]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
+
16
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ /**
19
+ *
20
+ * @format
21
+ */
22
+
23
+ /* eslint-disable */
24
+ var _default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderConfig', {});
25
+
26
+ exports.default = _default;
27
+ //# sourceMappingURL=ScreenStackHeaderConfigNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenStackHeaderConfigNativeComponent.js"],"names":[],"mappings":";;;;;;;AAKA;;AAEA;;;;;;;;AAPA;AACA;AACA;AACA;;AACA;eA8CgB,qCACd,4BADc,EAEd,EAFc,C","sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport * as React from 'react';\n\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n Int32,\n WithDefault,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype DirectionType = 'rtl' | 'ltr';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n backgroundColor?: ColorValue,\n backTitle?: string,\n backTitleFontFamily?: string,\n backTitleFontSize?: Int32,\n color?: ColorValue,\n direction?: WithDefault<DirectionType, 'ltr'>,\n hidden?: boolean,\n hideShadow?: boolean,\n largeTitle?: boolean,\n largeTitleFontFamily?: string,\n largeTitleFontSize?: Int32,\n largeTitleFontWeight?: string,\n largeTitleBackgroundColor?: ColorValue,\n largeTitleHideShadow?: boolean,\n largeTitleColor?: ColorValue,\n translucent?: boolean,\n title?: string,\n titleFontFamily?: string,\n titleFontSize?: Int32,\n titleFontWeight?: string,\n titleColor?: ColorValue,\n disableBackButtonMenu?: boolean,\n hideBackButton?: boolean,\n // TODO: implement this props on iOS\n topInsetEnabled?: boolean,\n backButtonInCustomView?: boolean,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSScreenStackHeaderConfig',\n {}\n): ComponentType);\n"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ScreenStackHeaderSubview;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ScreenStackHeaderSubviewNativeComponent = _interopRequireDefault(require("./ScreenStackHeaderSubviewNativeComponent"));
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ 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); }
17
+
18
+ const styles = _reactNative.StyleSheet.create({
19
+ headerSubview: {
20
+ position: 'absolute',
21
+ top: 0,
22
+ right: 0,
23
+ flexDirection: 'row',
24
+ alignItems: 'center',
25
+ justifyContent: 'center'
26
+ }
27
+ });
28
+
29
+ function ScreenStackHeaderSubview(props) {
30
+ return /*#__PURE__*/_react.default.createElement(_ScreenStackHeaderSubviewNativeComponent.default, _extends({}, props, {
31
+ style: styles.headerSubview
32
+ }));
33
+ }
34
+ //# sourceMappingURL=ScreenStackHeaderSubview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenStackHeaderSubview.js"],"names":["styles","StyleSheet","create","headerSubview","position","top","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderSubview","props"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,MAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,aAAa,EAAE;AACbC,IAAAA,QAAQ,EAAE,UADG;AAEbC,IAAAA,GAAG,EAAE,CAFQ;AAGbC,IAAAA,KAAK,EAAE,CAHM;AAIbC,IAAAA,aAAa,EAAE,KAJF;AAKbC,IAAAA,UAAU,EAAE,QALC;AAMbC,IAAAA,cAAc,EAAE;AANH;AADgB,CAAlB,CAAf;;AAWe,SAASC,wBAAT,CAAkCC,KAAlC,EAAyC;AACtD,sBACE,6BAAC,gDAAD,eAAoCA,KAApC;AAA2C,IAAA,KAAK,EAAEX,MAAM,CAACG;AAAzD,KADF;AAGD","sourcesContent":["import React from 'react';\nimport NativeScreenStackHeaderSubview from './ScreenStackHeaderSubviewNativeComponent';\nimport { StyleSheet } from 'react-native';\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\nexport default function ScreenStackHeaderSubview(props) {\n return (\n <NativeScreenStackHeaderSubview {...props} style={styles.headerSubview} />\n );\n}\n"]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
15
+
16
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ /**
19
+ *
20
+ * @format
21
+ */
22
+
23
+ /* eslint-disable */
24
+ var _default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderSubview', {});
25
+
26
+ exports.default = _default;
27
+ //# sourceMappingURL=ScreenStackHeaderSubviewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenStackHeaderSubviewNativeComponent.js"],"names":[],"mappings":";;;;;;;AAKA;;AAEA;;;;;;;;AAPA;AACA;AACA;AACA;;AACA;eAuBgB,qCACd,6BADc,EAEd,EAFc,C","sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport * as React from 'react';\n\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes';\n\nexport type HeaderSubviewTypes =\n | 'back'\n | 'right'\n | 'left'\n | 'title'\n | 'center'\n | 'searchBar';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n type?: WithDefault<HeaderSubviewTypes, 'left'>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSScreenStackHeaderSubview',\n {}\n): ComponentType);\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ /**
13
+ *
14
+ * @format
15
+ */
16
+
17
+ /* eslint-disable */
18
+ var _default = (0, _codegenNativeComponent.default)('RNSScreenStack', {});
19
+
20
+ exports.default = _default;
21
+ //# sourceMappingURL=ScreenStackNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ScreenStackNativeComponent.js"],"names":[],"mappings":";;;;;;;AAKA;;;;AALA;AACA;AACA;AACA;;AACA;eAWgB,qCACd,gBADc,EAEd,EAFc,C","sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>(\n 'RNSScreenStack',\n {}\n): ComponentType);\n"]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Screen", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Screen.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ScreenStackHeaderSubview", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ScreenStackHeaderSubview.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ScreenStackHeaderConfig", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ScreenStackHeaderConfigNativeComponent.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "ScreenStack", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _ScreenStack.default;
28
+ }
29
+ });
30
+
31
+ var _Screen = _interopRequireDefault(require("./Screen"));
32
+
33
+ var _ScreenStackHeaderSubview = _interopRequireDefault(require("./ScreenStackHeaderSubview"));
34
+
35
+ var _ScreenStackHeaderConfigNativeComponent = _interopRequireDefault(require("./ScreenStackHeaderConfigNativeComponent"));
36
+
37
+ var _ScreenStack = _interopRequireDefault(require("./ScreenStack"));
38
+
39
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["import Screen from './Screen';\nimport ScreenStackHeaderSubview from './ScreenStackHeaderSubview';\nimport ScreenStackHeaderConfig from './ScreenStackHeaderConfigNativeComponent';\nimport ScreenStack from './ScreenStack';\n\nexport {\n Screen,\n ScreenStackHeaderSubview,\n ScreenStackHeaderConfig,\n ScreenStack,\n};\n"]}
@@ -16,6 +16,8 @@ var _useTransitionProgress = _interopRequireDefault(require("./useTransitionProg
16
16
 
17
17
  var _utils = require("./utils");
18
18
 
19
+ var _global;
20
+
19
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
22
 
21
23
  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); }
@@ -24,7 +26,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
24
26
 
25
27
  // web implementation is taken from `index.tsx`
26
28
  const isPlatformSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'windows';
27
- let ENABLE_SCREENS = isPlatformSupported;
29
+ let ENABLE_SCREENS = isPlatformSupported; // @ts-expect-error nativeFabricUIManager is not yet included in the RN types
30
+
31
+ const ENABLE_FABRIC = !!((_global = global) !== null && _global !== void 0 && _global.nativeFabricUIManager);
32
+ const FabricComponents = ENABLE_FABRIC ? require('./fabric') : {};
28
33
 
29
34
  function enableScreens(shouldEnableScreens = true) {
30
35
  ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
@@ -67,7 +72,7 @@ let NativeSearchBar;
67
72
  let NativeFullWindowOverlay;
68
73
  const ScreensNativeModules = {
69
74
  get NativeScreen() {
70
- NativeScreenValue = NativeScreenValue || (0, _reactNative.requireNativeComponent)('RNSScreen');
75
+ NativeScreenValue = NativeScreenValue || FabricComponents.Screen || (0, _reactNative.requireNativeComponent)('RNSScreen');
71
76
  return NativeScreenValue;
72
77
  },
73
78
 
@@ -82,17 +87,17 @@ const ScreensNativeModules = {
82
87
  },
83
88
 
84
89
  get NativeScreenStack() {
85
- NativeScreenStack = NativeScreenStack || (0, _reactNative.requireNativeComponent)('RNSScreenStack');
90
+ NativeScreenStack = NativeScreenStack || FabricComponents.ScreenStack || (0, _reactNative.requireNativeComponent)('RNSScreenStack');
86
91
  return NativeScreenStack;
87
92
  },
88
93
 
89
94
  get NativeScreenStackHeaderConfig() {
90
- NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderConfig');
95
+ NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || FabricComponents.ScreenStackHeaderConfig || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderConfig');
91
96
  return NativeScreenStackHeaderConfig;
92
97
  },
93
98
 
94
99
  get NativeScreenStackHeaderSubview() {
95
- NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderSubview');
100
+ NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || FabricComponents.ScreenStackHeaderSubview || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderSubview');
96
101
  return NativeScreenStackHeaderSubview;
97
102
  },
98
103
 
@@ -198,7 +203,14 @@ class Screen extends _react.default.Component {
198
203
  } = this.props;
199
204
 
200
205
  if (enabled && isPlatformSupported) {
201
- AnimatedNativeScreen = AnimatedNativeScreen || _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
206
+ if (!AnimatedNativeScreen) {
207
+ if (ENABLE_FABRIC) {
208
+ AnimatedNativeScreen = ScreensNativeModules.NativeScreen;
209
+ } else {
210
+ AnimatedNativeScreen = _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
211
+ }
212
+ }
213
+
202
214
  let {
203
215
  // Filter out active prop in this case because it is unused and
204
216
  // can cause problems depending on react-native version:
@@ -217,14 +229,9 @@ class Screen extends _react.default.Component {
217
229
  }
218
230
 
219
231
  const processedColor = (0, _processColor.default)(statusBarColor);
220
- return /*#__PURE__*/_react.default.createElement(MaybeFreeze, {
221
- freeze: activityState === 0
222
- }, /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, props, {
223
- statusBarColor: processedColor,
224
- activityState: activityState // This prevents showing blank screen when navigating between multiple screens with freezing
225
- // https://github.com/software-mansion/react-native-screens/pull/1208
226
- ,
227
- ref: ref => {
232
+
233
+ const handleRef = ref => {
234
+ if (!ENABLE_FABRIC) {
228
235
  var _ref$viewConfig, _ref$viewConfig$valid;
229
236
 
230
237
  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) {
@@ -234,7 +241,17 @@ class Screen extends _react.default.Component {
234
241
  }
235
242
 
236
243
  this.setRef(ref);
237
- },
244
+ }
245
+ };
246
+
247
+ return /*#__PURE__*/_react.default.createElement(MaybeFreeze, {
248
+ freeze: activityState === 0
249
+ }, /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, props, {
250
+ statusBarColor: processedColor,
251
+ activityState: activityState // This prevents showing blank screen when navigating between multiple screens with freezing
252
+ // https://github.com/software-mansion/react-native-screens/pull/1208
253
+ ,
254
+ ref: handleRef,
238
255
  onTransitionProgress: !isNativeStack ? undefined : _reactNative.Animated.event([{
239
256
  nativeEvent: {
240
257
  progress: this.progress,