react-native-screens 4.19.0-nightly-20251022-4fcc5e7e3 → 4.19.0-nightly-20251024-ea2a0334f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +7 -0
  3. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +7 -0
  4. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +8 -0
  5. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +3 -0
  6. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +1 -0
  7. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +3 -0
  8. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +1 -0
  9. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +3 -0
  10. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +1 -0
  11. package/ios/RNSScreen.h +1 -0
  12. package/ios/RNSScreen.mm +12 -1
  13. package/ios/RNSScreenStack.mm +2 -1
  14. package/ios/RNSScreenStackHeaderConfig.h +1 -0
  15. package/ios/RNSScreenStackHeaderConfig.mm +11 -1
  16. package/ios/RNSScreenStackHeaderSubview.h +1 -0
  17. package/ios/RNSScreenStackHeaderSubview.mm +11 -1
  18. package/ios/conversion/RNSConversions-SplitView.mm +19 -0
  19. package/ios/conversion/RNSConversions.h +5 -0
  20. package/ios/gamma/split-view/RNSSplitViewAppearanceApplicator.swift +1 -0
  21. package/ios/gamma/split-view/RNSSplitViewHostComponentView.h +3 -0
  22. package/ios/gamma/split-view/RNSSplitViewHostComponentView.mm +12 -0
  23. package/ios/gamma/split-view/RNSSplitViewScreenComponentView.mm +0 -18
  24. package/ios/gamma/split-view/RNSSplitViewScreenController.swift +5 -119
  25. package/lib/commonjs/components/Screen.js +3 -1
  26. package/lib/commonjs/components/Screen.js.map +1 -1
  27. package/lib/commonjs/components/ScreenStackHeaderConfig.js +9 -2
  28. package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -1
  29. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -1
  30. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  31. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  32. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  33. package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -1
  34. package/lib/commonjs/flags.js +44 -6
  35. package/lib/commonjs/flags.js.map +1 -1
  36. package/lib/module/components/Screen.js +3 -1
  37. package/lib/module/components/Screen.js.map +1 -1
  38. package/lib/module/components/ScreenStackHeaderConfig.js +9 -2
  39. package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -1
  40. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -1
  41. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  42. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  43. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
  44. package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -1
  45. package/lib/module/flags.js +44 -6
  46. package/lib/module/flags.js.map +1 -1
  47. package/lib/typescript/components/Screen.d.ts.map +1 -1
  48. package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -1
  49. package/lib/typescript/components/gamma/split-view/SplitViewHost.types.d.ts +23 -0
  50. package/lib/typescript/components/gamma/split-view/SplitViewHost.types.d.ts.map +1 -1
  51. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +1 -0
  52. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -1
  53. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +1 -0
  54. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -1
  55. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +1 -0
  56. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
  57. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -0
  58. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  59. package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts +2 -0
  60. package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts.map +1 -1
  61. package/lib/typescript/flags.d.ts +3 -0
  62. package/lib/typescript/flags.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/components/Screen.tsx +5 -1
  65. package/src/components/ScreenStackHeaderConfig.tsx +22 -1
  66. package/src/components/gamma/split-view/SplitViewHost.types.ts +24 -0
  67. package/src/fabric/ModalScreenNativeComponent.ts +1 -0
  68. package/src/fabric/ScreenNativeComponent.ts +1 -0
  69. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +1 -0
  70. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +1 -0
  71. package/src/fabric/gamma/SplitViewHostNativeComponent.ts +6 -0
  72. package/src/flags.ts +72 -11
