react-native-screens 4.0.0-beta.0 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/android/build.gradle +26 -6
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +4 -3
- package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +54 -1
- package/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +2 -4
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +59 -36
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +26 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +37 -17
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +1 -2
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +25 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +18 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +8 -2
- package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +2 -1
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +8 -0
- package/android/src/main/jni/rnscreens.h +2 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +5 -0
- package/android/src/main/res/base/anim/{rns_slide_out_to_left_ios.xml → rns_ios_from_left_background_open.xml} +1 -1
- package/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +6 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +6 -0
- package/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +5 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +1 -1
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +5 -99
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +101 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +2 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +44 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +8 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +23 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +50 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +27 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +8 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +15 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +40 -0
- package/ios/RNSConvert.mm +4 -2
- package/ios/RNSFullWindowOverlay.mm +6 -0
- package/ios/RNSModalScreen.mm +7 -0
- package/ios/RNSScreen.h +9 -0
- package/ios/RNSScreen.mm +46 -8
- package/ios/RNSScreenContainer.mm +6 -0
- package/ios/RNSScreenContentWrapper.mm +6 -0
- package/ios/RNSScreenFooter.mm +6 -0
- package/ios/RNSScreenNavigationContainer.mm +7 -0
- package/ios/RNSScreenStack.mm +86 -8
- package/ios/RNSScreenStackHeaderConfig.h +63 -0
- package/ios/RNSScreenStackHeaderConfig.mm +133 -6
- package/ios/RNSScreenStackHeaderSubview.mm +32 -3
- package/ios/RNSSearchBar.mm +7 -0
- package/ios/utils/UINavigationBar+RNSUtility.h +37 -0
- package/ios/utils/UINavigationBar+RNSUtility.mm +44 -0
- package/ios/utils/UIView+RNSUtility.mm +0 -1
- package/lib/commonjs/TransitionProgressContext.js +1 -0
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/components/Screen.js +111 -5
- package/lib/commonjs/components/Screen.js.map +1 -1
- package/lib/commonjs/components/Screen.web.js +2 -0
- package/lib/commonjs/components/Screen.web.js.map +1 -1
- package/lib/commonjs/components/ScreenContainer.js +1 -0
- package/lib/commonjs/components/ScreenContainer.js.map +1 -1
- package/lib/commonjs/components/ScreenContentWrapper.web.js +11 -0
- package/lib/commonjs/components/ScreenContentWrapper.web.js.map +1 -0
- package/lib/commonjs/components/ScreenFooter.web.js +11 -0
- package/lib/commonjs/components/ScreenFooter.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStack.js +1 -0
- package/lib/commonjs/components/ScreenStack.js.map +1 -1
- package/lib/commonjs/components/ScreenStackHeaderConfig.js +54 -17
- package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/commonjs/components/SearchBar.js +1 -0
- package/lib/commonjs/components/SearchBar.js.map +1 -1
- package/lib/commonjs/components/helpers/usePrevious.js +15 -0
- package/lib/commonjs/components/helpers/usePrevious.js.map +1 -0
- package/lib/commonjs/core.js +1 -0
- package/lib/commonjs/core.js.map +1 -1
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +1 -0
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ModalScreenNativeComponent.js +1 -0
- package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/NativeScreensModule.js +2 -1
- package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -1
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +1 -0
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNativeComponent.js +1 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +1 -0
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +4 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +4 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +1 -0
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +2 -2
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/native-stack/contexts/GHContext.js +1 -0
- package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +7 -13
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/TransitionProgressContext.js +2 -0
- package/lib/module/TransitionProgressContext.js.map +1 -1
- package/lib/module/components/Screen.js +112 -5
- package/lib/module/components/Screen.js.map +1 -1
- package/lib/module/components/Screen.web.js +3 -0
- package/lib/module/components/Screen.web.js.map +1 -1
- package/lib/module/components/ScreenContainer.js +2 -0
- package/lib/module/components/ScreenContainer.js.map +1 -1
- package/lib/module/components/ScreenContentWrapper.web.js +5 -0
- package/lib/module/components/ScreenContentWrapper.web.js.map +1 -0
- package/lib/module/components/ScreenFooter.web.js +5 -0
- package/lib/module/components/ScreenFooter.web.js.map +1 -0
- package/lib/module/components/ScreenStack.js +2 -0
- package/lib/module/components/ScreenStack.js.map +1 -1
- package/lib/module/components/ScreenStackHeaderConfig.js +52 -16
- package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/module/components/SearchBar.js +2 -0
- package/lib/module/components/SearchBar.js.map +1 -1
- package/lib/module/components/helpers/usePrevious.js +9 -0
- package/lib/module/components/helpers/usePrevious.js.map +1 -0
- package/lib/module/core.js +2 -0
- package/lib/module/core.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +2 -0
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ModalScreenNativeComponent.js +2 -0
- package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/NativeScreensModule.js +2 -1
- package/lib/module/fabric/NativeScreensModule.js.map +1 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js +2 -0
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js +2 -0
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +2 -0
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +5 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js +2 -0
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +2 -0
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/index.js +6 -6
- package/lib/module/native-stack/contexts/GHContext.js +2 -0
- package/lib/module/native-stack/contexts/GHContext.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +7 -13
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/typescript/TransitionProgressContext.d.ts.map +1 -1
- package/lib/typescript/components/Screen.d.ts +5 -1
- package/lib/typescript/components/Screen.d.ts.map +1 -1
- package/lib/typescript/components/Screen.web.d.ts.map +1 -1
- package/lib/typescript/components/ScreenContainer.d.ts.map +1 -1
- package/lib/typescript/components/ScreenContentWrapper.web.d.ts +5 -0
- package/lib/typescript/components/ScreenContentWrapper.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenFooter.web.d.ts +5 -0
- package/lib/typescript/components/ScreenFooter.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenStack.d.ts.map +1 -1
- package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +1 -1
- package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -1
- package/lib/typescript/components/SearchBar.d.ts.map +1 -1
- package/lib/typescript/components/helpers/usePrevious.d.ts +2 -0
- package/lib/typescript/components/helpers/usePrevious.d.ts.map +1 -0
- package/lib/typescript/core.d.ts.map +1 -1
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +18 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -1
- package/lib/typescript/native-stack/types.d.ts +14 -5
- package/lib/typescript/native-stack/types.d.ts.map +1 -1
- package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +56 -11
- package/lib/typescript/types.d.ts.map +1 -1
- package/native-stack/README.md +30 -5
- package/package.json +1 -1
- package/src/TransitionProgressContext.tsx +2 -0
- package/src/components/Screen.tsx +161 -8
- package/src/components/Screen.web.tsx +3 -0
- package/src/components/ScreenContainer.tsx +2 -0
- package/src/components/ScreenContentWrapper.web.tsx +6 -0
- package/src/components/ScreenFooter.web.tsx +6 -0
- package/src/components/ScreenStack.tsx +2 -0
- package/src/components/ScreenStackHeaderConfig.tsx +61 -26
- package/src/components/SearchBar.tsx +2 -0
- package/src/components/helpers/usePrevious.tsx +11 -0
- package/src/core.ts +2 -0
- package/src/fabric/FullWindowOverlayNativeComponent.ts +2 -0
- package/src/fabric/ModalScreenNativeComponent.ts +3 -0
- package/src/fabric/NativeScreensModule.ts +2 -0
- package/src/fabric/ScreenContainerNativeComponent.ts +2 -0
- package/src/fabric/ScreenNativeComponent.ts +4 -1
- package/src/fabric/ScreenNavigationContainerNativeComponent.ts +2 -0
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +5 -1
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +5 -1
- package/src/fabric/ScreenStackNativeComponent.ts +2 -0
- package/src/fabric/SearchBarNativeComponent.ts +2 -0
- package/src/index.tsx +6 -6
- package/src/native-stack/contexts/GHContext.tsx +2 -0
- package/src/native-stack/types.tsx +14 -5
- package/src/native-stack/views/NativeStackView.tsx +11 -16
- package/src/types.tsx +63 -11
- package/windows/RNScreens/Screen.h +2 -1
- /package/android/src/main/res/base/anim/{rns_slide_in_from_left_ios.xml → rns_ios_from_right_background_close.xml} +0 -0
- /package/android/src/main/res/base/anim/{rns_slide_out_to_right_ios.xml → rns_ios_from_right_foreground_close.xml} +0 -0
- /package/android/src/main/res/base/anim/{rns_slide_in_from_right_ios.xml → rns_ios_from_right_foreground_open.xml} +0 -0
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
9
9
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
10
10
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
11
|
+
#import <rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
11
12
|
#import "RCTImageComponentView+RNSScreenStackHeaderConfig.h"
|
|
12
13
|
#else
|
|
13
14
|
#import <React/RCTImageView.h>
|
|
@@ -55,13 +56,23 @@ namespace react = facebook::react;
|
|
|
55
56
|
|
|
56
57
|
@implementation RNSScreenStackHeaderConfig {
|
|
57
58
|
NSMutableArray<RNSScreenStackHeaderSubview *> *_reactSubviews;
|
|
59
|
+
NSDirectionalEdgeInsets _lastHeaderInsets;
|
|
58
60
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
59
61
|
BOOL _initialPropsSet;
|
|
62
|
+
react::RNSScreenStackHeaderConfigShadowNode::ConcreteState::Shared _state;
|
|
60
63
|
#else
|
|
64
|
+
__weak RCTBridge *_bridge;
|
|
61
65
|
#endif
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
69
|
+
|
|
70
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
71
|
+
+ (void)load
|
|
72
|
+
{
|
|
73
|
+
[super load];
|
|
74
|
+
}
|
|
75
|
+
|
|
65
76
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
66
77
|
{
|
|
67
78
|
if (self = [super initWithFrame:frame]) {
|
|
@@ -82,6 +93,16 @@ namespace react = facebook::react;
|
|
|
82
93
|
}
|
|
83
94
|
return self;
|
|
84
95
|
}
|
|
96
|
+
|
|
97
|
+
- (instancetype)initWithBridge:(RCTBridge *)bridge
|
|
98
|
+
{
|
|
99
|
+
if (self = [super init]) {
|
|
100
|
+
_bridge = bridge;
|
|
101
|
+
_translucent = YES;
|
|
102
|
+
[self initProps];
|
|
103
|
+
}
|
|
104
|
+
return self;
|
|
105
|
+
}
|
|
85
106
|
#endif
|
|
86
107
|
|
|
87
108
|
- (void)initProps
|
|
@@ -164,6 +185,51 @@ namespace react = facebook::react;
|
|
|
164
185
|
[navctr.view setNeedsLayout];
|
|
165
186
|
}
|
|
166
187
|
|
|
188
|
+
- (void)updateHeaderInsetsInShadowTreeTo:(NSDirectionalEdgeInsets)insets
|
|
189
|
+
{
|
|
190
|
+
if (_lastHeaderInsets.leading != insets.leading || _lastHeaderInsets.trailing != insets.trailing) {
|
|
191
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
192
|
+
auto newState = react::RNSScreenStackHeaderConfigState{insets.leading, insets.trailing};
|
|
193
|
+
_state->updateState(std::move(newState));
|
|
194
|
+
_lastHeaderInsets = std::move(insets);
|
|
195
|
+
#else
|
|
196
|
+
[_bridge.uiManager setLocalData:[[RNSHeaderConfigInsetsPayload alloc] initWithInsets:insets] forView:self];
|
|
197
|
+
_lastHeaderInsets = std::move(insets);
|
|
198
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
- (BOOL)hasSubviewOfType:(RNSScreenStackHeaderSubviewType)type
|
|
203
|
+
{
|
|
204
|
+
for (RNSScreenStackHeaderSubview *subview in _reactSubviews) {
|
|
205
|
+
if (subview.type == type) {
|
|
206
|
+
return YES;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return NO;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
- (BOOL)hasSubviewLeft
|
|
214
|
+
{
|
|
215
|
+
return [self hasSubviewOfType:RNSScreenStackHeaderSubviewTypeLeft];
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
- (BOOL)shouldHeaderBeVisible
|
|
219
|
+
{
|
|
220
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
221
|
+
return self.show;
|
|
222
|
+
#else
|
|
223
|
+
return !self.hide;
|
|
224
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
- (BOOL)shouldBackButtonBeVisibleInNavigationBar:(nullable UINavigationBar *)navBar
|
|
228
|
+
{
|
|
229
|
+
return navBar.backItem != nil && !self.hideBackButton &&
|
|
230
|
+
!(self.backButtonInCustomView == false && self.hasSubviewLeft);
|
|
231
|
+
}
|
|
232
|
+
|
|
167
233
|
+ (void)setAnimatedConfig:(UIViewController *)vc withConfig:(RNSScreenStackHeaderConfig *)config
|
|
168
234
|
{
|
|
169
235
|
UINavigationBar *navbar = ((UINavigationController *)vc.parentViewController).navigationBar;
|
|
@@ -464,16 +530,20 @@ namespace react = facebook::react;
|
|
|
464
530
|
UINavigationItem *navitem = vc.navigationItem;
|
|
465
531
|
UINavigationController *navctr = (UINavigationController *)vc.parentViewController;
|
|
466
532
|
|
|
533
|
+
// When modal is shown the underlying RNSScreen isn't attached to any navigation controller.
|
|
534
|
+
// During the modal dismissal transition this update method is called on this RNSScreen resulting in nil navctr.
|
|
535
|
+
// After the transition is completed it will be called again and will configure the navigation controller correctly.
|
|
536
|
+
// Also see: https://github.com/software-mansion/react-native-screens/pull/2336
|
|
537
|
+
if (navctr == nil) {
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
|
|
467
541
|
NSUInteger currentIndex = [navctr.viewControllers indexOfObject:vc];
|
|
468
542
|
UINavigationItem *prevItem =
|
|
469
543
|
currentIndex > 0 ? [navctr.viewControllers objectAtIndex:currentIndex - 1].navigationItem : nil;
|
|
470
544
|
|
|
471
545
|
BOOL wasHidden = navctr.navigationBarHidden;
|
|
472
|
-
|
|
473
|
-
BOOL shouldHide = config == nil || !config.show;
|
|
474
|
-
#else
|
|
475
|
-
BOOL shouldHide = config == nil || config.hide;
|
|
476
|
-
#endif
|
|
546
|
+
BOOL shouldHide = config == nil || !config.shouldHeaderBeVisible;
|
|
477
547
|
|
|
478
548
|
if (!shouldHide && !config.translucent) {
|
|
479
549
|
// when nav bar is not translucent we chage edgesForExtendedLayout to avoid system laying out
|
|
@@ -826,6 +896,7 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
826
896
|
{
|
|
827
897
|
[super prepareForRecycle];
|
|
828
898
|
_initialPropsSet = NO;
|
|
899
|
+
_lastHeaderInsets = NSDirectionalEdgeInsets{};
|
|
829
900
|
}
|
|
830
901
|
|
|
831
902
|
- (NSNumber *)getFontSizePropValue:(int)value
|
|
@@ -916,6 +987,12 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
916
987
|
[super updateProps:props oldProps:oldProps];
|
|
917
988
|
}
|
|
918
989
|
|
|
990
|
+
- (void)updateState:(const facebook::react::State::Shared &)state
|
|
991
|
+
oldState:(const facebook::react::State::Shared &)oldState
|
|
992
|
+
{
|
|
993
|
+
_state = std::static_pointer_cast<const react::RNSScreenStackHeaderConfigShadowNode::ConcreteState>(state);
|
|
994
|
+
}
|
|
995
|
+
|
|
919
996
|
#else
|
|
920
997
|
#pragma mark - Paper specific
|
|
921
998
|
|
|
@@ -954,11 +1031,21 @@ Class<RCTComponentViewProtocol> RNSScreenStackHeaderConfigCls(void)
|
|
|
954
1031
|
|
|
955
1032
|
RCT_EXPORT_MODULE()
|
|
956
1033
|
|
|
1034
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
1035
|
+
#else
|
|
1036
|
+
|
|
957
1037
|
- (UIView *)view
|
|
958
1038
|
{
|
|
959
|
-
return [RNSScreenStackHeaderConfig
|
|
1039
|
+
return [[RNSScreenStackHeaderConfig alloc] initWithBridge:self.bridge];
|
|
960
1040
|
}
|
|
961
1041
|
|
|
1042
|
+
- (RCTShadowView *)shadowView
|
|
1043
|
+
{
|
|
1044
|
+
return [RNSScreenStackHeaderConfigShadowView new];
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
1048
|
+
|
|
962
1049
|
RCT_EXPORT_VIEW_PROPERTY(title, NSString)
|
|
963
1050
|
RCT_EXPORT_VIEW_PROPERTY(titleFontFamily, NSString)
|
|
964
1051
|
RCT_EXPORT_VIEW_PROPERTY(titleFontSize, NSNumber)
|
|
@@ -989,6 +1076,46 @@ RCT_EXPORT_VIEW_PROPERTY(translucent, BOOL)
|
|
|
989
1076
|
|
|
990
1077
|
@end
|
|
991
1078
|
|
|
1079
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
1080
|
+
#else
|
|
1081
|
+
|
|
1082
|
+
@implementation RNSHeaderConfigInsetsPayload
|
|
1083
|
+
|
|
1084
|
+
- (instancetype)init
|
|
1085
|
+
{
|
|
1086
|
+
return [self initWithInsets:NSDirectionalEdgeInsets{}];
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
- (instancetype)initWithInsets:(NSDirectionalEdgeInsets)insets
|
|
1090
|
+
{
|
|
1091
|
+
if (self = [super init]) {
|
|
1092
|
+
self.insets = insets;
|
|
1093
|
+
}
|
|
1094
|
+
return self;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
@end
|
|
1098
|
+
|
|
1099
|
+
@implementation RNSScreenStackHeaderConfigShadowView {
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
- (void)setLocalData:(NSObject *)localData
|
|
1103
|
+
{
|
|
1104
|
+
if ([localData isKindOfClass:RNSHeaderConfigInsetsPayload.class]) {
|
|
1105
|
+
RNSHeaderConfigInsetsPayload *payload = (RNSHeaderConfigInsetsPayload *)localData;
|
|
1106
|
+
[self setPaddingStart:YGValue{.value = (float)payload.insets.leading, .unit = YGUnitPoint}];
|
|
1107
|
+
[self setPaddingEnd:YGValue{.value = (float)payload.insets.trailing, .unit = YGUnitPoint}];
|
|
1108
|
+
|
|
1109
|
+
// Trigger layout prop recomputation
|
|
1110
|
+
[self didSetProps:@[]];
|
|
1111
|
+
} else {
|
|
1112
|
+
[super setLocalData:localData];
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
@end
|
|
1117
|
+
#endif
|
|
1118
|
+
|
|
992
1119
|
@implementation RCTConvert (RNSScreenStackHeader)
|
|
993
1120
|
|
|
994
1121
|
+ (NSMutableDictionary *)blurEffectsForIOSVersion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#import "RNSScreenStackHeaderSubview.h"
|
|
2
2
|
#import "RNSConvert.h"
|
|
3
|
+
#import "RNSScreenStackHeaderConfig.h"
|
|
3
4
|
|
|
4
5
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
6
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
@@ -8,6 +9,8 @@
|
|
|
8
9
|
|
|
9
10
|
#import <React/RCTConversions.h>
|
|
10
11
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
12
|
+
|
|
13
|
+
#import <rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
11
14
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
12
15
|
|
|
13
16
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
@@ -22,10 +25,37 @@ namespace react = facebook::react;
|
|
|
22
25
|
|
|
23
26
|
#pragma mark - Common
|
|
24
27
|
|
|
28
|
+
- (nullable RNSScreenStackHeaderConfig *)getHeaderConfig
|
|
29
|
+
{
|
|
30
|
+
RNSScreenStackHeaderConfig *headerConfig = (RNSScreenStackHeaderConfig *_Nullable)self.reactSuperview;
|
|
31
|
+
#ifndef NDEBUG
|
|
32
|
+
if (headerConfig != nil && ![headerConfig isKindOfClass:[RNSScreenStackHeaderConfig class]]) {
|
|
33
|
+
RCTLogError(@"[RNScreens] Invalid view type, expecting RNSScreenStackHeaderConfig, got: %@", headerConfig);
|
|
34
|
+
return nil;
|
|
35
|
+
}
|
|
36
|
+
#endif
|
|
37
|
+
return headerConfig;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// We're forcing the navigation controller's view to re-layout
|
|
41
|
+
// see: https://github.com/software-mansion/react-native-screens/pull/2385
|
|
42
|
+
- (void)layoutNavigationBarIfNeeded
|
|
43
|
+
{
|
|
44
|
+
RNSScreenStackHeaderConfig *headerConfig = [self getHeaderConfig];
|
|
45
|
+
UINavigationController *navctr = headerConfig.screenView.reactViewController.navigationController;
|
|
46
|
+
[navctr.navigationBar layoutIfNeeded];
|
|
47
|
+
}
|
|
48
|
+
|
|
25
49
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
50
|
|
|
27
51
|
#pragma mark - Fabric specific
|
|
28
52
|
|
|
53
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
54
|
+
+ (void)load
|
|
55
|
+
{
|
|
56
|
+
[super load];
|
|
57
|
+
}
|
|
58
|
+
|
|
29
59
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
30
60
|
{
|
|
31
61
|
if (self = [super initWithFrame:frame]) {
|
|
@@ -72,9 +102,7 @@ namespace react = facebook::react;
|
|
|
72
102
|
self);
|
|
73
103
|
} else {
|
|
74
104
|
self.bounds = CGRect{CGPointZero, frame.size};
|
|
75
|
-
|
|
76
|
-
// see: https://github.com/software-mansion/react-native-screens/pull/2248
|
|
77
|
-
[self.superview layoutIfNeeded];
|
|
105
|
+
[self layoutNavigationBarIfNeeded];
|
|
78
106
|
}
|
|
79
107
|
}
|
|
80
108
|
|
|
@@ -99,6 +127,7 @@ namespace react = facebook::react;
|
|
|
99
127
|
// Block any attempt to set coordinates on RNSScreenStackHeaderSubview. This
|
|
100
128
|
// makes UINavigationBar the only one to control the position of header content.
|
|
101
129
|
[super reactSetFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
|
|
130
|
+
[self layoutNavigationBarIfNeeded];
|
|
102
131
|
}
|
|
103
132
|
|
|
104
133
|
#endif // RCT_NEW_ARCH_ENABLED
|
package/ios/RNSSearchBar.mm
CHANGED
|
@@ -37,6 +37,13 @@ namespace react = facebook::react;
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
40
|
+
|
|
41
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
42
|
+
+ (void)load
|
|
43
|
+
{
|
|
44
|
+
[super load];
|
|
45
|
+
}
|
|
46
|
+
|
|
40
47
|
- (instancetype)init
|
|
41
48
|
{
|
|
42
49
|
if (self = [super init]) {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#import <UIKit/UIKit.h>
|
|
2
|
+
|
|
3
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
4
|
+
|
|
5
|
+
@interface UINavigationBar (RNSUtility)
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Aims to find main content view of the `UINavigationBar`.
|
|
9
|
+
*
|
|
10
|
+
* This method relies on internal iOS implementation details (see the implementation)
|
|
11
|
+
* and might need patches specific to future iOS versions, in case the view hierarchy inside
|
|
12
|
+
* the navigation bar changes.
|
|
13
|
+
*
|
|
14
|
+
* Tested to work reliably on iOS 18.0, 17.5, 15.5.
|
|
15
|
+
*
|
|
16
|
+
* @returns `_UINavigationBarContentView` view mounted directly under the navigation bar itself
|
|
17
|
+
*/
|
|
18
|
+
- (nullable UIView *)rnscreens_findContentView;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Aims to find the back button wrapper view of the `UINavigationBar`. This is the view that contains
|
|
22
|
+
* the back button itself alongside all the margin / padding used to position the back button by the system.
|
|
23
|
+
*
|
|
24
|
+
* This method relies on internal iOS implementation details (see the implementation)
|
|
25
|
+
* and might need patches specific to future iOS versions, in case the view hierarchy inside
|
|
26
|
+
* the navigation bar changes.
|
|
27
|
+
*
|
|
28
|
+
* Tested to work reliably on iOS 18.0, 17.5, 15.5.
|
|
29
|
+
*
|
|
30
|
+
* @returns `_UIButtonBarButton` view, if present and mounted in anticipated place;
|
|
31
|
+
* if the back button is not present, this method returns `nil`.
|
|
32
|
+
*/
|
|
33
|
+
- (nullable UIView *)rnscreens_findBackButtonWrapperView;
|
|
34
|
+
|
|
35
|
+
@end
|
|
36
|
+
|
|
37
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#import "UINavigationBar+RNSUtility.h"
|
|
2
|
+
|
|
3
|
+
@implementation UINavigationBar (RNSUtility)
|
|
4
|
+
|
|
5
|
+
- (nullable UIView *)rnscreens_findContentView
|
|
6
|
+
{
|
|
7
|
+
// Class names taken from iOS 17.5, tested on iPhone 15 Pro
|
|
8
|
+
static Class ContentViewClass = NSClassFromString(@"_UINavigationBarContentView");
|
|
9
|
+
|
|
10
|
+
// Fast path
|
|
11
|
+
if (self.subviews.count > 1 && [self.subviews[1] isKindOfClass:ContentViewClass]) {
|
|
12
|
+
return self.subviews[1];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
for (UIView *subview in self.subviews) {
|
|
16
|
+
if ([subview isKindOfClass:ContentViewClass]) {
|
|
17
|
+
return subview;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return nil;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
- (nullable UIView *)rnscreens_findBackButtonWrapperView
|
|
25
|
+
{
|
|
26
|
+
// Class names taken from iOS 17.5, tested on iPhone 15 Pro
|
|
27
|
+
static Class BarButtonViewClass = NSClassFromString(@"_UIButtonBarButton");
|
|
28
|
+
|
|
29
|
+
UIView *contentView = self.rnscreens_findContentView;
|
|
30
|
+
|
|
31
|
+
if (contentView == nil) {
|
|
32
|
+
return nil;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
for (UIView *subview in contentView.subviews) {
|
|
36
|
+
if ([subview isKindOfClass:BarButtonViewClass]) {
|
|
37
|
+
return subview;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return nil;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_default","createContext","undefined"],"sourceRoot":"../../src","sources":["TransitionProgressContext.tsx"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAL,OAAA,EAAAK,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAE,GAAA,CAAAL,CAAA,UAAAG,CAAA,CAAAG,GAAA,CAAAN,CAAA,OAAAO,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAlB,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAmB,wBAAA,WAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,IAAApB,MAAA,CAAAqB,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAW,CAAA,SAAAI,CAAA,GAAAN,CAAA,GAAAlB,MAAA,CAAAmB,wBAAA,CAAAV,CAAA,EAAAW,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAT,GAAA,IAAAS,CAAA,CAAAC,GAAA,IAAAzB,MAAA,CAAAC,cAAA,CAAAe,CAAA,EAAAI,CAAA,EAAAI,CAAA,IAAAR,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA,YAAAJ,CAAA,CAAAZ,OAAA,GAAAK,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAO,CAAA,GAAAA,CAAA;AAAA,IAAAU,QAAA,GAAAxB,OAAA,CAAAE,OAAA,gBAShBC,KAAK,CAACsB,aAAa,CAChCC,SACF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
@@ -11,6 +12,7 @@ var _DelayedFreeze = _interopRequireDefault(require("./helpers/DelayedFreeze"));
|
|
|
11
12
|
var _core = require("../core");
|
|
12
13
|
var _ScreenNativeComponent = _interopRequireDefault(require("../fabric/ScreenNativeComponent"));
|
|
13
14
|
var _ModalScreenNativeComponent = _interopRequireDefault(require("../fabric/ModalScreenNativeComponent"));
|
|
15
|
+
var _usePrevious = require("./helpers/usePrevious");
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
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); } // Native components
|
|
16
18
|
const NativeScreen = exports.NativeScreen = _ScreenNativeComponent.default;
|
|
@@ -19,9 +21,95 @@ const AnimatedNativeModalScreen = _reactNative.Animated.createAnimatedComponent(
|
|
|
19
21
|
|
|
20
22
|
// Incomplete type, all accessible properties available at:
|
|
21
23
|
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
24
|
+
// This value must be kept in sync with native side.
|
|
25
|
+
const SHEET_FIT_TO_CONTENTS = [-1];
|
|
26
|
+
const SHEET_COMPAT_LARGE = [1.0];
|
|
27
|
+
const SHEET_COMPAT_MEDIUM = [0.5];
|
|
28
|
+
const SHEET_COMPAT_ALL = [0.5, 1.0];
|
|
29
|
+
const SHEET_DIMMED_ALWAYS = -1;
|
|
30
|
+
// const SHEET_DIMMED_NEVER = 9999;
|
|
31
|
+
|
|
32
|
+
function assertDetentsArrayIsSorted(array) {
|
|
33
|
+
for (let i = 1; i < array.length; i++) {
|
|
34
|
+
if (array[i - 1] > array[i]) {
|
|
35
|
+
throw new Error('[RNScreens] The detent array is not sorted in ascending order!');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// These exist to transform old 'legacy' values used by the formsheet API to the new API shape.
|
|
41
|
+
// We can get rid of it, once we get rid of support for legacy values: 'large', 'medium', 'all'.
|
|
42
|
+
function resolveSheetAllowedDetents(allowedDetentsCompat) {
|
|
43
|
+
if (Array.isArray(allowedDetentsCompat)) {
|
|
44
|
+
if (_reactNative.Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
|
|
45
|
+
if (__DEV__) {
|
|
46
|
+
console.warn('[RNScreens] Sheets API on Android do accept only up to 3 values. Any surplus value are ignored.');
|
|
47
|
+
}
|
|
48
|
+
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
|
|
49
|
+
}
|
|
50
|
+
if (__DEV__) {
|
|
51
|
+
assertDetentsArrayIsSorted(allowedDetentsCompat);
|
|
52
|
+
}
|
|
53
|
+
return allowedDetentsCompat;
|
|
54
|
+
} else if (allowedDetentsCompat === 'fitToContents') {
|
|
55
|
+
return SHEET_FIT_TO_CONTENTS;
|
|
56
|
+
} else if (allowedDetentsCompat === 'large') {
|
|
57
|
+
return SHEET_COMPAT_LARGE;
|
|
58
|
+
} else if (allowedDetentsCompat === 'medium') {
|
|
59
|
+
return SHEET_COMPAT_MEDIUM;
|
|
60
|
+
} else if (allowedDetentsCompat === 'all') {
|
|
61
|
+
return SHEET_COMPAT_ALL;
|
|
62
|
+
} else {
|
|
63
|
+
// Safe default, only large detent is allowed.
|
|
64
|
+
return [1.0];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function resolveSheetLargestUndimmedDetent(lud, lastDetentIndex) {
|
|
68
|
+
if (typeof lud === 'number') {
|
|
69
|
+
if (!isIndexInClosedRange(lud, SHEET_DIMMED_ALWAYS, lastDetentIndex)) {
|
|
70
|
+
if (__DEV__) {
|
|
71
|
+
throw new Error("[RNScreens] Provided value of 'sheetLargestUndimmedDetentIndex' prop is out of bounds of 'sheetAllowedDetents' array.");
|
|
72
|
+
}
|
|
73
|
+
// Return default in production
|
|
74
|
+
return SHEET_DIMMED_ALWAYS;
|
|
75
|
+
}
|
|
76
|
+
return lud;
|
|
77
|
+
} else if (lud === 'last') {
|
|
78
|
+
return lastDetentIndex;
|
|
79
|
+
} else if (lud === 'none' || lud === 'all') {
|
|
80
|
+
return SHEET_DIMMED_ALWAYS;
|
|
81
|
+
} else if (lud === 'large') {
|
|
82
|
+
return 1;
|
|
83
|
+
} else if (lud === 'medium') {
|
|
84
|
+
return 0;
|
|
85
|
+
} else {
|
|
86
|
+
// Safe default, every detent is dimmed
|
|
87
|
+
return SHEET_DIMMED_ALWAYS;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function resolveSheetInitialDetentIndex(index, lastDetentIndex) {
|
|
91
|
+
if (index === 'last') {
|
|
92
|
+
index = lastDetentIndex;
|
|
93
|
+
} else if (index == null) {
|
|
94
|
+
// Intentional check for undefined & null ^
|
|
95
|
+
index = 0;
|
|
96
|
+
}
|
|
97
|
+
if (!isIndexInClosedRange(index, 0, lastDetentIndex)) {
|
|
98
|
+
if (__DEV__) {
|
|
99
|
+
throw new Error("[RNScreens] Provided value of 'sheetInitialDetentIndex' prop is out of bounds of 'sheetAllowedDetents' array.");
|
|
100
|
+
}
|
|
101
|
+
// Return default in production
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
return index;
|
|
105
|
+
}
|
|
106
|
+
function isIndexInClosedRange(value, lowerBound, upperBound) {
|
|
107
|
+
return Number.isInteger(value) && value >= lowerBound && value <= upperBound;
|
|
108
|
+
}
|
|
22
109
|
const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef(function InnerScreen(props, ref) {
|
|
23
110
|
const innerRef = _react.default.useRef(null);
|
|
24
111
|
_react.default.useImperativeHandle(ref, () => innerRef.current, []);
|
|
112
|
+
const prevActivityState = (0, _usePrevious.usePrevious)(props.activityState);
|
|
25
113
|
const setRef = ref => {
|
|
26
114
|
innerRef.current = ref;
|
|
27
115
|
props.onComponentRef?.(ref);
|
|
@@ -38,16 +126,21 @@ const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef
|
|
|
38
126
|
// To maintain default behavior of formSheet stack presentation style and to have reasonable
|
|
39
127
|
// defaults for new medium-detent iOS API we need to set defaults here
|
|
40
128
|
const {
|
|
129
|
+
// formSheet presentation related props
|
|
41
130
|
sheetAllowedDetents = [1.0],
|
|
42
|
-
|
|
131
|
+
sheetLargestUndimmedDetentIndex = SHEET_DIMMED_ALWAYS,
|
|
43
132
|
sheetGrabberVisible = false,
|
|
44
133
|
sheetCornerRadius = -1.0,
|
|
45
134
|
sheetExpandsWhenScrolledToEdge = true,
|
|
46
135
|
sheetElevation = 24,
|
|
47
|
-
|
|
136
|
+
sheetInitialDetentIndex = 0,
|
|
137
|
+
// Other
|
|
48
138
|
stackPresentation
|
|
49
139
|
} = rest;
|
|
50
140
|
if (enabled && _core.isNativePlatformSupported) {
|
|
141
|
+
const resolvedSheetAllowedDetents = resolveSheetAllowedDetents(sheetAllowedDetents);
|
|
142
|
+
const resolvedSheetLargestUndimmedDetent = resolveSheetLargestUndimmedDetent(sheetLargestUndimmedDetentIndex, resolvedSheetAllowedDetents.length - 1);
|
|
143
|
+
const resolvedSheetInitialDetentIndex = resolveSheetInitialDetentIndex(sheetInitialDetentIndex, resolvedSheetAllowedDetents.length - 1);
|
|
51
144
|
// Due to how Yoga resolves layout, we need to have different components for modal nad non-modal screens
|
|
52
145
|
const AnimatedScreen = _reactNative.Platform.OS === 'android' || stackPresentation === undefined || stackPresentation === 'push' || stackPresentation === 'containedModal' || stackPresentation === 'containedTransparentModal' ? AnimatedNativeScreen : AnimatedNativeModalScreen;
|
|
53
146
|
let {
|
|
@@ -60,6 +153,7 @@ const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef
|
|
|
60
153
|
isNativeStack,
|
|
61
154
|
gestureResponseDistance,
|
|
62
155
|
onGestureCancel,
|
|
156
|
+
style,
|
|
63
157
|
...props
|
|
64
158
|
} = rest;
|
|
65
159
|
if (active !== undefined && activityState === undefined) {
|
|
@@ -67,6 +161,11 @@ const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef
|
|
|
67
161
|
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
|
68
162
|
}
|
|
69
163
|
|
|
164
|
+
if (isNativeStack && prevActivityState !== undefined && activityState !== undefined) {
|
|
165
|
+
if (prevActivityState > activityState) {
|
|
166
|
+
throw new Error('[RNScreens] activityState cannot be decreased in NativeStack');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
70
169
|
const handleRef = ref => {
|
|
71
170
|
if (ref?.viewConfig?.validAttributes?.style) {
|
|
72
171
|
ref.viewConfig.validAttributes.style = {
|
|
@@ -85,14 +184,21 @@ const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef
|
|
|
85
184
|
return /*#__PURE__*/_react.default.createElement(_DelayedFreeze.default, {
|
|
86
185
|
freeze: freezeOnBlur && activityState === 0
|
|
87
186
|
}, /*#__PURE__*/_react.default.createElement(AnimatedScreen, _extends({}, props, {
|
|
187
|
+
// Hierarchy of screens is handled on the native side and setting zIndex value causes this issue:
|
|
188
|
+
// https://github.com/software-mansion/react-native-screens/issues/2345
|
|
189
|
+
// With below change of zIndex, we force RN diffing mechanism to NOT include detaching and attaching mutation in one transaction.
|
|
190
|
+
// Detailed information can be found here https://github.com/software-mansion/react-native-screens/pull/2351
|
|
191
|
+
style: [style, {
|
|
192
|
+
zIndex: undefined
|
|
193
|
+
}],
|
|
88
194
|
activityState: activityState,
|
|
89
|
-
sheetAllowedDetents:
|
|
90
|
-
sheetLargestUndimmedDetent:
|
|
195
|
+
sheetAllowedDetents: resolvedSheetAllowedDetents,
|
|
196
|
+
sheetLargestUndimmedDetent: resolvedSheetLargestUndimmedDetent,
|
|
91
197
|
sheetElevation: sheetElevation,
|
|
92
198
|
sheetGrabberVisible: sheetGrabberVisible,
|
|
93
199
|
sheetCornerRadius: sheetCornerRadius,
|
|
94
200
|
sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
|
|
95
|
-
sheetInitialDetent:
|
|
201
|
+
sheetInitialDetent: resolvedSheetInitialDetentIndex,
|
|
96
202
|
gestureResponseDistance: {
|
|
97
203
|
start: gestureResponseDistance?.start ?? -1,
|
|
98
204
|
end: gestureResponseDistance?.end ?? -1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","ScreenContext","NativeScreen","InnerScreen","_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","_usePrevious","obj","__esModule","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ScreenNativeComponent","AnimatedNativeScreen","Animated","createAnimatedComponent","AnimatedNativeModalScreen","ModalScreenNativeComponent","SHEET_FIT_TO_CONTENTS","SHEET_COMPAT_LARGE","SHEET_COMPAT_MEDIUM","SHEET_COMPAT_ALL","SHEET_DIMMED_ALWAYS","assertDetentsArrayIsSorted","array","Error","resolveSheetAllowedDetents","allowedDetentsCompat","Array","isArray","Platform","OS","__DEV__","console","warn","slice","resolveSheetLargestUndimmedDetent","lud","lastDetentIndex","isIndexInClosedRange","resolveSheetInitialDetentIndex","index","lowerBound","upperBound","Number","isInteger","React","forwardRef","props","ref","innerRef","useRef","useImperativeHandle","current","prevActivityState","usePrevious","activityState","setRef","onComponentRef","closing","Value","progress","goingForward","enabled","screensEnabled","freezeOnBlur","freezeEnabled","rest","sheetAllowedDetents","sheetLargestUndimmedDetentIndex","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","sheetElevation","sheetInitialDetentIndex","stackPresentation","isNativePlatformSupported","resolvedSheetAllowedDetents","resolvedSheetLargestUndimmedDetent","resolvedSheetInitialDetentIndex","AnimatedScreen","undefined","active","children","isNativeStack","gestureResponseDistance","onGestureCancel","style","handleRef","viewConfig","validAttributes","display","_viewConfig","createElement","freeze","zIndex","sheetLargestUndimmedDetent","sheetInitialDetent","start","end","top","bottom","onTransitionProgress","event","nativeEvent","useNativeDriver","Provider","View","createContext","Screen","ScreenWrapper","useContext","_default"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
@@ -13,6 +14,7 @@ const InnerScreen = exports.InnerScreen = _reactNative.View;
|
|
|
13
14
|
|
|
14
15
|
// We're using class component here because of the error from reanimated:
|
|
15
16
|
// createAnimatedComponent` does not support stateless functional components; use a class component instead.
|
|
17
|
+
// NOTE: React Server Components do not support class components.
|
|
16
18
|
class NativeScreen extends _react.default.Component {
|
|
17
19
|
render() {
|
|
18
20
|
let {
|