react-native-screens 3.19.0 → 3.20.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.
Files changed (33) hide show
  1. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +0 -10
  2. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +0 -15
  3. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +0 -5
  4. package/ios/RNSConvert.h +0 -6
  5. package/ios/RNSConvert.mm +0 -26
  6. package/ios/RNSEnums.h +0 -6
  7. package/ios/RNSScreen.h +0 -7
  8. package/ios/RNSScreen.mm +0 -99
  9. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  10. package/lib/commonjs/index.native.js +3 -1
  11. package/lib/commonjs/index.native.js.map +1 -1
  12. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +3 -1
  13. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
  14. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  15. package/lib/module/index.native.js +3 -1
  16. package/lib/module/index.native.js.map +1 -1
  17. package/lib/module/reanimated/ReanimatedScreenProvider.js +3 -1
  18. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
  19. package/lib/typescript/TransitionProgressContext.d.ts +1 -1
  20. package/lib/typescript/createNativeStackNavigator.d.ts +5 -5
  21. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +2 -2
  22. package/lib/typescript/native-stack/types.d.ts +9 -9
  23. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -1
  24. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
  25. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -1
  26. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -1
  27. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
  28. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
  29. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -1
  30. package/lib/typescript/types.d.ts +9 -9
  31. package/package.json +2 -2
  32. package/src/fabric/ScreenNativeComponent.js +0 -7
  33. package/android/src/main/java/com/swmansion/rnscreens/LifecycleHelper.kt +0 -60
@@ -156,16 +156,6 @@ class ScreenViewManager : ViewGroupManager<Screen>(), RNSScreenManagerInterface<
156
156
 
157
157
  override fun setSwipeDirection(view: Screen?, value: String?) = Unit
158
158
 