package/README.md CHANGED
@@ -233,6 +233,7 @@ Use `ScrollView` with prop `contentInsetAdjustmentBehavior=“automatic”` as a
233
233
  | [Memory leak while moving from one screen to another in the same stack](https://github.com/software-mansion/react-native-screens/issues/843) | [explanation](https://github.com/software-mansion/react-native-screens/issues/843#issuecomment-832034119) |
234
234
  | [LargeHeader stays small after pop/goBack/swipe gesture on iOS 14+](https://github.com/software-mansion/react-native-screens/issues/649) | [potential fix](https://github.com/software-mansion/react-native-screens/issues/649#issuecomment-712199895) |
235
235
  | [`onScroll` and `onMomentumScrollEnd` of previous screen triggered in bottom tabs](https://github.com/software-mansion/react-native-screens/issues/1183) | [explanation](https://github.com/software-mansion/react-native-screens/issues/1183#issuecomment-949313111) |
236
+ | [SplitView doesn't clear the blur under primary column after switching to color with `opacity: 0`](https://github.com/software-mansion/react-native-screens/issues/3327) | [workarounds](https://github.com/software-mansion/react-native-screens/issues/3327#issuecomment-3432488799) |
236
237
 
237
238
  ## Contributing
238
239
 
@@ -205,6 +205,13 @@ class ScreenStackHeaderConfigViewManager :
205
205
  config.setDirection(direction)
206
206
  }
207
207
 
208
+ // synchronousShadowStateUpdatesEnabled is not available on Android atm,
209
+ // however we must override their setters
210
+ override fun setSynchronousShadowStateUpdatesEnabled(
211
+ config: ScreenStackHeaderConfig?,
212
+ value: Boolean,
213
+ ) = Unit
214
+
208
215
  override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> =
209
216
  hashMapOf(
210
217
  HeaderAttachedEvent.EVENT_NAME to hashMapOf("registrationName" to "onAttached"),
@@ -50,6 +50,13 @@ class ScreenStackHeaderSubviewManager :
50
50
  Log.w("[RNScreens]", "hidesSharedBackground prop is not available on Android")
51
51
  }
52
52
 
53
+ // synchronousShadowStateUpdatesEnabled is not available on Android atm,
54
+ // however we must override their setters
55
+ override fun setSynchronousShadowStateUpdatesEnabled(
56
+ view: ScreenStackHeaderSubview?,
57
+ value: Boolean,
58
+ ) = Unit
59
+
53
60
  override fun updateState(
54
61
  view: ScreenStackHeaderSubview,
55
62
  props: ReactStylesDiffMap?,
@@ -268,6 +268,7 @@ open class ScreenViewManager :
268
268
  view?.sheetElevation = value.toFloat()
269
269
  }
270
270
 
271
+ // mark: iOS-only
271
272
  // these props are not available on Android, however we must override their setters
272
273
  override fun setFullScreenSwipeEnabled(
273
274
  view: Screen?,
@@ -334,6 +335,13 @@ open class ScreenViewManager :
334
335
  value: String?,
335
336
  ) = Unit
336
337
 
338
+ override fun setSynchronousShadowStateUpdatesEnabled(
339
+ view: Screen?,
340
+ value: Boolean,
341
+ ) = Unit
342
+
343
+ // END mark: iOS-only
344
+
337
345
  @ReactProp(name = "sheetAllowedDetents")
338
346
  override fun setSheetAllowedDetents(
339
347
  view: Screen,
@@ -134,6 +134,9 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManager<
134
134
  case "topScrollEdgeEffect":
135
135
  mViewManager.setTopScrollEdgeEffect(view, (String) value);
136
136
  break;
137
+ case "synchronousShadowStateUpdatesEnabled":
138
+ mViewManager.setSynchronousShadowStateUpdatesEnabled(view, value == null ? false : (boolean) value);
139
+ break;
137
140
  default:
138
141
  super.setProperty(view, propName, value);
139
142
  }
@@ -52,4 +52,5 @@ public interface RNSScreenManagerInterface<T extends View> {
52
52
  void setLeftScrollEdgeEffect(T view, @Nullable String value);
53
53
  void setRightScrollEdgeEffect(T view, @Nullable String value);
54
54
  void setTopScrollEdgeEffect(T view, @Nullable String value);
55
+ void setSynchronousShadowStateUpdatesEnabled(T view, boolean value);
55
56
  }
@@ -115,6 +115,9 @@ public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends
115
115
  case "headerRightBarButtonItems":
116
116
  mViewManager.setHeaderRightBarButtonItems(view, (ReadableArray) value);
117
117
  break;
118
+ case "synchronousShadowStateUpdatesEnabled":
119
+ mViewManager.setSynchronousShadowStateUpdatesEnabled(view, value == null ? false : (boolean) value);
120
+ break;
118
121
  default:
119
122
  super.setProperty(view, propName, value);
120
123
  }
@@ -45,4 +45,5 @@ public interface RNSScreenStackHeaderConfigManagerInterface<T extends View> {
45
45
  void setTopInsetEnabled(T view, boolean value);
46
46
  void setHeaderLeftBarButtonItems(T view, @Nullable ReadableArray value);
47
47
  void setHeaderRightBarButtonItems(T view, @Nullable ReadableArray value);
48
+ void setSynchronousShadowStateUpdatesEnabled(T view, boolean value);
48
49
  }
@@ -29,6 +29,9 @@ public class RNSScreenStackHeaderSubviewManagerDelegate<T extends View, U extend
29
29
  case "hidesSharedBackground":
30
30
  mViewManager.setHidesSharedBackground(view, value == null ? false : (boolean) value);
31
31
  break;
32
+ case "synchronousShadowStateUpdatesEnabled":
33
+ mViewManager.setSynchronousShadowStateUpdatesEnabled(view, value == null ? false : (boolean) value);
34
+ break;
32
35
  default:
33
36
  super.setProperty(view, propName, value);
34
37
  }
@@ -16,4 +16,5 @@ import androidx.annotation.Nullable;
16
16
  public interface RNSScreenStackHeaderSubviewManagerInterface<T extends View> {
17
17
  void setType(T view, @Nullable String value);
18
18
  void setHidesSharedBackground(T view, boolean value);
19
+ void setSynchronousShadowStateUpdatesEnabled(T view, boolean value);
19
20
  }
package/ios/RNSScreen.h CHANGED
@@ -94,6 +94,7 @@ namespace react = facebook::react;
94
94
  @property (nonatomic) RNSScrollEdgeEffect leftScrollEdgeEffect;
95
95
  @property (nonatomic) RNSScrollEdgeEffect rightScrollEdgeEffect;
96
96
  @property (nonatomic) RNSScrollEdgeEffect topScrollEdgeEffect;
97
+ @property (nonatomic, readwrite) BOOL synchronousShadowStateUpdatesEnabled;
97
98
 
98
99
  @property (nonatomic, retain) NSNumber *transitionDuration;
99
100
  @property (nonatomic, readonly) BOOL dismissed;
package/ios/RNSScreen.mm CHANGED
@@ -12,6 +12,7 @@
12
12
  #import <React/RCTRootComponentView.h>
13
13
  #import <React/RCTScrollViewComponentView.h>
14
14
  #import <React/RCTSurfaceTouchHandler.h>
15
+ #import <cxxreact/ReactNativeVersion.h>
15
16
  #import <react/renderer/components/rnscreens/EventEmitters.h>
16
17
  #import <react/renderer/components/rnscreens/Props.h>
17
18
  #import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
@@ -188,7 +189,15 @@ RNS_IGNORE_SUPER_CALL_END
188
189
  : [_controller calculateHeaderHeightIsModal:self.isPresentedAsNativeModal];
189
190
 
190
191
  auto newState = react::RNSScreenState{RCTSizeFromCGSize(self.bounds.size), {0, effectiveContentOffsetY}};
191
- _state->updateState(std::move(newState));
192
+
193
+ _state->updateState(
194
+ std::move(newState)
195
+ #if REACT_NATIVE_VERSION_MINOR >= 82
196
+ ,
197
+ _synchronousShadowStateUpdatesEnabled ? facebook::react::EventQueue::UpdateMode::unstable_Immediate
198
+ : facebook::react::EventQueue::UpdateMode::Asynchronous
199
+ #endif
200
+ );
192
201
 
193
202
  // TODO: Requesting layout on every layout is wrong. We should look for a way to get rid of this.
194
203
  UINavigationController *navctr = _controller.navigationController;
@@ -1372,6 +1381,8 @@ RNS_IGNORE_SUPER_CALL_END
1372
1381
 
1373
1382
  [self setSwipeDirection:[RNSConvert RNSScreenSwipeDirectionFromCppEquivalent:newScreenProps.swipeDirection]];
1374
1383
 
1384
+ [self setSynchronousShadowStateUpdatesEnabled:newScreenProps.synchronousShadowStateUpdatesEnabled];
1385
+
1375
1386
  #if !TARGET_OS_TV
1376
1387
  if (newScreenProps.statusBarHidden != oldScreenProps.statusBarHidden) {
1377
1388
  [self setStatusBarHidden:newScreenProps.statusBarHidden];
@@ -1245,7 +1245,8 @@ RNS_IGNORE_SUPER_CALL_END
1245
1245
  BOOL isBackGesture = [panGestureRecognizer translationInView:panGestureRecognizer.view].x > 0 &&
1246
1246
  _controller.viewControllers.count > 1;
1247
1247
 
1248
- if (gestureRecognizer.state == UIGestureRecognizerStateBegan || isBackGesture) {
1248
+ if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan ||
1249
+ gestureRecognizer.state == UIGestureRecognizerStateBegan || isBackGesture) {
1249
1250
  return NO;
1250
1251
  }
1251
1252
 
@@ -65,6 +65,7 @@ NS_ASSUME_NONNULL_BEGIN
65
65
  @property (nonatomic) RCTDirectEventBlock onPressHeaderBarButtonItem;
66
66
  @property (nonatomic) RCTDirectEventBlock onPressHeaderBarButtonMenuItem;
67
67
  #endif
68
+ @property (nonatomic, readwrite) BOOL synchronousShadowStateUpdatesEnabled;
68
69
 
69
70
  NS_ASSUME_NONNULL_END
70
71
 
@@ -5,6 +5,7 @@
5
5
  #import <React/RCTMountingTransactionObserving.h>
6
6
  #import <React/UIView+React.h>
7
7
  #import <ReactCommon/TurboModuleUtils.h>
8
+ #import <cxxreact/ReactNativeVersion.h>
8
9
  #import <react/renderer/components/image/ImageProps.h>
9
10
  #import <react/renderer/components/rnscreens/ComponentDescriptors.h>
10
11
  #import <react/renderer/components/rnscreens/EventEmitters.h>
@@ -233,7 +234,14 @@ RNS_IGNORE_SUPER_CALL_END
233
234
 
234
235
  if (newState != _lastSendState) {
235
236
  _lastSendState = newState;
236
- _state->updateState(std::move(newState));
237
+ _state->updateState(
238
+ std::move(newState)
239
+ #if REACT_NATIVE_VERSION_MINOR >= 82
240
+ ,
241
+ _synchronousShadowStateUpdatesEnabled ? facebook::react::EventQueue::UpdateMode::unstable_Immediate
242
+ : facebook::react::EventQueue::UpdateMode::Asynchronous
243
+ #endif
244
+ );
237
245
  }
238
246
  }
239
247
 
@@ -1178,6 +1186,8 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
1178
1186
  [self layoutNavigationControllerView];
1179
1187
  }
