react-native-screens 4.0.0-beta.5 → 4.0.0-beta.7
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/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
- package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +1 -1
- 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/utils/PaddingBundle.kt +8 -0
- package/android/src/main/jni/rnscreens.h +2 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -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/RNSScreenStack.mm +32 -0
- package/ios/RNSScreenStackHeaderConfig.h +63 -0
- package/ios/RNSScreenStackHeaderConfig.mm +126 -9
- package/ios/RNSScreenStackHeaderSubview.mm +26 -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/components/Screen.js +6 -4
- package/lib/commonjs/components/Screen.js.map +1 -1
- package/lib/commonjs/components/ScreenStackHeaderConfig.js +49 -17
- package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +3 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +3 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/components/Screen.js +6 -4
- package/lib/module/components/Screen.js.map +1 -1
- package/lib/module/components/ScreenStackHeaderConfig.js +46 -16
- package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +3 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +3 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/typescript/components/Screen.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/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Screen.tsx +6 -4
- package/src/components/ScreenStackHeaderConfig.tsx +55 -26
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +3 -1
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +3 -1
|
@@ -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,9 +56,12 @@ 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
|
|
|
@@ -89,6 +93,16 @@ namespace react = facebook::react;
|
|
|
89
93
|
}
|
|
90
94
|
return self;
|
|
91
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
|
+
}
|
|
92
106
|
#endif
|
|
93
107
|
|
|
94
108
|
- (void)initProps
|
|
@@ -171,6 +185,51 @@ namespace react = facebook::react;
|
|
|
171
185
|
[navctr.view setNeedsLayout];
|
|
172
186
|
}
|
|
173
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
|
+
|
|
174
233
|
+ (void)setAnimatedConfig:(UIViewController *)vc withConfig:(RNSScreenStackHeaderConfig *)config
|
|
175
234
|
{
|
|
176
235
|
UINavigationBar *navbar = ((UINavigationController *)vc.parentViewController).navigationBar;
|
|
@@ -471,16 +530,20 @@ namespace react = facebook::react;
|
|
|
471
530
|
UINavigationItem *navitem = vc.navigationItem;
|
|
472
531
|
UINavigationController *navctr = (UINavigationController *)vc.parentViewController;
|
|
473
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
|
+
|
|
474
541
|
NSUInteger currentIndex = [navctr.viewControllers indexOfObject:vc];
|
|
475
542
|
UINavigationItem *prevItem =
|
|
476
543
|
currentIndex > 0 ? [navctr.viewControllers objectAtIndex:currentIndex - 1].navigationItem : nil;
|
|
477
544
|
|
|
478
545
|
BOOL wasHidden = navctr.navigationBarHidden;
|
|
479
|
-
|
|
480
|
-
BOOL shouldHide = config == nil || !config.show;
|
|
481
|
-
#else
|
|
482
|
-
BOOL shouldHide = config == nil || config.hide;
|
|
483
|
-
#endif
|
|
546
|
+
BOOL shouldHide = config == nil || !config.shouldHeaderBeVisible;
|
|
484
547
|
|
|
485
548
|
if (!shouldHide && !config.translucent) {
|
|
486
549
|
// when nav bar is not translucent we chage edgesForExtendedLayout to avoid system laying out
|
|
@@ -681,9 +744,6 @@ namespace react = facebook::react;
|
|
|
681
744
|
break;
|
|
682
745
|
}
|
|
683
746
|
}
|
|
684
|
-
// We're forcing a re-layout when the subviews change,
|
|
685
|
-
// see: https://github.com/software-mansion/react-native-screens/pull/2316
|
|
686
|
-
[navctr.view layoutIfNeeded];
|
|
687
747
|
}
|
|
688
748
|
|
|
689
749
|
// This assignment should be done after `navitem.titleView = ...` assignment (iOS 16.0 bug).
|
|
@@ -836,6 +896,7 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
836
896
|
{
|
|
837
897
|
[super prepareForRecycle];
|
|
838
898
|
_initialPropsSet = NO;
|
|
899
|
+
_lastHeaderInsets = NSDirectionalEdgeInsets{};
|
|
839
900
|
}
|
|
840
901
|
|
|
841
902
|
- (NSNumber *)getFontSizePropValue:(int)value
|
|
@@ -926,6 +987,12 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
926
987
|
[super updateProps:props oldProps:oldProps];
|
|
927
988
|
}
|
|
928
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
|
+
|
|
929
996
|
#else
|
|
930
997
|
#pragma mark - Paper specific
|
|
931
998
|
|
|
@@ -964,11 +1031,21 @@ Class<RCTComponentViewProtocol> RNSScreenStackHeaderConfigCls(void)
|
|
|
964
1031
|
|
|
965
1032
|
RCT_EXPORT_MODULE()
|
|
966
1033
|
|
|
1034
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
1035
|
+
#else
|
|
1036
|
+
|
|
967
1037
|
- (UIView *)view
|
|
968
1038
|
{
|
|
969
|
-
return [RNSScreenStackHeaderConfig
|
|
1039
|
+
return [[RNSScreenStackHeaderConfig alloc] initWithBridge:self.bridge];
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
- (RCTShadowView *)shadowView
|
|
1043
|
+
{
|
|
1044
|
+
return [RNSScreenStackHeaderConfigShadowView new];
|
|
970
1045
|
}
|
|
971
1046
|
|
|
1047
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
1048
|
+
|
|
972
1049
|
RCT_EXPORT_VIEW_PROPERTY(title, NSString)
|
|
973
1050
|
RCT_EXPORT_VIEW_PROPERTY(titleFontFamily, NSString)
|
|
974
1051
|
RCT_EXPORT_VIEW_PROPERTY(titleFontSize, NSNumber)
|
|
@@ -999,6 +1076,46 @@ RCT_EXPORT_VIEW_PROPERTY(translucent, BOOL)
|
|
|
999
1076
|
|
|
1000
1077
|
@end
|
|
1001
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
|
+
|
|
1002
1119
|
@implementation RCTConvert (RNSScreenStackHeader)
|
|
1003
1120
|
|
|
1004
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,6 +25,27 @@ 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
|
|
@@ -78,6 +102,7 @@ namespace react = facebook::react;
|
|
|
78
102
|
self);
|
|
79
103
|
} else {
|
|
80
104
|
self.bounds = CGRect{CGPointZero, frame.size};
|
|
105
|
+
[self layoutNavigationBarIfNeeded];
|
|
81
106
|
}
|
|
82
107
|
}
|
|
83
108
|
|
|
@@ -102,6 +127,7 @@ namespace react = facebook::react;
|
|
|
102
127
|
// Block any attempt to set coordinates on RNSScreenStackHeaderSubview. This
|
|
103
128
|
// makes UINavigationBar the only one to control the position of header content.
|
|
104
129
|
[super reactSetFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
|
|
130
|
+
[self layoutNavigationBarIfNeeded];
|
|
105
131
|
}
|
|
106
132
|
|
|
107
133
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -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
|
|
@@ -40,12 +40,14 @@ function assertDetentsArrayIsSorted(array) {
|
|
|
40
40
|
// We can get rid of it, once we get rid of support for legacy values: 'large', 'medium', 'all'.
|
|
41
41
|
function resolveSheetAllowedDetents(allowedDetentsCompat) {
|
|
42
42
|
if (Array.isArray(allowedDetentsCompat)) {
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
if (_reactNative.Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
|
|
43
|
+
if (_reactNative.Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
|
|
44
|
+
if (__DEV__) {
|
|
46
45
|
console.warn('[RNScreens] Sheets API on Android do accept only up to 3 values. Any surplus value are ignored.');
|
|
47
|
-
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
|
|
48
46
|
}
|
|
47
|
+
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
|
|
48
|
+
}
|
|
49
|
+
if (__DEV__) {
|
|
50
|
+
assertDetentsArrayIsSorted(allowedDetentsCompat);
|
|
49
51
|
}
|
|
50
52
|
return allowedDetentsCompat;
|
|
51
53
|
} else if (allowedDetentsCompat === 'fitToContents') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","default","ScreenContext","NativeScreen","InnerScreen","_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","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","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","ScreenContext","NativeScreen","InnerScreen","_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","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","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","activityState","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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"}
|
|
@@ -4,15 +4,21 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ScreenStackHeaderCenterView = exports.ScreenStackHeaderBackButtonImage = void 0;
|
|
8
|
+
exports.ScreenStackHeaderConfig = ScreenStackHeaderConfig;
|
|
9
|
+
exports.ScreenStackHeaderSubview = exports.ScreenStackHeaderSearchBarView = exports.ScreenStackHeaderRightView = exports.ScreenStackHeaderLeftView = void 0;
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
var _reactNative = require("react-native");
|
|
10
12
|
var _ScreenStackHeaderConfigNativeComponent = _interopRequireDefault(require("../fabric/ScreenStackHeaderConfigNativeComponent"));
|
|
11
13
|
var _ScreenStackHeaderSubviewNativeComponent = _interopRequireDefault(require("../fabric/ScreenStackHeaderSubviewNativeComponent"));
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
15
|
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
|
|
14
|
-
const ScreenStackHeaderConfig = exports.ScreenStackHeaderConfig = _ScreenStackHeaderConfigNativeComponent.default;
|
|
15
16
|
const ScreenStackHeaderSubview = exports.ScreenStackHeaderSubview = _ScreenStackHeaderSubviewNativeComponent.default;
|
|
17
|
+
function ScreenStackHeaderConfig(props) {
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_ScreenStackHeaderConfigNativeComponent.default, _extends({}, props, {
|
|
19
|
+
style: styles.headerConfig
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
16
22
|
const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, {
|
|
17
23
|
type: "back",
|
|
18
24
|
style: styles.headerSubview
|
|
@@ -21,20 +27,38 @@ const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.cr
|
|
|
21
27
|
fadeDuration: 0
|
|
22
28
|
}, props)));
|
|
23
29
|
exports.ScreenStackHeaderBackButtonImage = ScreenStackHeaderBackButtonImage;
|
|
24
|
-
const ScreenStackHeaderRightView = props =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
const ScreenStackHeaderRightView = props => {
|
|
31
|
+
const {
|
|
32
|
+
style,
|
|
33
|
+
...rest
|
|
34
|
+
} = props;
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
|
|
36
|
+
type: "right",
|
|
37
|
+
style: [styles.headerSubview, style]
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
28
40
|
exports.ScreenStackHeaderRightView = ScreenStackHeaderRightView;
|
|
29
|
-
const ScreenStackHeaderLeftView = props =>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
const ScreenStackHeaderLeftView = props => {
|
|
42
|
+
const {
|
|
43
|
+
style,
|
|
44
|
+
...rest
|
|
45
|
+
} = props;
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
|
|
47
|
+
type: "left",
|
|
48
|
+
style: [styles.headerSubview, style]
|
|
49
|
+
}));
|
|
50
|
+
};
|
|
33
51
|
exports.ScreenStackHeaderLeftView = ScreenStackHeaderLeftView;
|
|
34
|
-
const ScreenStackHeaderCenterView = props =>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
52
|
+
const ScreenStackHeaderCenterView = props => {
|
|
53
|
+
const {
|
|
54
|
+
style,
|
|
55
|
+
...rest
|
|
56
|
+
} = props;
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
|
|
58
|
+
type: "center",
|
|
59
|
+
style: [styles.headerSubviewCenter, style]
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
38
62
|
exports.ScreenStackHeaderCenterView = ScreenStackHeaderCenterView;
|
|
39
63
|
const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/_react.default.createElement(ScreenStackHeaderSubview, _extends({}, props, {
|
|
40
64
|
type: "searchBar",
|
|
@@ -43,12 +67,20 @@ const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/_react.default.crea
|
|
|
43
67
|
exports.ScreenStackHeaderSearchBarView = ScreenStackHeaderSearchBarView;
|
|
44
68
|
const styles = _reactNative.StyleSheet.create({
|
|
45
69
|
headerSubview: {
|
|
46
|
-
position: 'absolute',
|
|
47
|
-
top: 0,
|
|
48
|
-
right: 0,
|
|
49
70
|
flexDirection: 'row',
|
|
50
71
|
alignItems: 'center',
|
|
51
72
|
justifyContent: 'center'
|
|
73
|
+
},
|
|
74
|
+
headerSubviewCenter: {
|
|
75
|
+
flexDirection: 'row',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
justifyContent: 'center',
|
|
78
|
+
flexShrink: 1
|
|
79
|
+
},
|
|
80
|
+
headerConfig: {
|
|
81
|
+
flexDirection: 'row',
|
|
82
|
+
width: '100%',
|
|
83
|
+
justifyContent: 'space-between'
|
|
52
84
|
}
|
|
53
85
|
});
|
|
54
86
|
//# sourceMappingURL=ScreenStackHeaderConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","ScreenStackHeaderCenterView","ScreenStackHeaderBackButtonImage","ScreenStackHeaderConfig","ScreenStackHeaderSubview","ScreenStackHeaderSearchBarView","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","_react","_interopRequireDefault","require","_reactNative","_ScreenStackHeaderConfigNativeComponent","_ScreenStackHeaderSubviewNativeComponent","obj","__esModule","default","_extends","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ScreenStackHeaderSubviewNativeComponent","props","createElement","style","styles","headerConfig","type","headerSubview","Image","resizeMode","fadeDuration","rest","headerSubviewCenter","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","width"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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"}
|
|
@@ -9,5 +9,7 @@ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libra
|
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
11
11
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
12
|
-
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderConfig', {
|
|
12
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderConfig', {
|
|
13
|
+
interfaceOnly: true
|
|
14
|
+
});
|
|
13
15
|
//# sourceMappingURL=ScreenStackHeaderConfigNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/ScreenStackHeaderConfigNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAJ,OAAA,EAAAI,GAAA;AAU7F;AAEA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GA6De,IAAAO,+BAAsB,EACnC,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","_default","codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenStackHeaderConfigNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAJ,OAAA,EAAAI,GAAA;AAU7F;AAEA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GA6De,IAAAO,+BAAsB,EACnC,4BAA4B,EAC5B;EACEC,aAAa,EAAE;AACjB,CACF,CAAC"}
|
|
@@ -7,5 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderSubview', {
|
|
10
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('RNSScreenStackHeaderSubview', {
|
|
11
|
+
interfaceOnly: true
|
|
12
|
+
});
|
|
11
13
|
//# sourceMappingURL=ScreenStackHeaderSubviewNativeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/ScreenStackHeaderSubviewNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAJ,OAAA,EAAAI,GAAA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GAgB9E,IAAAO,+BAAsB,EACnC,6BAA6B,EAC7B,
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","default","_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","_default","codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenStackHeaderSubviewNativeComponent.ts"],"mappings":";AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,OAAA;AAEb,IAAAC,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAJ,OAAA,EAAAI,GAAA;AAAA,IAAAE,QAAA,GAAAR,OAAA,CAAAE,OAAA,GAgB9E,IAAAO,+BAAsB,EACnC,6BAA6B,EAC7B;EACEC,aAAa,EAAE;AACjB,CACF,CAAC"}
|
|
@@ -36,12 +36,14 @@ function assertDetentsArrayIsSorted(array) {
|
|
|
36
36
|
// We can get rid of it, once we get rid of support for legacy values: 'large', 'medium', 'all'.
|
|
37
37
|
function resolveSheetAllowedDetents(allowedDetentsCompat) {
|
|
38
38
|
if (Array.isArray(allowedDetentsCompat)) {
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
if (Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
|
|
39
|
+
if (Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
|
|
40
|
+
if (__DEV__) {
|
|
42
41
|
console.warn('[RNScreens] Sheets API on Android do accept only up to 3 values. Any surplus value are ignored.');
|
|
43
|
-
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
|
|
44
42
|
}
|
|
43
|
+
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
|
|
44
|
+
}
|
|
45
|
+
if (__DEV__) {
|
|
46
|
+
assertDetentsArrayIsSorted(allowedDetentsCompat);
|
|
45
47
|
}
|
|
46
48
|
return allowedDetentsCompat;
|
|
47
49
|
} else if (allowedDetentsCompat === 'fitToContents') {
|