159
- override fun setSheetAllowedDetents(view: Screen, value: String?) = Unit
160
-
161
- override fun setSheetLargestUndimmedDetent(view: Screen, value: String?) = Unit
162
-
163
- override fun setSheetGrabberVisible(view: Screen?, value: Boolean) = Unit
164
-
165
- override fun setSheetCornerRadius(view: Screen?, value: Float) = Unit
166
-
167
- override fun setSheetExpandsWhenScrolledToEdge(view: Screen?, value: Boolean) = Unit
168
-
169
159
  override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> {
170
160
  return MapBuilder.of(
171
161
  ScreenDismissedEvent.EVENT_NAME,
@@ -23,21 +23,6 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerI
23
23
  @Override
24
24
  public void setProperty(T view, String propName, @Nullable Object value) {
25
25
  switch (propName) {
26
- case "sheetAllowedDetents":
27
- mViewManager.setSheetAllowedDetents(view, (String) value);
28
- break;
29
- case "sheetLargestUndimmedDetent":
30
- mViewManager.setSheetLargestUndimmedDetent(view, (String) value);
31
- break;
32
- case "sheetGrabberVisible":
33
- mViewManager.setSheetGrabberVisible(view, value == null ? false : (boolean) value);
34
- break;
35
- case "sheetCornerRadius":
36
- mViewManager.setSheetCornerRadius(view, value == null ? -1f : ((Double) value).floatValue());
37
- break;
38
- case "sheetExpandsWhenScrolledToEdge":
39
- mViewManager.setSheetExpandsWhenScrolledToEdge(view, value == null ? false : (boolean) value);
40
- break;
41
26
  case "customAnimationOnSwipe":
42
27
  mViewManager.setCustomAnimationOnSwipe(view, value == null ? false : (boolean) value);
43
28
  break;
@@ -14,11 +14,6 @@ import androidx.annotation.Nullable;
14
14
  import com.facebook.react.bridge.ReadableMap;
15
15
 
16
16
  public interface RNSScreenManagerInterface<T extends View> {
17
- void setSheetAllowedDetents(T view, @Nullable String value);
18
- void setSheetLargestUndimmedDetent(T view, @Nullable String value);
19
- void setSheetGrabberVisible(T view, boolean value);
20
- void setSheetCornerRadius(T view, float value);
21
- void setSheetExpandsWhenScrolledToEdge(T view, boolean value);
22
17
  void setCustomAnimationOnSwipe(T view, boolean value);
23
18
  void setFullScreenSwipeEnabled(T view, boolean value);
24
19
  void setHomeIndicatorHidden(T view, boolean value);
package/ios/RNSConvert.h CHANGED
@@ -19,12 +19,6 @@
19
19
  + (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
20
20
  (facebook::react::RNSScreenSwipeDirection)swipeDirection;
21
21
 
22
- + (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:
23
- (facebook::react::RNSScreenSheetAllowedDetents)allowedDetents;
24
-
25
- + (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:
26
- (facebook::react::RNSScreenSheetLargestUndimmedDetent)detent;
27
-
28
22
  + (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
29
23
  (const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance;
30
24
 
package/ios/RNSConvert.mm CHANGED
@@ -89,32 +89,6 @@
89
89
  }
90
90
  }
91
91
 
92
- + (RNSScreenDetentType)RNSScreenDetentTypeFromAllowedDetents:
93
- (facebook::react::RNSScreenSheetAllowedDetents)allowedDetents
94
- {
95
- switch (allowedDetents) {
96
- case facebook::react::RNSScreenSheetAllowedDetents::All:
97
- return RNSScreenDetentTypeAll;
98
- case facebook::react::RNSScreenSheetAllowedDetents::Large:
99
- return RNSScreenDetentTypeLarge;
100
- case facebook::react::RNSScreenSheetAllowedDetents::Medium:
101
- return RNSScreenDetentTypeMedium;
102
- }
103
- }
104
-
105
- + (RNSScreenDetentType)RNSScreenDetentTypeFromLargestUndimmedDetent:
106
- (facebook::react::RNSScreenSheetLargestUndimmedDetent)detent
107
- {
108
- switch (detent) {
109
- case facebook::react::RNSScreenSheetLargestUndimmedDetent::All:
110
- return RNSScreenDetentTypeAll;
111
- case facebook::react::RNSScreenSheetLargestUndimmedDetent::Large:
112
- return RNSScreenDetentTypeLarge;
113
- case facebook::react::RNSScreenSheetLargestUndimmedDetent::Medium:
114
- return RNSScreenDetentTypeMedium;
115
- }
116
- }
117
-
118
92
  + (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
119
93
  (const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance
120
94
  {
package/ios/RNSEnums.h CHANGED
@@ -57,9 +57,3 @@ typedef NS_ENUM(NSInteger, RNSScreenStackHeaderSubviewType) {
57
57
  RNSScreenStackHeaderSubviewTypeCenter,
58
58
  RNSScreenStackHeaderSubviewTypeSearchBar,
59
59
  };
60
-
61
- typedef NS_ENUM(NSInteger, RNSScreenDetentType) {
62
- RNSScreenDetentTypeMedium,
63
- RNSScreenDetentTypeLarge,
64
- RNSScreenDetentTypeAll,
65
- };
package/ios/RNSScreen.h CHANGED
@@ -75,13 +75,6 @@ NS_ASSUME_NONNULL_BEGIN
75
75
  @property (nonatomic) UIInterfaceOrientationMask screenOrientation;
76
76
  @property (nonatomic) BOOL statusBarHidden;
77
77
  @property (nonatomic) BOOL homeIndicatorHidden;
78
-
79
- // Props controlling UISheetPresentationController
80
- @property (nonatomic) RNSScreenDetentType sheetAllowedDetents;
81
- @property (nonatomic) RNSScreenDetentType sheetLargestUndimmedDetent;
82
- @property (nonatomic) BOOL sheetGrabberVisible;
83
- @property (nonatomic) CGFloat sheetCornerRadius;
84
- @property (nonatomic) BOOL sheetExpandsWhenScrolledToEdge;
85
78
  #endif // !TARGET_OS_TV
86
79
 
87
80
  #ifdef RN_FABRIC_ENABLED
package/ios/RNSScreen.mm CHANGED
@@ -82,9 +82,6 @@
82
82
  _hasStatusBarHiddenSet = NO;
83
83
  _hasOrientationSet = NO;
84
84
  _hasHomeIndicatorHiddenSet = NO;
85
- #if !TARGET_OS_TV
86
- _sheetExpandsWhenScrolledToEdge = YES;
87
- #endif // !TARGET_OS_TV
88
85
  }
89
86
 
90
87
  - (UIViewController *)reactViewController
@@ -517,60 +514,6 @@
517
514
  return self.stackPresentation != RNSScreenStackPresentationPush;
518
515
  }
519
516
 
520
- #if !TARGET_OS_TV
521
- /**
522
- * Updates settings for sheet presentation controller.
523
- * Note that this method should not be called inside `stackPresentation` setter, because on Paper we don't have
524
- * guarantee that values of all related props had been updated earlier.
525
- */
526
- - (void)updatePresentationStyle
527
- {
528
- #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_15_0) && \
529
- __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0
530
- if (@available(iOS 15.0, *)) {
531
- UISheetPresentationController *sheet = _controller.sheetPresentationController;
532
- if (_stackPresentation == RNSScreenStackPresentationFormSheet && sheet != nil) {
533
- sheet.prefersScrollingExpandsWhenScrolledToEdge = _sheetExpandsWhenScrolledToEdge;
534
- sheet.prefersGrabberVisible = _sheetGrabberVisible;
535
- sheet.preferredCornerRadius =
536
- _sheetCornerRadius < 0 ? UISheetPresentationControllerAutomaticDimension : _sheetCornerRadius;
537
-
538
- if (_sheetLargestUndimmedDetent == RNSScreenDetentTypeMedium) {
539
- sheet.largestUndimmedDetentIdentifier = UISheetPresentationControllerDetentIdentifierMedium;
540
- } else if (_sheetLargestUndimmedDetent == RNSScreenDetentTypeLarge) {
541
- sheet.largestUndimmedDetentIdentifier = UISheetPresentationControllerDetentIdentifierLarge;
542
- } else if (_sheetLargestUndimmedDetent == RNSScreenDetentTypeAll) {
543
- sheet.largestUndimmedDetentIdentifier = nil;
544
- } else {
545
- RCTLogError(@"Unhandled value of sheetLargestUndimmedDetent passed");
546
- }
547
-
548
- if (_sheetAllowedDetents == RNSScreenDetentTypeMedium) {
549
- sheet.detents = @[ UISheetPresentationControllerDetent.mediumDetent ];
550
- if (sheet.selectedDetentIdentifier != UISheetPresentationControllerDetentIdentifierMedium) {
551
- [sheet animateChanges:^{
552
- sheet.selectedDetentIdentifier = UISheetPresentationControllerDetentIdentifierMedium;
553
- }];
554
- }
555
- } else if (_sheetAllowedDetents == RNSScreenDetentTypeLarge) {
556
- sheet.detents = @[ UISheetPresentationControllerDetent.largeDetent ];
557
- if (sheet.selectedDetentIdentifier != UISheetPresentationControllerDetentIdentifierLarge) {
558
- [sheet animateChanges:^{
559
- sheet.selectedDetentIdentifier = UISheetPresentationControllerDetentIdentifierLarge;
560
- }];
561
- }
562
- } else if (_sheetAllowedDetents == RNSScreenDetentTypeAll) {
563
- sheet.detents =
564
- @[ UISheetPresentationControllerDetent.mediumDetent, UISheetPresentationControllerDetent.largeDetent ];
565
- } else {
566
- RCTLogError(@"Unhandled value of sheetAllowedDetents passed");
567
- }
568
- }
569
- }
570
- #endif // Check for max allowed iOS version
571
- }
572
- #endif // !TARGET_OS_TV
573
-
574
517
  #pragma mark - Fabric specific
575
518
  #ifdef RN_FABRIC_ENABLED
576
519
 
@@ -670,19 +613,6 @@
670
613
  if (newScreenProps.homeIndicatorHidden != oldScreenProps.homeIndicatorHidden) {
671
614
  [self setHomeIndicatorHidden:newScreenProps.homeIndicatorHidden];
672
615
  }
673
-
674
- [self setSheetGrabberVisible:newScreenProps.sheetGrabberVisible];
675
- [self setSheetCornerRadius:newScreenProps.sheetCornerRadius];
676
- [self setSheetExpandsWhenScrolledToEdge:newScreenProps.sheetExpandsWhenScrolledToEdge];
677
-
678
- if (newScreenProps.sheetAllowedDetents != oldScreenProps.sheetAllowedDetents) {
679
- [self setSheetAllowedDetents:[RNSConvert RNSScreenDetentTypeFromAllowedDetents:newScreenProps.sheetAllowedDetents]];
680
- }
681
-
682
- if (newScreenProps.sheetLargestUndimmedDetent != oldScreenProps.sheetLargestUndimmedDetent) {
683
- [self setSheetLargestUndimmedDetent:
684
- [RNSConvert RNSScreenDetentTypeFromLargestUndimmedDetent:newScreenProps.sheetLargestUndimmedDetent]];
685
- }
686
616
  #endif // !TARGET_OS_TV
687
617
 
688
618
  // Notice that we compare against _stackPresentation, not oldScreenProps.stackPresentation.
@@ -693,11 +623,6 @@
693
623
  [self setStackPresentation:newStackPresentation];
694
624
  }
695
625
 
696
- #if !TARGET_OS_TV
697
- // This must be called after setter for stackPresentation
698
- [self updatePresentationStyle];
699
- #endif // !TARGET_OS_TV
700
-
701
626
  if (newScreenProps.stackAnimation != oldScreenProps.stackAnimation) {
702
627
  [self setStackAnimation:[RNSConvert RNSScreenStackAnimationFromCppEquivalent:newScreenProps.stackAnimation]];
703
628
  }
@@ -736,14 +661,6 @@
736
661
  #pragma mark - Paper specific
737
662
  #else
738
663
 
739
- - (void)didSetProps:(NSArray<NSString *> *)changedProps
740
- {
741
- [super didSetProps:changedProps];
742
- #if !TARGET_OS_TV
743
- [self updatePresentationStyle];
744
- #endif // !TARGET_OS_TV
745
- }
746
-
747
664
  - (void)setPointerEvents:(RCTPointerEvents)pointerEvents
748
665
  {
749
666
  // pointer events settings are managed by the parent screen container, we ignore
@@ -1280,12 +1197,6 @@ RCT_EXPORT_VIEW_PROPERTY(statusBarAnimation, UIStatusBarAnimation)
1280
1197
  RCT_EXPORT_VIEW_PROPERTY(statusBarHidden, BOOL)
1281
1198
  RCT_EXPORT_VIEW_PROPERTY(statusBarStyle, RNSStatusBarStyle)
1282
1199
  RCT_EXPORT_VIEW_PROPERTY(homeIndicatorHidden, BOOL)
1283
-
1284
- RCT_EXPORT_VIEW_PROPERTY(sheetAllowedDetents, RNSScreenDetentType);
1285
- RCT_EXPORT_VIEW_PROPERTY(sheetLargestUndimmedDetent, RNSScreenDetentType);
1286
- RCT_EXPORT_VIEW_PROPERTY(sheetGrabberVisible, BOOL);
1287
- RCT_EXPORT_VIEW_PROPERTY(sheetCornerRadius, CGFloat);
1288
- RCT_EXPORT_VIEW_PROPERTY(sheetExpandsWhenScrolledToEdge, BOOL);
1289
1200
  #endif
1290
1201
 
1291
1202
  #if !TARGET_OS_TV
@@ -1398,16 +1309,6 @@ RCT_ENUM_CONVERTER(
1398
1309
  RNSStatusBarStyleAuto,
1399
1310
  integerValue)
1400
1311
 
1401
- RCT_ENUM_CONVERTER(
1402
- RNSScreenDetentType,
1403
- (@{
1404
- @"large" : @(RNSScreenDetentTypeLarge),
1405
- @"medium" : @(RNSScreenDetentTypeMedium),
1406
- @"all" : @(RNSScreenDetentTypeAll),
1407
- }),
1408
- RNSScreenDetentTypeAll,
1409
- integerValue)
1410
-
1411
1312
  + (UIInterfaceOrientationMask)UIInterfaceOrientationMask:(id)json
1412
1313
  {
1413
1314
  json = [self NSString:json];
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sources":["ScreenNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype TransitionProgressEvent = $ReadOnly<{|\n progress: Double,\n closing: Int32,\n goingForward: Int32,\n|}>;\n\ntype GestureResponseDistanceType = $ReadOnly<{|\n start: Float,\n end: Float,\n top: Float,\n bottom: Float,\n|}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\ntype SheetDetentTypes = 'large' | 'medium' | 'all';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onNativeDismissCancelled?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,\n sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>,\n sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>,\n sheetGrabberVisible?: WithDefault<boolean, false>,\n sheetCornerRadius?: WithDefault<Float, -1.0>,\n sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>,\n customAnimationOnSwipe?: boolean,\n fullScreenSwipeEnabled?: boolean,\n homeIndicatorHidden?: boolean,\n preventNativeDismiss?: boolean,\n gestureEnabled?: WithDefault<boolean, true>,\n statusBarColor?: ColorValue,\n statusBarHidden?: boolean,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n gestureResponseDistance?: GestureResponseDistanceType,\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n transitionDuration?: WithDefault<Int32, 350>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>,\n hideKeyboardOnSwipe?: boolean,\n activityState?: WithDefault<Float, -1.0>,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n onHeaderBackButtonClicked?: ?BubblingEventHandler<ScreenEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eAiGgB,IAAAA,+BAAsB,EAAc,WAAW,EAAE;EAC/DC,aAAa,EAAE;AACjB,CAAC,CAAC;AAAA"}
1
+ {"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sources":["ScreenNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype TransitionProgressEvent = $ReadOnly<{|\n progress: Double,\n closing: Int32,\n goingForward: Int32,\n|}>;\n\ntype GestureResponseDistanceType = $ReadOnly<{|\n start: Float,\n end: Float,\n top: Float,\n bottom: Float,\n|}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onNativeDismissCancelled?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,\n customAnimationOnSwipe?: boolean,\n fullScreenSwipeEnabled?: boolean,\n homeIndicatorHidden?: boolean,\n preventNativeDismiss?: boolean,\n gestureEnabled?: WithDefault<boolean, true>,\n statusBarColor?: ColorValue,\n statusBarHidden?: boolean,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n gestureResponseDistance?: GestureResponseDistanceType,\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n transitionDuration?: WithDefault<Int32, 350>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>,\n hideKeyboardOnSwipe?: boolean,\n activityState?: WithDefault<Float, -1.0>,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n onHeaderBackButtonClicked?: ?BubblingEventHandler<ScreenEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"],"mappings":";;;;;;AAKA;AAA6F;AAL7F;AACA;AACA;AACA;AACA;AAAA,eA0FgB,IAAAA,+BAAsB,EAAc,WAAW,EAAE;EAC/DC,aAAa,EAAE;AACjB,CAAC,CAAC;AAAA"}
@@ -9,7 +9,9 @@ var _useTransitionProgress = _interopRequireDefault(require("./useTransitionProg
9
9
  var _utils = require("./utils");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  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); }
12
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
15
  // web implementation is taken from `index.tsx`
14
16
  const isPlatformSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'windows';
15
17
  let ENABLE_SCREENS = isPlatformSupported;
@@ -1 +1 @@
1
- {"version":3,"names":["isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","requireNativeComponent","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","useTransitionProgress","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","requireNativeComponent","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","useTransitionProgress","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
@@ -10,7 +10,9 @@ var _ReanimatedNativeStackScreen = _interopRequireDefault(require("./ReanimatedN
10
10
  var _ReanimatedScreen = _interopRequireDefault(require("./ReanimatedScreen"));
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  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); }
13
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
16
  class ReanimatedScreenWrapper extends _react.default.Component {
15
17
  constructor() {
16
18
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["ReanimatedScreenWrapper","React","Component","ref","props","onComponentRef","setNativeProps","render","ReanimatedScreen","isNativeStack","ReanimatedNativeStackScreen","AnimatedScreen","setRef","ReanimatedScreenProvider","children"],"sources":["ReanimatedScreenProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { View } from 'react-native';\nimport { ScreenProps, ScreenContext } from 'react-native-screens';\nimport ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';\nimport AnimatedScreen from './ReanimatedScreen';\n\nclass ReanimatedScreenWrapper extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const ReanimatedScreen = this.props.isNativeStack\n ? ReanimatedNativeStackScreen\n : AnimatedScreen;\n return (\n <ReanimatedScreen\n {...this.props}\n // @ts-ignore some problems with ref\n ref={this.setRef}\n />\n );\n }\n}\n\nexport default function ReanimatedScreenProvider(\n props: PropsWithChildren<unknown>\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <ScreenContext.Provider value={ReanimatedScreenWrapper as any}>\n {props.children}\n </ScreenContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AAAgD;AAAA;AAAA;AAEhD,MAAMA,uBAAuB,SAASC,cAAK,CAACC,SAAS,CAAc;EAAA;IAAA;IAAA,6BACb,IAAI;IAAA,gCAM9CC,GAAyC,IAAW;MAAA;MAC5D,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,4CAAI,CAACC,KAAK,EAACC,cAAc,0DAAzB,wCAA4BF,GAAG,CAAC;IAClC,CAAC;EAAA;EAPDG,cAAc,CAACF,KAAkB,EAAQ;IAAA;IACvC,iBAAI,CAACD,GAAG,8CAAR,UAAUG,cAAc,CAACF,KAAK,CAAC;EACjC;EAOAG,MAAM,GAAG;IACP,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,KAAK,CAACK,aAAa,GAC7CC,oCAA2B,GAC3BC,yBAAc;IAClB,oBACE,6BAAC,gBAAgB,eACX,IAAI,CAACP,KAAK;MACd;MACA,GAAG,EAAE,IAAI,CAACQ;IAAO,GACjB;EAEN;AACF;AAEe,SAASC,wBAAwB,CAC9CT,KAAiC,EACjC;EACA;IAAA;IACE;IACA,6BAAC,iCAAa,CAAC,QAAQ;MAAC,KAAK,EAAEJ;IAA+B,GAC3DI,KAAK,CAACU,QAAQ;EACQ;AAE7B"}
1
+ {"version":3,"names":["ReanimatedScreenWrapper","React","Component","ref","props","onComponentRef","setNativeProps","render","ReanimatedScreen","isNativeStack","ReanimatedNativeStackScreen","AnimatedScreen","setRef","ReanimatedScreenProvider","children"],"sources":["ReanimatedScreenProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { View } from 'react-native';\nimport { ScreenProps, ScreenContext } from 'react-native-screens';\nimport ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';\nimport AnimatedScreen from './ReanimatedScreen';\n\nclass ReanimatedScreenWrapper extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const ReanimatedScreen = this.props.isNativeStack\n ? ReanimatedNativeStackScreen\n : AnimatedScreen;\n return (\n <ReanimatedScreen\n {...this.props}\n // @ts-ignore some problems with ref\n ref={this.setRef}\n />\n );\n }\n}\n\nexport default function ReanimatedScreenProvider(\n props: PropsWithChildren<unknown>\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <ScreenContext.Provider value={ReanimatedScreenWrapper as any}>\n {props.children}\n </ScreenContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AAAgD;AAAA;AAAA;AAAA;AAAA;AAEhD,MAAMA,uBAAuB,SAASC,cAAK,CAACC,SAAS,CAAc;EAAA;IAAA;IAAA,6BACb,IAAI;IAAA,gCAM9CC,GAAyC,IAAW;MAAA;MAC5D,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,4CAAI,CAACC,KAAK,EAACC,cAAc,0DAAzB,wCAA4BF,GAAG,CAAC;IAClC,CAAC;EAAA;EAPDG,cAAc,CAACF,KAAkB,EAAQ;IAAA;IACvC,iBAAI,CAACD,GAAG,8CAAR,UAAUG,cAAc,CAACF,KAAK,CAAC;EACjC;EAOAG,MAAM,GAAG;IACP,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,KAAK,CAACK,aAAa,GAC7CC,oCAA2B,GAC3BC,yBAAc;IAClB,oBACE,6BAAC,gBAAgB,eACX,IAAI,CAACP,KAAK;MACd;MACA,GAAG,EAAE,IAAI,CAACQ;IAAO,GACjB;EAEN;AACF;AAEe,SAASC,wBAAwB,CAC9CT,KAAiC,EACjC;EACA;IAAA;IACE;IACA,6BAAC,iCAAa,CAAC,QAAQ;MAAC,KAAK,EAAEJ;IAA+B,GAC3DI,KAAK,CAACU,QAAQ;EACQ;AAE7B"}
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sources":["ScreenNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype TransitionProgressEvent = $ReadOnly<{|\n progress: Double,\n closing: Int32,\n goingForward: Int32,\n|}>;\n\ntype GestureResponseDistanceType = $ReadOnly<{|\n start: Float,\n end: Float,\n top: Float,\n bottom: Float,\n|}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\ntype SheetDetentTypes = 'large' | 'medium' | 'all';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onNativeDismissCancelled?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,\n sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>,\n sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>,\n sheetGrabberVisible?: WithDefault<boolean, false>,\n sheetCornerRadius?: WithDefault<Float, -1.0>,\n sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>,\n customAnimationOnSwipe?: boolean,\n fullScreenSwipeEnabled?: boolean,\n homeIndicatorHidden?: boolean,\n preventNativeDismiss?: boolean,\n gestureEnabled?: WithDefault<boolean, true>,\n statusBarColor?: ColorValue,\n statusBarHidden?: boolean,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n gestureResponseDistance?: GestureResponseDistanceType,\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n transitionDuration?: WithDefault<Int32, 350>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>,\n hideKeyboardOnSwipe?: boolean,\n activityState?: WithDefault<Float, -1.0>,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n onHeaderBackButtonClicked?: ?BubblingEventHandler<ScreenEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;AAgG5F,eAAgBA,sBAAsB,CAAc,WAAW,EAAE;EAC/DC,aAAa,EAAE;AACjB,CAAC,CAAC"}
1
+ {"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sources":["ScreenNativeComponent.js"],"sourcesContent":["/**\n * @flow strict-local\n * @format\n */\n/* eslint-disable */\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { ViewProps } from 'react-native/Libraries/Components/View/ViewPropTypes';\nimport type { HostComponent } from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';\nimport type { ColorValue } from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n WithDefault,\n Int32,\n} from 'react-native/Libraries/Types/CodegenTypes';\n\ntype ScreenEvent = $ReadOnly<{||}>;\n\ntype ScreenDismissedEvent = $ReadOnly<{|\n dismissCount: Int32,\n|}>;\n\ntype TransitionProgressEvent = $ReadOnly<{|\n progress: Double,\n closing: Int32,\n goingForward: Int32,\n|}>;\n\ntype GestureResponseDistanceType = $ReadOnly<{|\n start: Float,\n end: Float,\n top: Float,\n bottom: Float,\n|}>;\n\ntype StackPresentation =\n | 'push'\n | 'modal'\n | 'transparentModal'\n | 'fullScreenModal'\n | 'formSheet'\n | 'containedModal'\n | 'containedTransparentModal';\n\ntype StackAnimation =\n | 'default'\n | 'flip'\n | 'simple_push'\n | 'none'\n | 'fade'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'slide_from_bottom'\n | 'fade_from_bottom';\n\ntype SwipeDirection = 'vertical' | 'horizontal';\n\ntype ReplaceAnimation = 'pop' | 'push';\n\nexport type NativeProps = $ReadOnly<{|\n ...ViewProps,\n onAppear?: ?BubblingEventHandler<ScreenEvent>,\n onDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onDismissed?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onNativeDismissCancelled?: ?BubblingEventHandler<ScreenDismissedEvent>,\n onWillAppear?: ?BubblingEventHandler<ScreenEvent>,\n onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,\n onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,\n customAnimationOnSwipe?: boolean,\n fullScreenSwipeEnabled?: boolean,\n homeIndicatorHidden?: boolean,\n preventNativeDismiss?: boolean,\n gestureEnabled?: WithDefault<boolean, true>,\n statusBarColor?: ColorValue,\n statusBarHidden?: boolean,\n screenOrientation?: string,\n statusBarAnimation?: string,\n statusBarStyle?: string,\n statusBarTranslucent?: boolean,\n gestureResponseDistance?: GestureResponseDistanceType,\n stackPresentation?: WithDefault<StackPresentation, 'push'>,\n stackAnimation?: WithDefault<StackAnimation, 'default'>,\n transitionDuration?: WithDefault<Int32, 350>,\n replaceAnimation?: WithDefault<ReplaceAnimation, 'pop'>,\n swipeDirection?: WithDefault<SwipeDirection, 'horizontal'>,\n hideKeyboardOnSwipe?: boolean,\n activityState?: WithDefault<Float, -1.0>,\n navigationBarColor?: ColorValue,\n navigationBarHidden?: boolean,\n nativeBackButtonDismissalEnabled?: boolean,\n onHeaderBackButtonClicked?: ?BubblingEventHandler<ScreenEvent>,\n|}>;\n\ntype ComponentType = HostComponent<NativeProps>;\n\nexport default (codegenNativeComponent<NativeProps>('RNSScreen', {\n interfaceOnly: true,\n}): ComponentType);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;AAyF5F,eAAgBA,sBAAsB,CAAc,WAAW,EAAE;EAC/DC,aAAa,EAAE;AACjB,CAAC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  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); }
2
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
5
  import React from 'react';
4
6
  import { Animated, Image, Platform, requireNativeComponent, StyleSheet, UIManager, View } from 'react-native';
5
7
  import { Freeze } from 'react-freeze';
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar"],"sources":["index.native.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar"],"sources":["index.native.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = this.context || InnerScreen;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  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); }
2
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
5
  import React from 'react';
4
6
  import { ScreenContext } from 'react-native-screens';
5
7
  import ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScreenContext","ReanimatedNativeStackScreen","AnimatedScreen","ReanimatedScreenWrapper","Component","ref","props","onComponentRef","setNativeProps","render","ReanimatedScreen","isNativeStack","setRef","ReanimatedScreenProvider","children"],"sources":["ReanimatedScreenProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { View } from 'react-native';\nimport { ScreenProps, ScreenContext } from 'react-native-screens';\nimport ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';\nimport AnimatedScreen from './ReanimatedScreen';\n\nclass ReanimatedScreenWrapper extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const ReanimatedScreen = this.props.isNativeStack\n ? ReanimatedNativeStackScreen\n : AnimatedScreen;\n return (\n <ReanimatedScreen\n {...this.props}\n // @ts-ignore some problems with ref\n ref={this.setRef}\n />\n );\n }\n}\n\nexport default function ReanimatedScreenProvider(\n props: PropsWithChildren<unknown>\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <ScreenContext.Provider value={ReanimatedScreenWrapper as any}>\n {props.children}\n </ScreenContext.Provider>\n );\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,MAA6B,OAAO;AAEhD,SAAsBC,aAAa,QAAQ,sBAAsB;AACjE,OAAOC,2BAA2B,MAAM,+BAA+B;AACvE,OAAOC,cAAc,MAAM,oBAAoB;AAE/C,MAAMC,uBAAuB,SAASJ,KAAK,CAACK,SAAS,CAAc;EAAA;IAAA;IAAA,6BACb,IAAI;IAAA,gCAM9CC,GAAyC,IAAW;MAAA;MAC5D,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,4CAAI,CAACC,KAAK,EAACC,cAAc,0DAAzB,wCAA4BF,GAAG,CAAC;IAClC,CAAC;EAAA;EAPDG,cAAc,CAACF,KAAkB,EAAQ;IAAA;IACvC,iBAAI,CAACD,GAAG,8CAAR,UAAUG,cAAc,CAACF,KAAK,CAAC;EACjC;EAOAG,MAAM,GAAG;IACP,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,KAAK,CAACK,aAAa,GAC7CV,2BAA2B,GAC3BC,cAAc;IAClB,oBACE,oBAAC,gBAAgB,eACX,IAAI,CAACI,KAAK;MACd;MACA,GAAG,EAAE,IAAI,CAACM;IAAO,GACjB;EAEN;AACF;AAEA,eAAe,SAASC,wBAAwB,CAC9CP,KAAiC,EACjC;EACA;IAAA;IACE;IACA,oBAAC,aAAa,CAAC,QAAQ;MAAC,KAAK,EAAEH;IAA+B,GAC3DG,KAAK,CAACQ,QAAQ;EACQ;AAE7B"}
1
+ {"version":3,"names":["React","ScreenContext","ReanimatedNativeStackScreen","AnimatedScreen","ReanimatedScreenWrapper","Component","ref","props","onComponentRef","setNativeProps","render","ReanimatedScreen","isNativeStack","setRef","ReanimatedScreenProvider","children"],"sources":["ReanimatedScreenProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { View } from 'react-native';\nimport { ScreenProps, ScreenContext } from 'react-native-screens';\nimport ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';\nimport AnimatedScreen from './ReanimatedScreen';\n\nclass ReanimatedScreenWrapper extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const ReanimatedScreen = this.props.isNativeStack\n ? ReanimatedNativeStackScreen\n : AnimatedScreen;\n return (\n <ReanimatedScreen\n {...this.props}\n // @ts-ignore some problems with ref\n ref={this.setRef}\n />\n );\n }\n}\n\nexport default function ReanimatedScreenProvider(\n props: PropsWithChildren<unknown>\n) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n <ScreenContext.Provider value={ReanimatedScreenWrapper as any}>\n {props.children}\n </ScreenContext.Provider>\n );\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAA6B,OAAO;AAEhD,SAAsBC,aAAa,QAAQ,sBAAsB;AACjE,OAAOC,2BAA2B,MAAM,+BAA+B;AACvE,OAAOC,cAAc,MAAM,oBAAoB;AAE/C,MAAMC,uBAAuB,SAASJ,KAAK,CAACK,SAAS,CAAc;EAAA;IAAA;IAAA,6BACb,IAAI;IAAA,gCAM9CC,GAAyC,IAAW;MAAA;MAC5D,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,4CAAI,CAACC,KAAK,EAACC,cAAc,0DAAzB,wCAA4BF,GAAG,CAAC;IAClC,CAAC;EAAA;EAPDG,cAAc,CAACF,KAAkB,EAAQ;IAAA;IACvC,iBAAI,CAACD,GAAG,8CAAR,UAAUG,cAAc,CAACF,KAAK,CAAC;EACjC;EAOAG,MAAM,GAAG;IACP,MAAMC,gBAAgB,GAAG,IAAI,CAACJ,KAAK,CAACK,aAAa,GAC7CV,2BAA2B,GAC3BC,cAAc;IAClB,oBACE,oBAAC,gBAAgB,eACX,IAAI,CAACI,KAAK;MACd;MACA,GAAG,EAAE,IAAI,CAACM;IAAO,GACjB;EAEN;AACF;AAEA,eAAe,SAASC,wBAAwB,CAC9CP,KAAiC,EACjC;EACA;IAAA;IACE;IACA,oBAAC,aAAa,CAAC,QAAQ;MAAC,KAAK,EAAEH;IAA+B,GAC3DG,KAAK,CAACQ,QAAQ;EACQ;AAE7B"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Animated } from 'react-native';
3
- declare type TransitionProgressContextBody = {
3
+ type TransitionProgressContextBody = {
4
4
  progress: Animated.Value;
5
5
  closing: Animated.Value;
6
6
  goingForward: Animated.Value;
@@ -3,8 +3,8 @@ import { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
3
3
  import { NavigationRouteConfigMap, CreateNavigatorConfig, NavigationStackRouterConfig, NavigationState, NavigationNavigator, NavigationProp } from 'react-navigation';
4
4
  import { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';
5
5
  import { StackNavigationProp, Layout } from 'react-navigation-stack/src/vendor/types';
6
- export declare type NativeStackNavigationProp = StackNavigationProp;
7
- export declare type NativeStackNavigationOptions = StackNavigatorOptions & NativeStackNavigationOptionsV5 & BackButtonProps & {
6
+ export type NativeStackNavigationProp = StackNavigationProp;
7
+ export type NativeStackNavigationOptions = StackNavigatorOptions & NativeStackNavigationOptionsV5 & BackButtonProps & {
8
8
  onWillAppear?: () => void;
9
9
  onAppear?: () => void;
10
10
  onWillDisappear?: () => void;
@@ -18,7 +18,7 @@ export declare type NativeStackNavigationOptions = StackNavigatorOptions & Nativ
18
18
  /** Use `headerTranslucent` to be consistent with v5 `native-stack` */
19
19
  translucent?: boolean;
20
20
  };
21
- declare type StackNavigatorOptions = {
21
+ type StackNavigatorOptions = {
22
22
  /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */
23
23
  header?: React.ComponentType<Record<string, unknown>> | null;
24
24
  /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
@@ -27,7 +27,7 @@ declare type StackNavigatorOptions = {
27
27
  animationEnabled?: boolean;
28
28
  cardStyle?: StyleProp<ViewStyle>;
29
29
  };
30
- declare type BackButtonProps = {
30
+ type BackButtonProps = {
31
31
  headerBackImage?: (props: {
32
32
  tintColor: string;
33
33
  }) => React.ReactNode;
@@ -39,7 +39,7 @@ declare type BackButtonProps = {
39
39
  headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
40
40
  layoutPreset?: Layout;
41
41
  };
42
- declare type NativeStackNavigationConfig = {
42
+ type NativeStackNavigationConfig = {
43
43
  /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
44
44
  mode?: 'modal' | 'containedModal';
45
45
  /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { StackNavigationState } from '@react-navigation/native';
2
+ import { StackNavigationState, ParamListBase } from '@react-navigation/native';
3
3
  import { NativeStackNavigationEventMap, NativeStackNavigationOptions, NativeStackNavigatorProps } from '../types';
4
4
  declare function NativeStackNavigator({ initialRouteName, children, screenOptions, ...rest }: NativeStackNavigatorProps): JSX.Element;
5
- declare const _default: <ParamList extends Record<string, object | undefined>>() => import("@react-navigation/native").TypedNavigator<ParamList, StackNavigationState<Record<string, object | undefined>>, NativeStackNavigationOptions, NativeStackNavigationEventMap, typeof NativeStackNavigator>;
5
+ declare const _default: <ParamList extends Record<string, object | undefined>>() => import("@react-navigation/native").TypedNavigator<ParamList, StackNavigationState<ParamListBase>, NativeStackNavigationOptions, NativeStackNavigationEventMap, typeof NativeStackNavigator>;
6
6
  export default _default;
@@ -2,7 +2,7 @@ import { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp,
2
2
  import * as React from 'react';
3
3
  import { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native';
4
4
  import { ScreenProps, ScreenStackHeaderConfigProps, SearchBarProps } from 'react-native-screens';
5
- export declare type NativeStackNavigationEventMap = {
5
+ export type NativeStackNavigationEventMap = {
6
6
  /**
7
7
  * Event which fires when the screen appears.
8
8
  *
@@ -34,14 +34,14 @@ export declare type NativeStackNavigationEventMap = {
34
34
  };
35
35
  };
36
36
  };
37
- export declare type NativeStackNavigationProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = string> = NavigationProp<ParamList, RouteName, StackNavigationState<ParamList>, NativeStackNavigationOptions, NativeStackNavigationEventMap> & StackActionHelpers<ParamList>;
38
- export declare type NativeStackScreenProps<ParamList extends ParamListBase, RouteName extends keyof ParamList = string> = {
37
+ export type NativeStackNavigationProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = string> = NavigationProp<ParamList, RouteName, StackNavigationState<ParamList>, NativeStackNavigationOptions, NativeStackNavigationEventMap> & StackActionHelpers<ParamList>;
38
+ export type NativeStackScreenProps<ParamList extends ParamListBase, RouteName extends keyof ParamList = string> = {
39
39
  navigation: NativeStackNavigationProp<ParamList, RouteName>;
40
40
  route: RouteProp<ParamList, RouteName>;
41
41
  };
42
- export declare type NativeStackNavigationHelpers = NavigationHelpers<ParamListBase, NativeStackNavigationEventMap>;
43
- export declare type NativeStackNavigationConfig = {};
44
- export declare type NativeStackNavigationOptions = {
42
+ export type NativeStackNavigationHelpers = NavigationHelpers<ParamListBase, NativeStackNavigationEventMap>;
43
+ export type NativeStackNavigationConfig = {};
44
+ export type NativeStackNavigationOptions = {
45
45
  /**
46
46
  * Image to display in the header as the back button.
47
47
  * Defaults to back icon image for the platform (a chevron on iOS and an arrow on Android).
@@ -361,8 +361,8 @@ export declare type NativeStackNavigationOptions = {
361
361
  */
362
362
  transitionDuration?: number;
363
363
  };
364
- export declare type NativeStackNavigatorProps = DefaultNavigatorOptions<NativeStackNavigationOptions> & StackRouterOptions & NativeStackNavigationConfig;
365
- export declare type NativeStackDescriptor = Descriptor<ParamListBase, string, StackNavigationState<ParamListBase>, NativeStackNavigationOptions>;
366
- export declare type NativeStackDescriptorMap = {
364
+ export type NativeStackNavigatorProps = DefaultNavigatorOptions<NativeStackNavigationOptions> & StackRouterOptions & NativeStackNavigationConfig;
365
+ export type NativeStackDescriptor = Descriptor<ParamListBase, string, StackNavigationState<ParamListBase>, NativeStackNavigationOptions>;
366
+ export type NativeStackDescriptorMap = {
367
367
  [key: string]: NativeStackDescriptor;
368
368
  };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- declare type Props = {
3
+ type Props = {
4
4
  children: React.ReactNode;
5
5
  style?: StyleProp<ViewStyle>;
6
6
  };
@@ -1,5 +1,5 @@
1
1
  import { StackPresentationTypes } from 'react-native-screens';
2
- declare type Layout = {
2
+ type Layout = {
3
3
  width: number;
4
4
  height: number;
5
5
  };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Route } from '@react-navigation/native';
3
3
  import { NativeStackNavigationOptions } from '../types';
4
- declare type Props = NativeStackNavigationOptions & {
4
+ type Props = NativeStackNavigationOptions & {
5
5
  route: Route<string>;
6
6
  };
7
7
  export default function HeaderConfig({ backButtonImage, backButtonInCustomView, direction, disableBackButtonMenu, headerBackTitle, headerBackTitleStyle, headerBackTitleVisible, headerCenter, headerHideBackButton, headerHideShadow, headerLargeStyle, headerLargeTitle, headerLargeTitleHideShadow, headerLargeTitleStyle, headerLeft, headerRight, headerShown, headerStyle, headerTintColor, headerTitle, headerTitleStyle, headerTopInsetEnabled, headerTranslucent, route, searchBar, title, }: Props): JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { ParamListBase, StackNavigationState } from '@react-navigation/native';
3
3
  import { NativeStackDescriptorMap, NativeStackNavigationHelpers } from '../types';
4
- declare type Props = {
4
+ type Props = {
5
5
  state: StackNavigationState<ParamListBase>;
6
6
  navigation: NativeStackNavigationHelpers;
7
7
  descriptors: NativeStackDescriptorMap;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { ScreenProps } from 'react-native-screens';
3
3
  import Animated from 'react-native-reanimated';
4
- declare const ReanimatedNativeStackScreen: React.ForwardRefExoticComponent<Pick<ScreenProps, "children" | "active" | "activityState" | "customAnimationOnSwipe" | "enabled" | "isNativeStack" | "freezeOnBlur" | "fullScreenSwipeEnabled" | "gestureEnabled" | "gestureResponseDistance" | "homeIndicatorHidden" | "hideKeyboardOnSwipe" | "nativeBackButtonDismissalEnabled" | "navigationBarColor" | "navigationBarHidden" | "onAppear" | "onComponentRef" | "onDisappear" | "onDismissed" | "onHeaderBackButtonClicked" | "onNativeDismissCancelled" | "onTransitionProgress" | "onWillAppear" | "onWillDisappear" | "preventNativeDismiss" | "replaceAnimation" | "screenOrientation" | "stackAnimation" | "stackPresentation" | "statusBarAnimation" | "statusBarColor" | "statusBarHidden" | "statusBarStyle" | "statusBarTranslucent" | "swipeDirection" | "transitionDuration" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors"> & React.RefAttributes<React.ComponentClass<Animated.AnimateProps<{}>, any>>>;
4
+ declare const ReanimatedNativeStackScreen: React.ForwardRefExoticComponent<Pick<ScreenProps, "active" | "activityState" | "children" | "customAnimationOnSwipe" | "enabled" | "isNativeStack" | "freezeOnBlur" | "fullScreenSwipeEnabled" | "gestureEnabled" | "gestureResponseDistance" | "homeIndicatorHidden" | "hideKeyboardOnSwipe" | "nativeBackButtonDismissalEnabled" | "navigationBarColor" | "navigationBarHidden" | "onAppear" | "onComponentRef" | "onDisappear" | "onDismissed" | "onHeaderBackButtonClicked" | "onNativeDismissCancelled" | "onTransitionProgress" | "onWillAppear" | "onWillDisappear" | "preventNativeDismiss" | "replaceAnimation" | "screenOrientation" | "stackAnimation" | "stackPresentation" | "statusBarAnimation" | "statusBarColor" | "statusBarHidden" | "statusBarStyle" | "statusBarTranslucent" | "swipeDirection" | "transitionDuration" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors"> & React.RefAttributes<React.ComponentClass<Animated.AnimateProps<{}>, any>>>;
5
5
  export default ReanimatedNativeStackScreen;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { ScreenProps } from 'react-native-screens';
3
3
  import Animated from 'react-native-reanimated';
4
- declare const ReanimatedScreen: React.ForwardRefExoticComponent<Pick<ScreenProps, "children" | "active" | "activityState" | "customAnimationOnSwipe" | "enabled" | "isNativeStack" | "freezeOnBlur" | "fullScreenSwipeEnabled" | "gestureEnabled" | "gestureResponseDistance" | "homeIndicatorHidden" | "hideKeyboardOnSwipe" | "nativeBackButtonDismissalEnabled" | "navigationBarColor" | "navigationBarHidden" | "onAppear" | "onComponentRef" | "onDisappear" | "onDismissed" | "onHeaderBackButtonClicked" | "onNativeDismissCancelled" | "onTransitionProgress" | "onWillAppear" | "onWillDisappear" | "preventNativeDismiss" | "replaceAnimation" | "screenOrientation" | "stackAnimation" | "stackPresentation" | "statusBarAnimation" | "statusBarColor" | "statusBarHidden" | "statusBarStyle" | "statusBarTranslucent" | "swipeDirection" | "transitionDuration" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors"> & React.RefAttributes<React.ComponentClass<Animated.AnimateProps<{}>, any>>>;
4
+ declare const ReanimatedScreen: React.ForwardRefExoticComponent<Pick<ScreenProps, "active" | "activityState" | "children" | "customAnimationOnSwipe" | "enabled" | "isNativeStack" | "freezeOnBlur" | "fullScreenSwipeEnabled" | "gestureEnabled" | "gestureResponseDistance" | "homeIndicatorHidden" | "hideKeyboardOnSwipe" | "nativeBackButtonDismissalEnabled" | "navigationBarColor" | "navigationBarHidden" | "onAppear" | "onComponentRef" | "onDisappear" | "onDismissed" | "onHeaderBackButtonClicked" | "onNativeDismissCancelled" | "onTransitionProgress" | "onWillAppear" | "onWillDisappear" | "preventNativeDismiss" | "replaceAnimation" | "screenOrientation" | "stackAnimation" | "stackPresentation" | "statusBarAnimation" | "statusBarColor" | "statusBarHidden" | "statusBarStyle" | "statusBarTranslucent" | "swipeDirection" | "transitionDuration" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors"> & React.RefAttributes<React.ComponentClass<Animated.AnimateProps<{}>, any>>>;
5
5
  export default ReanimatedScreen;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import Animated from 'react-native-reanimated';
3
- declare type ReanimatedTransitionProgressContextBody = {
3
+ type ReanimatedTransitionProgressContextBody = {
4
4
  progress: Animated.SharedValue<number>;
5
5
  closing: Animated.SharedValue<number>;
6
6
  goingForward: Animated.SharedValue<number>;
@@ -1,18 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { Animated, NativeSyntheticEvent, ViewProps, View, TargetedEvent, TextInputFocusEventData } from 'react-native';
3
- export declare type StackPresentationTypes = 'push' | 'modal' | 'transparentModal' | 'containedModal' | 'containedTransparentModal' | 'fullScreenModal' | 'formSheet';
4
- export declare type StackAnimationTypes = 'default' | 'fade' | 'fade_from_bottom' | 'flip' | 'none' | 'simple_push' | 'slide_from_bottom' | 'slide_from_right' | 'slide_from_left';
5
- export declare type BlurEffectTypes = 'extraLight' | 'light' | 'dark' | 'regular' | 'prominent' | 'systemUltraThinMaterial' | 'systemThinMaterial' | 'systemMaterial' | 'systemThickMaterial' | 'systemChromeMaterial' | 'systemUltraThinMaterialLight' | 'systemThinMaterialLight' | 'systemMaterialLight' | 'systemThickMaterialLight' | 'systemChromeMaterialLight' | 'systemUltraThinMaterialDark' | 'systemThinMaterialDark' | 'systemMaterialDark' | 'systemThickMaterialDark' | 'systemChromeMaterialDark';
6
- export declare type ScreenReplaceTypes = 'push' | 'pop';
7
- export declare type SwipeDirectionTypes = 'vertical' | 'horizontal';
8
- export declare type ScreenOrientationTypes = 'default' | 'all' | 'portrait' | 'portrait_up' | 'portrait_down' | 'landscape' | 'landscape_left' | 'landscape_right';
9
- export declare type HeaderSubviewTypes = 'back' | 'right' | 'left' | 'center' | 'searchBar';
10
- export declare type TransitionProgressEventType = {
3
+ export type StackPresentationTypes = 'push' | 'modal' | 'transparentModal' | 'containedModal' | 'containedTransparentModal' | 'fullScreenModal' | 'formSheet';
4
+ export type StackAnimationTypes = 'default' | 'fade' | 'fade_from_bottom' | 'flip' | 'none' | 'simple_push' | 'slide_from_bottom' | 'slide_from_right' | 'slide_from_left';
5
+ export type BlurEffectTypes = 'extraLight' | 'light' | 'dark' | 'regular' | 'prominent' | 'systemUltraThinMaterial' | 'systemThinMaterial' | 'systemMaterial' | 'systemThickMaterial' | 'systemChromeMaterial' | 'systemUltraThinMaterialLight' | 'systemThinMaterialLight' | 'systemMaterialLight' | 'systemThickMaterialLight' | 'systemChromeMaterialLight' | 'systemUltraThinMaterialDark' | 'systemThinMaterialDark' | 'systemMaterialDark' | 'systemThickMaterialDark' | 'systemChromeMaterialDark';
6
+ export type ScreenReplaceTypes = 'push' | 'pop';
7
+ export type SwipeDirectionTypes = 'vertical' | 'horizontal';
8
+ export type ScreenOrientationTypes = 'default' | 'all' | 'portrait' | 'portrait_up' | 'portrait_down' | 'landscape' | 'landscape_left' | 'landscape_right';
9
+ export type HeaderSubviewTypes = 'back' | 'right' | 'left' | 'center' | 'searchBar';
10
+ export type TransitionProgressEventType = {
11
11
  progress: number;
12
12
  closing: number;
13
13
  goingForward: number;
14
14
  };
15
- export declare type GestureResponseDistanceType = {
15
+ export type GestureResponseDistanceType = {
16
16
  start?: number;
17
17
  end?: number;
18
18
  top?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screens",
3
- "version": "3.19.0",
3
+ "version": "3.20.0",
4
4
  "description": "Native navigation primitives for your React Native app.",
5
5
  "scripts": {
6
6
  "check-types": "tsc --noEmit",
@@ -109,7 +109,7 @@
109
109
  "react-navigation-stack": "^2.9.0",
110
110
  "react-test-renderer": "^16.13.1",
111
111
  "release-it": "^13.5.2",
112
- "typescript": "^3.9.7"
112
+ "typescript": "^4.8.4"
113
113
  },
114
114
  "resolutions": {
115
115
  "@react-native-community/cli-platform-android": "^9.0.0",
@@ -56,8 +56,6 @@ type SwipeDirection = 'vertical' | 'horizontal';
56
56
 
57
57
  type ReplaceAnimation = 'pop' | 'push';
58
58
 
59
- type SheetDetentTypes = 'large' | 'medium' | 'all';
60
-
61
59
  export type NativeProps = $ReadOnly<{|
62
60
  ...ViewProps,
63
61
  onAppear?: ?BubblingEventHandler<ScreenEvent>,
@@ -67,11 +65,6 @@ export type NativeProps = $ReadOnly<{|
67
65
  onWillAppear?: ?BubblingEventHandler<ScreenEvent>,
68
66
  onWillDisappear?: ?BubblingEventHandler<ScreenEvent>,
69
67
  onTransitionProgress?: ?BubblingEventHandler<TransitionProgressEvent>,
70
- sheetAllowedDetents?: WithDefault<SheetDetentTypes, 'large'>,
71
- sheetLargestUndimmedDetent?: WithDefault<SheetDetentTypes, 'all'>,
72
- sheetGrabberVisible?: WithDefault<boolean, false>,
73
- sheetCornerRadius?: WithDefault<Float, -1.0>,
74
- sheetExpandsWhenScrolledToEdge?: WithDefault<boolean, false>,
75
68
  customAnimationOnSwipe?: boolean,
76
69
  fullScreenSwipeEnabled?: boolean,
77
70
  homeIndicatorHidden?: boolean,
@@ -1,60 +0,0 @@
1
- package com.swmansion.rnscreens
2
-
3
- import android.view.View
4
- import androidx.fragment.app.Fragment
5
- import androidx.lifecycle.Lifecycle
6
- import androidx.lifecycle.LifecycleObserver
7
-
8
- class LifecycleHelper {
9
- private val mViewToLifecycleMap: MutableMap<View, Lifecycle> = HashMap()
10
- private val mRegisterOnLayoutChange: View.OnLayoutChangeListener = object : View.OnLayoutChangeListener {
11
- override fun onLayoutChange(
12
- view: View,
13
- i: Int,
14
- i1: Int,
15
- i2: Int,
16
- i3: Int,
17
- i4: Int,
18
- i5: Int,
19
- i6: Int,
20
- i7: Int
21
- ) {
22
- registerViewWithLifecycleOwner(view)
23
- view.removeOnLayoutChangeListener(this)
24
- }
25
- }
26
-
27
- private fun registerViewWithLifecycleOwner(view: View) {
28
- val parent = findNearestScreenFragmentAncestor(view)
29
- if (parent != null && view is LifecycleObserver) {
30
- val lifecycle = parent.lifecycle
31
- lifecycle.addObserver((view as LifecycleObserver))
32
- mViewToLifecycleMap[view] = lifecycle
33
- }
34
- }
35
-
36
- fun <T> register(view: T) where T : View, T : LifecycleObserver? {
37
- // we need to wait until view is mounted in the hierarchy as this method is called only at the
38
- // moment of the view creation. In order to register lifecycle observer we need to find ancestor
39
- // of type Screen and this can only happen when the view is properly attached. We rely on
40
- // Android's onLayout callback being triggered when the view gets added to the hierarchy and
41
- // only then we attempt to locate lifecycle owner ancestor.
42
- view.addOnLayoutChangeListener(mRegisterOnLayoutChange)
43
- }
44
-
45
- fun <T> unregister(view: T) where T : View, T : LifecycleObserver? {
46
- mViewToLifecycleMap[view]?.removeObserver(view)
47
- }
48
-
49
- companion object {
50
- fun findNearestScreenFragmentAncestor(view: View): Fragment? {
51
- var parent = view.parent
52
- while (parent != null && parent !is Screen) {
53
- parent = parent.parent
54
- }
55
- return if (parent != null) {
56
- (parent as Screen).fragment
57
- } else null
58
- }
59
- }
60
- }