1180
1188
 
1189
+ _synchronousShadowStateUpdatesEnabled = newScreenProps.synchronousShadowStateUpdatesEnabled;
1190
+
1181
1191
  _initialPropsSet = YES;
1182
1192
  _props = std::static_pointer_cast<react::RNSScreenStackHeaderConfigProps const>(props);
1183
1193
 
@@ -17,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
17
17
  #endif
18
18
 
19
19
  @property (nonatomic) RNSScreenStackHeaderSubviewType type;
20
+ @property (nonatomic, readwrite) BOOL synchronousShadowStateUpdatesEnabled;
20
21
 
21
22
  @property (nonatomic, weak) UIView *reactSuperview;
22
23
 
@@ -4,6 +4,7 @@
4
4
  #import "RNSScreenStackHeaderConfig.h"
5
5
 
6
6
  #ifdef RCT_NEW_ARCH_ENABLED
7
+ #import <cxxreact/ReactNativeVersion.h>
7
8
  #import <react/renderer/components/rnscreens/ComponentDescriptors.h>
8
9
  #import <react/renderer/components/rnscreens/EventEmitters.h>
9
10
  #import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
@@ -99,7 +100,15 @@ namespace react = facebook::react;
99
100
  if (!CGRectEqualToRect(frame, _lastScheduledFrame)) {
100
101
  auto newState =
101
102
  react::RNSScreenStackHeaderSubviewState(RCTSizeFromCGSize(frame.size), RCTPointFromCGPoint(frame.origin));
102
- _state->updateState(std::move(newState));
103
+ _state->updateState(
104
+ std::move(newState)
105
+ #if REACT_NATIVE_VERSION_MINOR >= 82
106
+ ,
107
+ _synchronousShadowStateUpdatesEnabled ? facebook::react::EventQueue::UpdateMode::unstable_Immediate
108
+ : facebook::react::EventQueue::UpdateMode::Asynchronous
109
+ #endif
110
+ );
111
+
103
112
  _lastScheduledFrame = frame;
104
113
  }
