react-native-screens 3.22.1 → 3.24.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/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +2 -0
- package/ios/RNSConvert.h +13 -13
- package/ios/RNSConvert.mm +57 -49
- package/ios/RNSEnums.h +6 -0
- package/ios/RNSFullWindowOverlay.h +6 -2
- package/ios/RNSFullWindowOverlay.mm +16 -6
- package/ios/RNSScreen.h +17 -5
- package/ios/RNSScreen.mm +74 -44
- package/ios/RNSScreenContainer.h +2 -2
- package/ios/RNSScreenContainer.mm +11 -8
- package/ios/RNSScreenNavigationContainer.h +1 -1
- package/ios/RNSScreenNavigationContainer.mm +9 -8
- package/ios/RNSScreenStack.h +1 -1
- package/ios/RNSScreenStack.mm +15 -14
- package/ios/RNSScreenStackHeaderConfig.mm +27 -21
- package/ios/RNSScreenStackHeaderSubview.mm +12 -11
- package/ios/RNSScreenWindowTraits.mm +5 -5
- package/ios/RNSSearchBar.h +8 -1
- package/ios/RNSSearchBar.mm +58 -19
- package/ios/UIViewController+RNScreens.mm +7 -7
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/index.native.js +5 -1
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/types.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +10 -6
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +35 -8
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/index.native.js +5 -1
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/types.js.map +1 -1
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +10 -6
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +35 -8
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +2 -0
- package/lib/typescript/native-stack/types.d.ts +8 -0
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
- package/lib/typescript/types.d.ts +21 -0
- package/native-stack/README.md +12 -1
- package/package.json +1 -1
- package/src/fabric/ScreenNativeComponent.ts +1 -0
- package/src/fabric/SearchBarNativeComponent.ts +3 -0
- package/src/index.native.tsx +7 -0
- package/src/native-stack/types.tsx +6 -0
- package/src/native-stack/utils/getDefaultHeaderHeight.tsx +11 -7
- package/src/native-stack/views/NativeStackView.tsx +36 -6
- package/src/types.tsx +21 -0
|
@@ -97,6 +97,8 @@ class SearchBarManager : ViewGroupManager<SearchBarView>() {
|
|
|
97
97
|
view.shouldShowHintSearchIcon = shouldShowHintSearchIcon ?: true
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
fun setPlacement(view: SearchBarView, placeholder: String?) = Unit
|
|
101
|
+
|
|
100
102
|
override fun receiveCommand(root: SearchBarView, commandId: String?, args: ReadableArray?) {
|
|
101
103
|
when (commandId) {
|
|
102
104
|
"focus" -> root.handleFocusJsRequest()
|
package/ios/RNSConvert.h
CHANGED
|
@@ -2,34 +2,34 @@
|
|
|
2
2
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
3
3
|
#import "RNSEnums.h"
|
|
4
4
|
|
|
5
|
+
namespace react = facebook::react;
|
|
6
|
+
|
|
5
7
|
@interface RNSConvert : NSObject
|
|
6
8
|
|
|
7
9
|
+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
|
|
8
|
-
(
|
|
10
|
+
(react::RNSScreenStackPresentation)stackPresentation;
|
|
9
11
|
|
|
10
|
-
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:
|
|
11
|
-
(facebook::react::RNSScreenStackAnimation)stackAnimation;
|
|
12
|
+
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:(react::RNSScreenStackAnimation)stackAnimation;
|
|
12
13
|
|
|
13
14
|
+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent:
|
|
14
|
-
(
|
|
15
|
+
(react::RNSScreenStackHeaderSubviewType)subviewType;
|
|
15
16
|
|
|
16
17
|
+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent:
|
|
17
|
-
(
|
|
18
|
+
(react::RNSScreenReplaceAnimation)replaceAnimation;
|
|
18
19
|
|
|
19
|
-
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
|
|
20
|
-
(facebook::react::RNSScreenSwipeDirection)swipeDirection;
|
|
20
|
+
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:(react::RNSScreenSwipeDirection)swipeDirection;
|
|
21
21
|
|
|
22
|
-
+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:
|
|
23
|
-
(facebook::react::RNSScreenSheetAllowedDetents)allowedDetents;
|
|
22
|
+
+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:(react::RNSScreenSheetAllowedDetents)allowedDetents;
|
|
24
23
|
|
|
25
|
-
+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:
|
|
26
|
-
(facebook::react::RNSScreenSheetLargestUndimmedDetent)detent;
|
|
24
|
+
+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:(react::RNSScreenSheetLargestUndimmedDetent)detent;
|
|
27
25
|
|
|
28
26
|
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
|
|
29
|
-
(const
|
|
27
|
+
(const react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance;
|
|
30
28
|
|
|
31
29
|
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
32
|
-
(
|
|
30
|
+
(react::RNSSearchBarAutoCapitalize)autoCapitalize;
|
|
31
|
+
|
|
32
|
+
+ (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement;
|
|
33
33
|
|
|
34
34
|
@end
|
|
35
35
|
|
package/ios/RNSConvert.mm
CHANGED
|
@@ -4,119 +4,115 @@
|
|
|
4
4
|
@implementation RNSConvert
|
|
5
5
|
|
|
6
6
|
+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
|
|
7
|
-
(
|
|
7
|
+
(react::RNSScreenStackPresentation)stackPresentation
|
|
8
8
|
{
|
|
9
9
|
switch (stackPresentation) {
|
|
10
|
-
case
|
|
10
|
+
case react::RNSScreenStackPresentation::Push:
|
|
11
11
|
return RNSScreenStackPresentationPush;
|
|
12
|
-
case
|
|
12
|
+
case react::RNSScreenStackPresentation::Modal:
|
|
13
13
|
return RNSScreenStackPresentationModal;
|
|
14
|
-
case
|
|
14
|
+
case react::RNSScreenStackPresentation::FullScreenModal:
|
|
15
15
|
return RNSScreenStackPresentationFullScreenModal;
|
|
16
|
-
case
|
|
16
|
+
case react::RNSScreenStackPresentation::FormSheet:
|
|
17
17
|
return RNSScreenStackPresentationFormSheet;
|
|
18
|
-
case
|
|
18
|
+
case react::RNSScreenStackPresentation::ContainedModal:
|
|
19
19
|
return RNSScreenStackPresentationContainedModal;
|
|
20
|
-
case
|
|
20
|
+
case react::RNSScreenStackPresentation::TransparentModal:
|
|
21
21
|
return RNSScreenStackPresentationTransparentModal;
|
|
22
|
-
case
|
|
22
|
+
case react::RNSScreenStackPresentation::ContainedTransparentModal:
|
|
23
23
|
return RNSScreenStackPresentationContainedTransparentModal;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:
|
|
28
|
-
(facebook::react::RNSScreenStackAnimation)stackAnimation
|
|
27
|
+
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:(react::RNSScreenStackAnimation)stackAnimation
|
|
29
28
|
{
|
|
30
29
|
switch (stackAnimation) {
|
|
31
30
|
// these three are intentionally grouped
|
|
32
|
-
case
|
|
33
|
-
case
|
|
34
|
-
case
|
|
31
|
+
case react::RNSScreenStackAnimation::Slide_from_right:
|
|
32
|
+
case react::RNSScreenStackAnimation::Slide_from_left:
|
|
33
|
+
case react::RNSScreenStackAnimation::Default:
|
|
35
34
|
return RNSScreenStackAnimationDefault;
|
|
36
|
-
case
|
|
35
|
+
case react::RNSScreenStackAnimation::Flip:
|
|
37
36
|
return RNSScreenStackAnimationFlip;
|
|
38
|
-
case
|
|
37
|
+
case react::RNSScreenStackAnimation::Simple_push:
|
|
39
38
|
return RNSScreenStackAnimationSimplePush;
|
|
40
|
-
case
|
|
39
|
+
case react::RNSScreenStackAnimation::None:
|
|
41
40
|
return RNSScreenStackAnimationNone;
|
|
42
|
-
case
|
|
41
|
+
case react::RNSScreenStackAnimation::Fade:
|
|
43
42
|
return RNSScreenStackAnimationFade;
|
|
44
|
-
case
|
|
43
|
+
case react::RNSScreenStackAnimation::Slide_from_bottom:
|
|
45
44
|
return RNSScreenStackAnimationSlideFromBottom;
|
|
46
|
-
case
|
|
45
|
+
case react::RNSScreenStackAnimation::Fade_from_bottom:
|
|
47
46
|
return RNSScreenStackAnimationFadeFromBottom;
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent:
|
|
52
|
-
(
|
|
51
|
+
(react::RNSScreenStackHeaderSubviewType)subviewType
|
|
53
52
|
{
|
|
54
53
|
switch (subviewType) {
|
|
55
|
-
case
|
|
54
|
+
case react::RNSScreenStackHeaderSubviewType::Left:
|
|
56
55
|
return RNSScreenStackHeaderSubviewTypeLeft;
|
|
57
|
-
case
|
|
56
|
+
case react::RNSScreenStackHeaderSubviewType::Right:
|
|
58
57
|
return RNSScreenStackHeaderSubviewTypeRight;
|
|
59
|
-
case
|
|
58
|
+
case react::RNSScreenStackHeaderSubviewType::Title:
|
|
60
59
|
return RNSScreenStackHeaderSubviewTypeTitle;
|
|
61
|
-
case
|
|
60
|
+
case react::RNSScreenStackHeaderSubviewType::Center:
|
|
62
61
|
return RNSScreenStackHeaderSubviewTypeCenter;
|
|
63
|
-
case
|
|
62
|
+
case react::RNSScreenStackHeaderSubviewType::SearchBar:
|
|
64
63
|
return RNSScreenStackHeaderSubviewTypeSearchBar;
|
|
65
|
-
case
|
|
64
|
+
case react::RNSScreenStackHeaderSubviewType::Back:
|
|
66
65
|
return RNSScreenStackHeaderSubviewTypeBackButton;
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
|
|
70
69
|
+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent:
|
|
71
|
-
(
|
|
70
|
+
(react::RNSScreenReplaceAnimation)replaceAnimation
|
|
72
71
|
{
|
|
73
72
|
switch (replaceAnimation) {
|
|
74
|
-
case
|
|
73
|
+
case react::RNSScreenReplaceAnimation::Pop:
|
|
75
74
|
return RNSScreenReplaceAnimationPop;
|
|
76
|
-
case
|
|
75
|
+
case react::RNSScreenReplaceAnimation::Push:
|
|
77
76
|
return RNSScreenReplaceAnimationPush;
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
|
|
81
|
-
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
|
|
82
|
-
(facebook::react::RNSScreenSwipeDirection)swipeDirection
|
|
80
|
+
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:(react::RNSScreenSwipeDirection)swipeDirection
|
|
83
81
|
{
|
|
84
82
|
switch (swipeDirection) {
|
|
85
|
-
case
|
|
83
|
+
case react::RNSScreenSwipeDirection::Horizontal:
|
|
86
84
|
return RNSScreenSwipeDirectionHorizontal;
|
|
87
|
-
case
|
|
85
|
+
case react::RNSScreenSwipeDirection::Vertical:
|
|
88
86
|
return RNSScreenSwipeDirectionVertical;
|
|
89
87
|
}
|
|
90
88
|
}
|
|
91
89
|
|
|
92
|
-
+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:
|
|
93
|
-
(facebook::react::RNSScreenSheetAllowedDetents)allowedDetents
|
|
90
|
+
+ (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:(react::RNSScreenSheetAllowedDetents)allowedDetents
|
|
94
91
|
{
|
|
95
92
|
switch (allowedDetents) {
|
|
96
|
-
case
|
|
93
|
+
case react::RNSScreenSheetAllowedDetents::All:
|
|
97
94
|
return RNSScreenDetentTypeAll;
|
|
98
|
-
case
|
|
95
|
+
case react::RNSScreenSheetAllowedDetents::Large:
|
|
99
96
|
return RNSScreenDetentTypeLarge;
|
|
100
|
-
case
|
|
97
|
+
case react::RNSScreenSheetAllowedDetents::Medium:
|
|
101
98
|
return RNSScreenDetentTypeMedium;
|
|
102
99
|
}
|
|
103
100
|
}
|
|
104
101
|
|
|
105
|
-
+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:
|
|
106
|
-
(facebook::react::RNSScreenSheetLargestUndimmedDetent)detent
|
|
102
|
+
+ (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:(react::RNSScreenSheetLargestUndimmedDetent)detent
|
|
107
103
|
{
|
|
108
104
|
switch (detent) {
|
|
109
|
-
case
|
|
105
|
+
case react::RNSScreenSheetLargestUndimmedDetent::All:
|
|
110
106
|
return RNSScreenDetentTypeAll;
|
|
111
|
-
case
|
|
107
|
+
case react::RNSScreenSheetLargestUndimmedDetent::Large:
|
|
112
108
|
return RNSScreenDetentTypeLarge;
|
|
113
|
-
case
|
|
109
|
+
case react::RNSScreenSheetLargestUndimmedDetent::Medium:
|
|
114
110
|
return RNSScreenDetentTypeMedium;
|
|
115
111
|
}
|
|
116
112
|
}
|
|
117
113
|
|
|
118
114
|
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
|
|
119
|
-
(const
|
|
115
|
+
(const react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance
|
|
120
116
|
{
|
|
121
117
|
return @{
|
|
122
118
|
@"start" : @(gestureResponseDistance.start),
|
|
@@ -127,20 +123,32 @@
|
|
|
127
123
|
}
|
|
128
124
|
|
|
129
125
|
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
130
|
-
(
|
|
126
|
+
(react::RNSSearchBarAutoCapitalize)autoCapitalize
|
|
131
127
|
{
|
|
132
128
|
switch (autoCapitalize) {
|
|
133
|
-
case
|
|
129
|
+
case react::RNSSearchBarAutoCapitalize::Words:
|
|
134
130
|
return UITextAutocapitalizationTypeWords;
|
|
135
|
-
case
|
|
131
|
+
case react::RNSSearchBarAutoCapitalize::Sentences:
|
|
136
132
|
return UITextAutocapitalizationTypeSentences;
|
|
137
|
-
case
|
|
133
|
+
case react::RNSSearchBarAutoCapitalize::Characters:
|
|
138
134
|
return UITextAutocapitalizationTypeAllCharacters;
|
|
139
|
-
case
|
|
135
|
+
case react::RNSSearchBarAutoCapitalize::None:
|
|
140
136
|
return UITextAutocapitalizationTypeNone;
|
|
141
137
|
}
|
|
142
138
|
}
|
|
143
139
|
|
|
140
|
+
+ (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement
|
|
141
|
+
{
|
|
142
|
+
switch (placement) {
|
|
143
|
+
case react::RNSSearchBarPlacement::Stacked:
|
|
144
|
+
return RNSSearchBarPlacementStacked;
|
|
145
|
+
case react::RNSSearchBarPlacement::Automatic:
|
|
146
|
+
return RNSSearchBarPlacementAutomatic;
|
|
147
|
+
case react::RNSSearchBarPlacement::Inline:
|
|
148
|
+
return RNSSearchBarPlacementInline;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
144
152
|
@end
|
|
145
153
|
|
|
146
154
|
#endif // RCT_NEW_ARCH_ENABLED
|
package/ios/RNSEnums.h
CHANGED
|
@@ -63,3 +63,9 @@ typedef NS_ENUM(NSInteger, RNSScreenDetentType) {
|
|
|
63
63
|
RNSScreenDetentTypeLarge,
|
|
64
64
|
RNSScreenDetentTypeAll,
|
|
65
65
|
};
|
|
66
|
+
|
|
67
|
+
typedef NS_ENUM(NSInteger, RNSSearchBarPlacement) {
|
|
68
|
+
RNSSearchBarPlacementAutomatic,
|
|
69
|
+
RNSSearchBarPlacementInline,
|
|
70
|
+
RNSSearchBarPlacementStacked,
|
|
71
|
+
};
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
#import <React/RCTView.h>
|
|
8
8
|
#endif
|
|
9
9
|
|
|
10
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
11
|
+
namespace react = facebook::react;
|
|
12
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
13
|
+
|
|
10
14
|
@interface RNSFullWindowOverlayManager : RCTViewManager
|
|
11
15
|
|
|
12
16
|
@end
|
|
@@ -23,8 +27,8 @@
|
|
|
23
27
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
24
28
|
|
|
25
29
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
|
-
@property (nonatomic)
|
|
27
|
-
@property (nonatomic)
|
|
30
|
+
@property (nonatomic) react::LayoutMetrics oldLayoutMetrics;
|
|
31
|
+
@property (nonatomic) react::LayoutMetrics newLayoutMetrics;
|
|
28
32
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
29
33
|
|
|
30
34
|
@end
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
|
|
16
16
|
@implementation RNSFullWindowOverlayContainer
|
|
17
17
|
|
|
18
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
19
|
+
{
|
|
20
|
+
if (self = [super initWithFrame:frame]) {
|
|
21
|
+
self.accessibilityViewIsModal = YES;
|
|
22
|
+
}
|
|
23
|
+
return self;
|
|
24
|
+
}
|
|
25
|
+
|
|
18
26
|
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
|
|
19
27
|
{
|
|
20
28
|
for (UIView *view in [self subviews]) {
|
|
@@ -74,7 +82,7 @@
|
|
|
74
82
|
- (instancetype)init
|
|
75
83
|
{
|
|
76
84
|
if (self = [super init]) {
|
|
77
|
-
static const auto defaultProps = std::make_shared<const
|
|
85
|
+
static const auto defaultProps = std::make_shared<const react::RNSFullWindowOverlayProps>();
|
|
78
86
|
_props = defaultProps;
|
|
79
87
|
[self _initCommon];
|
|
80
88
|
}
|
|
@@ -127,6 +135,9 @@
|
|
|
127
135
|
[_touchHandler detachFromView:_container];
|
|
128
136
|
}
|
|
129
137
|
} else {
|
|
138
|
+
if (_container != nil) {
|
|
139
|
+
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, _container);
|
|
140
|
+
}
|
|
130
141
|
if (_touchHandler == nil) {
|
|
131
142
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
132
143
|
_touchHandler = [RCTSurfaceTouchHandler new];
|
|
@@ -151,10 +162,9 @@
|
|
|
151
162
|
}
|
|
152
163
|
}
|
|
153
164
|
|
|
154
|
-
+ (
|
|
165
|
+
+ (react::ComponentDescriptorProvider)componentDescriptorProvider
|
|
155
166
|
{
|
|
156
|
-
return
|
|
157
|
-
facebook::react::RNSFullWindowOverlayComponentDescriptor>();
|
|
167
|
+
return react::concreteComponentDescriptorProvider<react::RNSFullWindowOverlayComponentDescriptor>();
|
|
158
168
|
}
|
|
159
169
|
|
|
160
170
|
- (void)prepareForRecycle
|
|
@@ -182,8 +192,8 @@
|
|
|
182
192
|
[childComponentView removeFromSuperview];
|
|
183
193
|
}
|
|
184
194
|
|
|
185
|
-
- (void)updateLayoutMetrics:(
|
|
186
|
-
oldLayoutMetrics:(
|
|
195
|
+
- (void)updateLayoutMetrics:(react::LayoutMetrics const &)layoutMetrics
|
|
196
|
+
oldLayoutMetrics:(react::LayoutMetrics const &)oldLayoutMetrics
|
|
187
197
|
{
|
|
188
198
|
CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
|
|
189
199
|
_reactFrame = frame;
|
package/ios/RNSScreen.h
CHANGED
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
#import <React/RCTViewComponentView.h>
|
|
9
9
|
#else
|
|
10
10
|
#import <React/RCTView.h>
|
|
11
|
-
#endif
|
|
11
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
12
12
|
|
|
13
13
|
NS_ASSUME_NONNULL_BEGIN
|
|
14
14
|
|
|
15
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
16
|
+
namespace react = facebook::react;
|
|
17
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
18
|
+
|
|
15
19
|
@interface RCTConvert (RNSScreen)
|
|
16
20
|
|
|
17
21
|
+ (RNSScreenStackPresentation)RNSScreenStackPresentation:(id)json;
|
|
@@ -27,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
27
31
|
|
|
28
32
|
@class RNSScreenView;
|
|
29
33
|
|
|
30
|
-
@interface RNSScreen : UIViewController <
|
|
34
|
+
@interface RNSScreen : UIViewController <RNSViewControllerDelegate>
|
|
31
35
|
|
|
32
36
|
- (instancetype)initWithView:(UIView *)view;
|
|
33
37
|
- (UIViewController *)findChildVCForConfigAndTrait:(RNSWindowTrait)trait includingModals:(BOOL)includingModals;
|
|
@@ -40,6 +44,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
40
44
|
|
|
41
45
|
@end
|
|
42
46
|
|
|
47
|
+
@class RNSScreenStackHeaderConfig;
|
|
48
|
+
|
|
43
49
|
@interface RNSScreenView :
|
|
44
50
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
45
51
|
RCTViewComponentView
|
|
@@ -86,9 +92,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
86
92
|
|
|
87
93
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
88
94
|
// we recreate the behavior of `reactSetFrame` on new architecture
|
|
89
|
-
@property (nonatomic)
|
|
90
|
-
@property (nonatomic)
|
|
91
|
-
@property (weak, nonatomic)
|
|
95
|
+
@property (nonatomic) react::LayoutMetrics oldLayoutMetrics;
|
|
96
|
+
@property (nonatomic) react::LayoutMetrics newLayoutMetrics;
|
|
97
|
+
@property (weak, nonatomic) RNSScreenStackHeaderConfig *config;
|
|
98
|
+
@property (nonatomic, readonly) BOOL hasHeaderConfig;
|
|
92
99
|
#else
|
|
93
100
|
@property (nonatomic, copy) RCTDirectEventBlock onAppear;
|
|
94
101
|
@property (nonatomic, copy) RCTDirectEventBlock onDisappear;
|
|
@@ -97,6 +104,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
97
104
|
@property (nonatomic, copy) RCTDirectEventBlock onWillDisappear;
|
|
98
105
|
@property (nonatomic, copy) RCTDirectEventBlock onNativeDismissCancelled;
|
|
99
106
|
@property (nonatomic, copy) RCTDirectEventBlock onTransitionProgress;
|
|
107
|
+
@property (nonatomic, copy) RCTDirectEventBlock onGestureCancel;
|
|
100
108
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
101
109
|
|
|
102
110
|
- (void)notifyFinishTransitioning;
|
|
@@ -108,12 +116,16 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
108
116
|
- (void)notifyDisappear;
|
|
109
117
|
- (void)updateBounds;
|
|
110
118
|
- (void)notifyDismissedWithCount:(int)dismissCount;
|
|
119
|
+
- (instancetype)initWithFrame:(CGRect)frame;
|
|
111
120
|
#endif
|
|
112
121
|
|
|
113
122
|
- (void)notifyTransitionProgress:(double)progress closing:(BOOL)closing goingForward:(BOOL)goingForward;
|
|
114
123
|
- (void)notifyDismissCancelledWithDismissCount:(int)dismissCount;
|
|
115
124
|
- (BOOL)isModal;
|
|
116
125
|
|
|
126
|
+
/// Looks for header configuration in instance's `reactSubviews` and returns it. If not present returns `nil`.
|
|
127
|
+
- (RNSScreenStackHeaderConfig *_Nullable)findHeaderConfig;
|
|
128
|
+
|
|
117
129
|
@end
|
|
118
130
|
|
|
119
131
|
@interface UIView (RNSScreen)
|