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.
- package/LICENSE +1 -1
- package/README.md +13 -7
- package/RNScreens.podspec +36 -6
- package/android/build.gradle +74 -3
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/RNScreensComponentsRegistry.java +28 -0
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +11 -2
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +52 -21
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +64 -33
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +9 -31
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +0 -30
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +12 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +83 -18
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +17 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +14 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +41 -14
- package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +72 -11
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +18 -1
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +7 -2
- package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +29 -2
- package/android/src/main/jni/Android.mk +45 -0
- package/android/src/main/jni/OnLoad.cpp +9 -0
- package/android/src/main/jni/RNScreensComponentsRegistry.cpp +66 -0
- package/android/src/main/jni/RNScreensComponentsRegistry.h +34 -0
- package/android/src/main/res/anim/rns_default_enter_in.xml +18 -0
- package/android/src/main/res/anim/rns_default_enter_out.xml +19 -0
- package/android/src/main/res/anim/rns_default_exit_in.xml +17 -0
- package/android/src/main/res/anim/rns_default_exit_out.xml +18 -0
- package/android/src/main/res/anim/rns_fade_in.xml +7 -0
- package/android/src/main/res/anim/rns_fade_out.xml +7 -0
- package/android/src/main/res/anim/rns_no_animation_20.xml +6 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +71 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +30 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +104 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +41 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +16 -0
- package/common/cpp/Android.mk +38 -0
- package/common/cpp/rnscreens/RNSScreenComponentDescriptor.h +41 -0
- package/common/cpp/rnscreens/RNSScreenShadowNode.cpp +9 -0
- package/common/cpp/rnscreens/RNSScreenShadowNode.h +29 -0
- package/common/cpp/rnscreens/RNSScreenState.cpp +14 -0
- package/common/cpp/rnscreens/RNSScreenState.h +46 -0
- package/createNativeStackNavigator/README.md +12 -0
- package/ios/RNSScreen.h +10 -0
- package/ios/RNSScreen.m +34 -0
- package/ios/RNSScreenComponentView.h +23 -0
- package/ios/RNSScreenComponentView.mm +159 -0
- package/ios/RNSScreenContainer.m +5 -0
- package/ios/RNSScreenController.h +10 -0
- package/ios/RNSScreenController.mm +79 -0
- package/ios/RNSScreenStack.m +22 -7
- package/ios/RNSScreenStackAnimator.m +45 -14
- package/ios/RNSScreenStackComponentView.h +15 -0
- package/ios/RNSScreenStackComponentView.mm +295 -0
- package/ios/RNSScreenStackHeaderConfig.m +4 -1
- package/ios/RNSScreenStackHeaderConfigComponentView.h +42 -0
- package/ios/RNSScreenStackHeaderConfigComponentView.mm +662 -0
- package/ios/RNSScreenStackHeaderSubviewComponentView.h +14 -0
- package/ios/RNSScreenStackHeaderSubviewComponentView.mm +77 -0
- package/ios/RNSScreenWindowTraits.h +1 -0
- package/ios/RNSScreenWindowTraits.m +20 -0
- package/ios/UIViewController+RNScreens.m +10 -0
- package/ios/utils/RNSUIBarButtonItem.h +5 -0
- package/ios/utils/RNSUIBarButtonItem.mm +22 -0
- package/lib/commonjs/fabric/Screen.js +27 -0
- package/lib/commonjs/fabric/Screen.js.map +1 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js +23 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStack.js +27 -0
- package/lib/commonjs/fabric/ScreenStack.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +27 -0
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubview.js +34 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubview.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +27 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +21 -0
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/index.js +40 -0
- package/lib/commonjs/fabric/index.js.map +1 -0
- package/lib/commonjs/index.native.js +32 -15
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +33 -4
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/fabric/Screen.js +11 -0
- package/lib/module/fabric/Screen.js.map +1 -0
- package/lib/module/fabric/ScreenNativeComponent.js +11 -0
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStack.js +12 -0
- package/lib/module/fabric/ScreenStack.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -0
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderSubview.js +21 -0
- package/lib/module/fabric/ScreenStackHeaderSubview.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +10 -0
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStackNativeComponent.js +9 -0
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
- package/lib/module/fabric/index.js +6 -0
- package/lib/module/fabric/index.js.map +1 -0
- package/lib/module/index.native.js +32 -15
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +33 -4
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/typescript/native-stack/types.d.ts +34 -0
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/types.d.ts +60 -5
- package/native-stack/README.md +39 -3
- package/package.json +17 -3
- package/reanimated/package.json +6 -0
- package/src/fabric/Screen.js +12 -0
- package/src/fabric/ScreenNativeComponent.js +64 -0
- package/src/fabric/ScreenStack.js +8 -0
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +54 -0
- package/src/fabric/ScreenStackHeaderSubview.js +20 -0
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +31 -0
- package/src/fabric/ScreenStackNativeComponent.js +19 -0
- package/src/fabric/index.js +11 -0
- package/src/index.native.tsx +35 -14
- package/src/native-stack/types.tsx +34 -0
- package/src/native-stack/views/NativeStackView.tsx +33 -4
- 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
|
+
}
|
|
@@ -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,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
|
-
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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,
|