105
114
  }
@@ -140,6 +149,7 @@ namespace react = facebook::react;
140
149
 
141
150
  [self setType:[RNSConvert RNSScreenStackHeaderSubviewTypeFromCppEquivalent:newHeaderSubviewProps.type]];
142
151
  [self setHidesSharedBackground:newHeaderSubviewProps.hidesSharedBackground];
152
+ [self setSynchronousShadowStateUpdatesEnabled:newHeaderSubviewProps.synchronousShadowStateUpdatesEnabled];
143
153
  [super updateProps:props oldProps:oldProps];
144
154
  }
145
155
 
@@ -60,6 +60,25 @@ UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
60
60
  }
61
61
  }
62
62
 
63
+ #if !TARGET_OS_TV
64
+ UISplitViewControllerBackgroundStyle SplitViewPrimaryBackgroundStyleFromHostProp(
65
+ facebook::react::RNSSplitViewHostPrimaryBackgroundStyle primaryBackgroundStyle)
66
+ {
67
+ using enum facebook::react::RNSSplitViewHostPrimaryBackgroundStyle;
68
+
69
+ switch (primaryBackgroundStyle) {
70
+ case None:
71
+ return UISplitViewControllerBackgroundStyleNone;
72
+ case Sidebar:
73
+ return UISplitViewControllerBackgroundStyleSidebar;
74
+ case Default:
75
+ default:
76
+ UISplitViewController *tempSplitVC = [[UISplitViewController alloc] init];
77
+ return tempSplitVC.primaryBackgroundStyle;
78
+ }
79
+ }
80
+ #endif // !TARGET_OS_TV
81
+
63
82
  UISplitViewControllerDisplayModeButtonVisibility SplitViewDisplayModeButtonVisibilityFromHostProp(
64
83
  react::RNSSplitViewHostDisplayModeButtonVisibility displayModeButtonVisibility)
65
84
  {
@@ -94,6 +94,11 @@ UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(react::RNSSpli
94
94
  UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
95
95
  react::RNSSplitViewHostPreferredDisplayMode displayMode);
96
96
 
97
+ #if !TARGET_OS_TV
98
+ UISplitViewControllerBackgroundStyle SplitViewPrimaryBackgroundStyleFromHostProp(
99
+ react::RNSSplitViewHostPrimaryBackgroundStyle primaryBackgroundStyle);
100
+ #endif // !TARGET_OS_TV
101
+
97
102
  UISplitViewControllerDisplayModeButtonVisibility SplitViewDisplayModeButtonVisibilityFromHostProp(
98
103
  react::RNSSplitViewHostDisplayModeButtonVisibility displayModeButtonVisibility);
99
104
 
@@ -65,6 +65,7 @@ class RNSSplitViewAppearanceApplicator {
65
65
  // Step 1 - general settings
66
66
  splitViewController.displayModeButtonVisibility = splitView.displayModeButtonVisibility
67
67
  splitViewController.preferredSplitBehavior = splitView.preferredSplitBehavior
68
+ splitViewController.primaryBackgroundStyle = splitView.primaryBackgroundStyle
68
69
  splitViewController.presentsWithGesture = splitView.presentsWithGesture
69
70
  splitViewController.primaryEdge = splitView.primaryEdge
70
71
  splitViewController.showsSecondaryOnlyButton = splitView.showSecondaryToggleButton
@@ -35,6 +35,9 @@ NS_ASSUME_NONNULL_BEGIN
35
35
  @property (nonatomic, readonly) UISplitViewControllerPrimaryEdge primaryEdge;
36
36
  @property (nonatomic, readonly) UISplitViewControllerDisplayMode preferredDisplayMode;
37
37
  @property (nonatomic, readonly) UISplitViewControllerDisplayModeButtonVisibility displayModeButtonVisibility;
38
+ #if !TARGET_OS_TV
39
+ @property (nonatomic, readonly) UISplitViewControllerBackgroundStyle primaryBackgroundStyle;
40
+ #endif // !TARGET_OS_TV
38
41
  @property (nonatomic, readonly) BOOL presentsWithGesture;
39
42
  @property (nonatomic, readonly) BOOL showSecondaryToggleButton;
40
43
  @property (nonatomic, readonly) BOOL showInspector;
@@ -64,6 +64,10 @@ static const CGFloat epsilon = 1e-6;
64
64
  _primaryEdge = UISplitViewControllerPrimaryEdgeLeading;
65
65
  _preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic;
66
66
  _displayModeButtonVisibility = UISplitViewControllerDisplayModeButtonVisibilityAutomatic;
67
+ #if !TARGET_OS_TV
68
+ UISplitViewController *tempSplitVC = [[UISplitViewController alloc] init];
69
+ _primaryBackgroundStyle = tempSplitVC.primaryBackgroundStyle;
70
+ #endif // !TARGET_OS_TV
67
71
  _presentsWithGesture = true;
68
72
  _showSecondaryToggleButton = false;
69
73
  _showInspector = false;
@@ -238,6 +242,14 @@ RNS_IGNORE_SUPER_CALL_END
238
242
  rnscreens::conversion::SplitViewPreferredDisplayModeFromHostProp(newComponentProps.preferredDisplayMode);
239
243
  }
240
244
 
245
+ #if !TARGET_OS_TV
246
+ if (oldComponentProps.primaryBackgroundStyle != newComponentProps.primaryBackgroundStyle) {
247
+ _needsSplitViewAppearanceUpdate = true;
248
+ _primaryBackgroundStyle =
249
+ rnscreens::conversion::SplitViewPrimaryBackgroundStyleFromHostProp(newComponentProps.primaryBackgroundStyle);
250
+ }
251
+ #endif // !TARGET_OS_TV
252
+
241
253
  if (oldComponentProps.presentsWithGesture != newComponentProps.presentsWithGesture) {
242
254
  _needsSplitViewAppearanceUpdate = true;
243
255
  _presentsWithGesture = newComponentProps.presentsWithGesture;
@@ -167,24 +167,6 @@ namespace react = facebook::react;
167
167
  return react::concreteComponentDescriptorProvider<react::RNSSplitViewScreenComponentDescriptor>();
168
168
  }
169
169
 
170
- - (void)updateLayoutMetrics:(const facebook::react::LayoutMetrics &)layoutMetrics
171
- oldLayoutMetrics:(const facebook::react::LayoutMetrics &)oldLayoutMetrics
172
- {
173
- // We're tracking presentation layer updates in the RNSSplitViewScreen.
174
- // There's a problem with SplitView that it sets the frame to the end value of the animation right after the animation
175
- // begins. Because of that, the size of our component is desynchronizing easily and we're blocking a communication
176
- // between native and shadow layout for a while until the transition ends. For the following case when we want to make
177
- // a transition from width A to B:
178
- // 1. size 'A' is set on ShadowNode
179
- // 2. animation for the transition starts
180
- // 3. `setFrame` is called with the width 'B'
181
- // 4. in the same time, we want to track updates and treat intermediate value A' indicated from the presentation layer
182
- // as our source of truth
183
- if (![_controller isViewSizeTransitionInProgress]) {
184
- [super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
185
- }
186
- }
187
-
188
170
  + (BOOL)shouldBeRecycled
189
171
  {
190
172
  // There won't be tens of instances of this component usually & it's easier for now.
@@ -18,8 +18,6 @@ public class RNSSplitViewScreenController: UIViewController {
18
18
  return splitViewScreenComponentView.reactEventEmitter()
19
19
  }
20
20
 
21
- private var viewSizeTransitionState: ViewSizeTransitionState? = nil
22
-
23
21
  @objc public required init(splitViewScreenComponentView: RNSSplitViewScreenComponentView) {
24
22
  self.splitViewScreenComponentView = splitViewScreenComponentView
25
23
  super.init(nibName: nil, bundle: nil)
@@ -62,18 +60,6 @@ public class RNSSplitViewScreenController: UIViewController {
62
60
  return self.splitViewController is RNSSplitViewHostController
63
61
  }
64
62
 
65
- ///
66
- /// @brief Determines whether an SplitView animated transition is currently running
67
- ///
68
- /// Used to differentiate favor frames from the presentation layer over view's frame .
69
- ///
70
- /// @return true if the transition is running, false otherwise.
71
- ///
72
- @objc
73
- public func isViewSizeTransitionInProgress() -> Bool {
74
- return viewSizeTransitionState != nil
75
- }
76
-
77
63
  // MARK: Signals
78
64
 
79
65
  @objc
@@ -83,55 +69,6 @@ public class RNSSplitViewScreenController: UIViewController {
83
69
 
84
70
  // MARK: Layout
85
71
 
86
- ///
87
- /// @brief This method is overridden to extract the value to which we're transitioning
88
- /// and attach the DisplayLink to track frame updates on the presentation layer.
89
- ///
90
- public override func viewWillTransition(
91
- to size: CGSize,
92
- with coordinator: any UIViewControllerTransitionCoordinator
93
- ) {
94
- super.viewWillTransition(to: size, with: coordinator)
95
-
96
- viewSizeTransitionState = ViewSizeTransitionState()
97
-
98
- coordinator.animate(
99
- alongsideTransition: { [weak self] context in
100
- guard let self = self else { return }
101
- guard let viewSizeTransitionState = self.viewSizeTransitionState else { return }
102
-
103
- if viewSizeTransitionState.displayLink == nil {
104
- viewSizeTransitionState.setupDisplayLink(
105
- forTarget: self, selector: #selector(trackTransitionProgress))
106
- }
107
- },
108
- completion: { [weak self] context in
109
- guard let self = self else { return }
110
- self.cleanupViewSizeTransitionState()
111
- // After the animation completion, ensure that ShadowTree state
112
- // is calculated relatively to the ancestor's frame by requesting
113
- // the state update.
114
- self.updateShadowTreeState()
115
- })
116
- }
117
-
118
- private func cleanupViewSizeTransitionState() {
119
- viewSizeTransitionState?.invalidate()
120
- viewSizeTransitionState = nil
121
- }
122
-
123
- ///
124
- /// @brief This method is responsible for tracking animation frames and requests layout
125
- /// which will synchronize ShadowNode size with the animation frame size.
126
- ///
127
- @objc
128
- private func trackTransitionProgress() {
129
- if let currentFrame = view.layer.presentation()?.frame {
130
- viewSizeTransitionState?.lastViewPresentationFrame = currentFrame
131
- updateShadowTreeState()
132
- }
133
- }
134
-
135
72
  @objc
136
73
  public override func viewDidLayoutSubviews() {
137
74
  super.viewDidLayoutSubviews()
@@ -146,8 +83,6 @@ public class RNSSplitViewScreenController: UIViewController {
146
83
  /// Differentiates cases when we're in the Host hierarchy to calculate frame relatively
147
84
  /// to the Host view from the modal case where we're passing absolute layout metrics to the ShadowNode.
148
85
  ///
149
- /// Prefers to apply dynamic updates from the presentation layer if the transition is in progress.
150
- ///
151
86
  private func updateShadowTreeState() {
152
87
  // For modals, which are presented outside the SplitViewHost subtree (and RN hierarchy),
153
88
  // we're attaching our touch handler and we don't need to apply any offset corrections,
@@ -163,48 +98,19 @@ public class RNSSplitViewScreenController: UIViewController {
163
98
  "[RNScreens] Expected to find RNSSplitViewHost component for RNSSplitViewScreen component"
164
99
  )
165
100
 
166
- // If the resize animation is currently running, we prefer to apply dynamic updates,
167
- // based on the results from the presentation layer
168
- // which is read from `trackTransitionProgress` method.
169
- if let lastViewPresentationFrame = viewSizeTransitionState?.lastViewPresentationFrame,
170
- !lastViewPresentationFrame.isNull
171
- {
172
- shadowStateProxy.updateShadowState(
173
- ofComponent: splitViewScreenComponentView, withFrame: lastViewPresentationFrame,
174
- inContextOfAncestorView: ancestorView!)
175
- return
176
- }
177
-
178
- // There might be the case, when transition is about to start and in the meantime,
179
- // sth else is triggering frame update relatively to the parent. As we know
180
- // that dynamic updates from the presentation layer are coming, we're blocking this
181
- // to prevent interrupting with the frames that are less important for us.
182
- // This works fine, because after the animation completion, we're sending the last update
183
- // which is compatible with the frame which would be calculated relatively to the ancestor here.
184
- if !isViewSizeTransitionInProgress() {
185
- shadowStateProxy.updateShadowState(
186
- ofComponent: splitViewScreenComponentView, inContextOfAncestorView: ancestorView)
187
- }
101
+ shadowStateProxy.updateShadowState(
102
+ ofComponent: splitViewScreenComponentView, inContextOfAncestorView: ancestorView)
188
103
  }
189
104
 
190
105
  ///
191
106
  /// @brief Request ShadowNode state update when the SplitView screen frame origin has changed.
192
107
  ///
193
- /// If there's a transition in progress, this function is ignored as we prefer to apply updates
194
- /// that are dynamically coming from the presentation layer, rather than reading the frame, because
195
- /// view's frame is set to the target value at the begining of the transition.
196
- ///
197
108
  /// @param splitViewController The UISplitViewController whose layout positioning changed, represented by RNSSplitViewHostController.
198
109
  ///
199
110
  func columnPositioningDidChangeIn(splitViewController: UISplitViewController) {
200
- // During the transition, we're listening for the animation
201
- // frame updates on the presentation layer and we're
202
- // treating these updates as the source of truth
203
- if !isViewSizeTransitionInProgress() {
204
- shadowStateProxy.updateShadowState(
205
- ofComponent: splitViewScreenComponentView, inContextOfAncestorView: splitViewController.view
206
- )
207
- }
111
+ shadowStateProxy.updateShadowState(
112
+ ofComponent: splitViewScreenComponentView, inContextOfAncestorView: splitViewController.view
113
+ )
208
114
  }
209
115
 
210
116
  // MARK: Events
@@ -237,23 +143,3 @@ extension RNSSplitViewScreenController: RNSFrameCorrectionProvider {
237
143
  self.splitViewScreenComponentView.unregister(fromFrameCorrection: view)
238
144
  }
239
145
  }
240
-
241
- private class ViewSizeTransitionState {
242
- public var displayLink: CADisplayLink?
243
- public var lastViewPresentationFrame: CGRect = CGRect.null
244
-
245
- public func setupDisplayLink(forTarget target: Any, selector sel: Selector) {
246
- if displayLink != nil {
247
- displayLink?.invalidate()
248
- }
249
-
250
- displayLink = CADisplayLink(target: target, selector: sel)
251
- displayLink!.add(to: .main, forMode: .common)
252
- }
253
-
254
- public func invalidate() {
255
- displayLink?.invalidate()
256
- displayLink = nil
257
- lastViewPresentationFrame = CGRect.null
258
- }
259
- }
@@ -15,6 +15,7 @@ var _ModalScreenNativeComponent = _interopRequireDefault(require("../fabric/Moda
15
15
  var _usePrevious = require("./helpers/usePrevious");
16
16
  var _sheet = require("./helpers/sheet");
17
17
  var _utils = require("../utils");
18
+ var _flags = _interopRequireDefault(require("../flags"));
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
20
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // Native components
20
21
  const AnimatedNativeScreen = _reactNative.Animated.createAnimatedComponent(_ScreenNativeComponent.default);
@@ -176,7 +177,8 @@ const InnerScreen = exports.InnerScreen = /*#__PURE__*/_react.default.forwardRef
176
177
  bottomScrollEdgeEffect: scrollEdgeEffects?.bottom,
177
178
  leftScrollEdgeEffect: scrollEdgeEffects?.left,
178
179
  rightScrollEdgeEffect: scrollEdgeEffects?.right,
179
- topScrollEdgeEffect: scrollEdgeEffects?.top
180
+ topScrollEdgeEffect: scrollEdgeEffects?.top,
181
+ synchronousShadowStateUpdatesEnabled: _flags.default.experiment.synchronousScreenUpdatesEnabled
180
182
  }), !isNativeStack ?
181
183
  // see comment of this prop in types.tsx for information why it is needed
182
184
  children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["Object","defineProperty","exports","value","default","ScreenContext","InnerScreen","_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","_usePrevious","_sheet","_utils","e","__esModule","_extends","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","AnimatedNativeScreen","Animated","createAnimatedComponent","ScreenNativeComponent","AnimatedNativeModalScreen","ModalScreenNativeComponent","React","forwardRef","props","ref","innerRef","useRef","useImperativeHandle","current","prevActivityState","usePrevious","activityState","setRef","onComponentRef","closing","Value","progress","goingForward","enabled","screensEnabled","freezeOnBlur","freezeEnabled","shouldFreeze","rest","sheetAllowedDetents","sheetLargestUndimmedDetentIndex","SHEET_DIMMED_ALWAYS","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","sheetElevation","sheetInitialDetentIndex","screenId","stackPresentation","onAppear","onDisappear","onWillAppear","onWillDisappear","isNativePlatformSupported","resolvedSheetAllowedDetents","resolveSheetAllowedDetents","resolvedSheetLargestUndimmedDetent","resolveSheetLargestUndimmedDetent","resolvedSheetInitialDetentIndex","resolveSheetInitialDetentIndex","shouldUseModalScreenComponent","Platform","select","ios","undefined","android","AnimatedScreen","active","children","isNativeStack","fullScreenSwipeEnabled","gestureResponseDistance","scrollEdgeEffects","onGestureCancel","style","console","warn","Error","handleRef","viewConfig","validAttributes","display","_viewConfig","__viewConfig","freeze","createElement","zIndex","sheetLargestUndimmedDetent","sheetInitialDetent","parseBooleanToOptionalBooleanNativeProp","start","end","top","bottom","onTransitionProgress","event","nativeEvent","useNativeDriver","bottomScrollEdgeEffect","leftScrollEdgeEffect","left","rightScrollEdgeEffect","right","topScrollEdgeEffect","Provider","View","createContext","Screen","ScreenWrapper","useContext","displayName","_default"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Object","defineProperty","exports","value","default","ScreenContext","InnerScreen","_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","_usePrevious","_sheet","_utils","_flags","e","__esModule","_extends","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","AnimatedNativeScreen","Animated","createAnimatedComponent","ScreenNativeComponent","AnimatedNativeModalScreen","ModalScreenNativeComponent","React","forwardRef","props","ref","innerRef","useRef","useImperativeHandle","current","prevActivityState","usePrevious","activityState","setRef","onComponentRef","closing","Value","progress","goingForward","enabled","screensEnabled","freezeOnBlur","freezeEnabled","shouldFreeze","rest","sheetAllowedDetents","sheetLargestUndimmedDetentIndex","SHEET_DIMMED_ALWAYS","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","sheetElevation","sheetInitialDetentIndex","screenId","stackPresentation","onAppear","onDisappear","onWillAppear","onWillDisappear","isNativePlatformSupported","resolvedSheetAllowedDetents","resolveSheetAllowedDetents","resolvedSheetLargestUndimmedDetent","resolveSheetLargestUndimmedDetent","resolvedSheetInitialDetentIndex","resolveSheetInitialDetentIndex","shouldUseModalScreenComponent","Platform","select","ios","undefined","android","AnimatedScreen","active","children","isNativeStack","fullScreenSwipeEnabled","gestureResponseDistance","scrollEdgeEffects","onGestureCancel","style","console","warn","Error","handleRef","viewConfig","validAttributes","display","_viewConfig","__viewConfig","freeze","createElement","zIndex","sheetLargestUndimmedDetent","sheetInitialDetent","parseBooleanToOptionalBooleanNativeProp","start","end","top","bottom","onTransitionProgress","event","nativeEvent","useNativeDriver","bottomScrollEdgeEffect","leftScrollEdgeEffect","left","rightScrollEdgeEffect","right","topScrollEdgeEffect","synchronousShadowStateUpdatesEnabled","featureFlags","experiment","synchronousScreenUpdatesEnabled","Provider","View","createContext","Screen","ScreenWrapper","useContext","displayName","_default"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":"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","ignoreList":[]}