react-native-screens 3.29.0 → 3.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/RNScreens.podspec +3 -3
- package/android/CMakeLists.txt +27 -0
- package/android/build.gradle +21 -2
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +17 -14
- package/android/src/main/cpp/jni-adapter.cpp +110 -0
- package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +13 -8
- package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
- package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +38 -5
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +32 -42
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +76 -48
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +38 -35
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +43 -37
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +23 -23
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +73 -71
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +5 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +4 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +13 -16
- package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +105 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +1 -0
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +14 -10
- package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +8 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +4 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +9 -13
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +3 -7
- package/android/src/main/jni/rnscreens.h +1 -0
- package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +0 -1
- package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +2 -2
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +1 -1
- package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +41 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +15 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +31 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +6 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +1 -5
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +1 -1
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +8 -3
- package/cpp/RNScreensTurboModule.cpp +107 -0
- package/cpp/RNScreensTurboModule.h +43 -0
- package/gesture-handler/package.json +6 -0
- package/ios/RNSConvert.h +2 -0
- package/ios/RNSConvert.mm +5 -2
- package/ios/RNSEnums.h +1 -0
- package/ios/RNSModalScreen.h +8 -0
- package/ios/RNSModalScreen.mm +36 -0
- package/ios/RNSModule.h +19 -0
- package/ios/RNSModule.mm +174 -0
- package/ios/RNSScreen.h +4 -1
- package/ios/RNSScreen.mm +48 -26
- package/ios/RNSScreenStack.h +6 -0
- package/ios/RNSScreenStack.mm +81 -15
- package/ios/RNSScreenStackAnimator.mm +89 -1
- package/ios/RNSScreenStackHeaderConfig.mm +7 -1
- package/ios/RNSScreenWindowTraits.h +1 -1
- package/ios/RNSScreenWindowTraits.mm +24 -50
- package/ios/RNSSearchBar.mm +24 -0
- package/ios/utils/RNSUIBarButtonItem.h +2 -0
- package/lib/commonjs/TransitionProgressContext.js +3 -4
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/components/FullWindowOverlay.js +28 -0
- package/lib/commonjs/components/FullWindowOverlay.js.map +1 -0
- package/lib/commonjs/components/FullWindowOverlay.web.js +9 -0
- package/lib/commonjs/components/FullWindowOverlay.web.js.map +1 -0
- package/lib/commonjs/components/Screen.js +161 -0
- package/lib/commonjs/components/Screen.js.map +1 -0
- package/lib/commonjs/components/Screen.web.js +46 -0
- package/lib/commonjs/components/Screen.web.js.map +1 -0
- package/lib/commonjs/components/ScreenContainer.js +33 -0
- package/lib/commonjs/components/ScreenContainer.js.map +1 -0
- package/lib/commonjs/components/ScreenContainer.web.js +11 -0
- package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStack.js +45 -0
- package/lib/commonjs/components/ScreenStack.js.map +1 -0
- package/lib/commonjs/components/ScreenStack.web.js +9 -0
- package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.js +53 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +27 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
- package/lib/commonjs/components/SearchBar.js +59 -0
- package/lib/commonjs/components/SearchBar.js.map +1 -0
- package/lib/commonjs/components/SearchBar.web.js +11 -0
- package/lib/commonjs/components/SearchBar.web.js.map +1 -0
- package/lib/commonjs/components/helpers/DelayedFreeze.js +32 -0
- package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
- package/lib/commonjs/core.js +41 -0
- package/lib/commonjs/core.js.map +1 -0
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +1 -2
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ModalScreenNativeComponent.js +13 -0
- package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/NativeScreensModule.js +10 -0
- package/lib/commonjs/fabric/NativeScreensModule.js.map +1 -0
- package/lib/commonjs/fabric/NativeScreensModule.web.js +8 -0
- package/lib/commonjs/fabric/NativeScreensModule.web.js.map +1 -0
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +1 -2
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +3 -5
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/gesture-handler/GestureDetectorProvider.js +19 -0
- package/lib/commonjs/gesture-handler/GestureDetectorProvider.js.map +1 -0
- package/lib/commonjs/gesture-handler/RNScreensTurboModule.js +8 -0
- package/lib/commonjs/gesture-handler/RNScreensTurboModule.js.map +1 -0
- package/lib/commonjs/gesture-handler/ScreenGestureDetector.js +202 -0
- package/lib/commonjs/gesture-handler/ScreenGestureDetector.js.map +1 -0
- package/lib/commonjs/gesture-handler/constraints.js +64 -0
- package/lib/commonjs/gesture-handler/constraints.js.map +1 -0
- package/lib/commonjs/gesture-handler/defaults.js +38 -0
- package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
- package/lib/commonjs/gesture-handler/fabricUtils.js +30 -0
- package/lib/commonjs/gesture-handler/fabricUtils.js.map +1 -0
- package/lib/commonjs/gesture-handler/fabricUtils.web.js +17 -0
- package/lib/commonjs/gesture-handler/fabricUtils.web.js.map +1 -0
- package/lib/commonjs/gesture-handler/index.js +14 -0
- package/lib/commonjs/gesture-handler/index.js.map +1 -0
- package/lib/commonjs/index.js +183 -100
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native-stack/contexts/GHContext.js +11 -0
- package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
- package/lib/commonjs/native-stack/index.js.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +20 -24
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/native-stack/types.js.map +1 -1
- package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +3 -4
- package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +3 -4
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +2 -2
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +2 -2
- package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +2 -4
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -2
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +1 -2
- package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/commonjs/native-stack/views/HeaderConfig.js +11 -7
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +50 -15
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +3 -4
- package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +6 -9
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js +1 -2
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +6 -14
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +3 -4
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/commonjs/reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +2 -2
- package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -2
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useTransitionProgress.js +2 -2
- package/lib/commonjs/useTransitionProgress.js.map +1 -1
- package/lib/commonjs/utils.js +2 -4
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/TransitionProgressContext.js.map +1 -1
- package/lib/module/components/FullWindowOverlay.js +21 -0
- package/lib/module/components/FullWindowOverlay.js.map +1 -0
- package/lib/module/components/FullWindowOverlay.web.js +3 -0
- package/lib/module/components/FullWindowOverlay.web.js.map +1 -0
- package/lib/module/components/Screen.js +156 -0
- package/lib/module/components/Screen.js.map +1 -0
- package/lib/module/components/Screen.web.js +38 -0
- package/lib/module/components/Screen.web.js.map +1 -0
- package/lib/module/components/ScreenContainer.js +26 -0
- package/lib/module/components/ScreenContainer.js.map +1 -0
- package/lib/module/components/ScreenContainer.web.js +5 -0
- package/lib/module/components/ScreenContainer.web.js.map +1 -0
- package/lib/module/components/ScreenStack.js +40 -0
- package/lib/module/components/ScreenStack.js.map +1 -0
- package/lib/module/components/ScreenStack.web.js +3 -0
- package/lib/module/components/ScreenStack.web.js.map +1 -0
- package/lib/module/components/ScreenStackHeaderConfig.js +43 -0
- package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
- package/lib/module/components/ScreenStackHeaderConfig.web.js +14 -0
- package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
- package/lib/module/components/SearchBar.js +52 -0
- package/lib/module/components/SearchBar.js.map +1 -0
- package/lib/module/components/SearchBar.web.js +5 -0
- package/lib/module/components/SearchBar.web.js.map +1 -0
- package/lib/module/components/helpers/DelayedFreeze.js +25 -0
- package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
- package/lib/module/core.js +31 -0
- package/lib/module/core.js.map +1 -0
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ModalScreenNativeComponent.js +8 -0
- package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/NativeScreensModule.js +5 -0
- package/lib/module/fabric/NativeScreensModule.js.map +1 -0
- package/lib/module/fabric/NativeScreensModule.web.js +2 -0
- package/lib/module/fabric/NativeScreensModule.web.js.map +1 -0
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/gesture-handler/GestureDetectorProvider.js +12 -0
- package/lib/module/gesture-handler/GestureDetectorProvider.js.map +1 -0
- package/lib/module/gesture-handler/RNScreensTurboModule.js +2 -0
- package/lib/module/gesture-handler/RNScreensTurboModule.js.map +1 -0
- package/lib/module/gesture-handler/ScreenGestureDetector.js +194 -0
- package/lib/module/gesture-handler/ScreenGestureDetector.js.map +1 -0
- package/lib/module/gesture-handler/constraints.js +56 -0
- package/lib/module/gesture-handler/constraints.js.map +1 -0
- package/lib/module/gesture-handler/defaults.js +32 -0
- package/lib/module/gesture-handler/defaults.js.map +1 -0
- package/lib/module/gesture-handler/fabricUtils.js +23 -0
- package/lib/module/gesture-handler/fabricUtils.js.map +1 -0
- package/lib/module/gesture-handler/fabricUtils.web.js +10 -0
- package/lib/module/gesture-handler/fabricUtils.web.js.map +1 -0
- package/lib/module/gesture-handler/index.js +5 -0
- package/lib/module/gesture-handler/index.js.map +1 -0
- package/lib/module/index.js +31 -64
- package/lib/module/index.js.map +1 -1
- package/lib/module/native-stack/contexts/GHContext.js +4 -0
- package/lib/module/native-stack/contexts/GHContext.js.map +1 -0
- package/lib/module/native-stack/index.js.map +1 -1
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js +17 -20
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/native-stack/types.js.map +1 -1
- package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
- package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useBackPressSubscription.js +2 -4
- package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/views/FontProcessor.js +1 -2
- package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/module/native-stack/views/HeaderConfig.js +8 -5
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +49 -14
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js +2 -4
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js +6 -14
- package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/module/reanimated/index.js.map +1 -1
- package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -1
- package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/useTransitionProgress.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/TransitionProgressContext.d.ts +1 -0
- package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
- package/lib/typescript/components/FullWindowOverlay.d.ts +6 -0
- package/lib/typescript/components/FullWindowOverlay.d.ts.map +1 -0
- package/lib/typescript/components/FullWindowOverlay.web.d.ts +6 -0
- package/lib/typescript/components/FullWindowOverlay.web.d.ts.map +1 -0
- package/lib/typescript/components/Screen.d.ts +20 -0
- package/lib/typescript/components/Screen.d.ts.map +1 -0
- package/lib/typescript/components/Screen.web.d.ts +11 -0
- package/lib/typescript/components/Screen.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenContainer.d.ts +7 -0
- package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
- package/lib/typescript/components/ScreenContainer.web.d.ts +5 -0
- package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenStack.d.ts +5 -0
- package/lib/typescript/components/ScreenStack.d.ts.map +1 -0
- package/lib/typescript/components/ScreenStack.web.d.ts +3 -0
- package/lib/typescript/components/ScreenStack.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenStackHeaderConfig.d.ts +13 -0
- package/lib/typescript/components/ScreenStackHeaderConfig.d.ts.map +1 -0
- package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts +13 -0
- package/lib/typescript/components/ScreenStackHeaderConfig.web.d.ts.map +1 -0
- package/lib/typescript/components/SearchBar.d.ts +26 -0
- package/lib/typescript/components/SearchBar.d.ts.map +1 -0
- package/lib/typescript/components/SearchBar.web.d.ts +5 -0
- package/lib/typescript/components/SearchBar.web.d.ts.map +1 -0
- package/lib/typescript/components/helpers/DelayedFreeze.d.ts +8 -0
- package/lib/typescript/components/helpers/DelayedFreeze.d.ts.map +1 -0
- package/lib/typescript/core.d.ts +7 -0
- package/lib/typescript/core.d.ts.map +1 -0
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +68 -0
- package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/NativeScreensModule.d.ts +6 -0
- package/lib/typescript/fabric/NativeScreensModule.d.ts.map +1 -0
- package/lib/typescript/fabric/NativeScreensModule.web.d.ts +3 -0
- package/lib/typescript/fabric/NativeScreensModule.web.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts +2 -1
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +3 -1
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts +5 -0
- package/lib/typescript/gesture-handler/GestureDetectorProvider.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +13 -0
- package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts +5 -0
- package/lib/typescript/gesture-handler/ScreenGestureDetector.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/constraints.d.ts +6 -0
- package/lib/typescript/gesture-handler/constraints.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/defaults.d.ts +20 -0
- package/lib/typescript/gesture-handler/defaults.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/fabricUtils.d.ts +8 -0
- package/lib/typescript/gesture-handler/fabricUtils.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/fabricUtils.web.d.ts +6 -0
- package/lib/typescript/gesture-handler/fabricUtils.web.d.ts.map +1 -0
- package/lib/typescript/gesture-handler/index.d.ts +2 -0
- package/lib/typescript/gesture-handler/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +11 -31
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/native-stack/contexts/GHContext.d.ts +4 -0
- package/lib/typescript/native-stack/contexts/GHContext.d.ts.map +1 -0
- package/lib/typescript/native-stack/index.d.ts +1 -0
- package/lib/typescript/native-stack/index.d.ts.map +1 -0
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +1 -0
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
- package/lib/typescript/native-stack/types.d.ts +39 -2
- package/lib/typescript/native-stack/types.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +1 -0
- package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +1 -0
- package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -0
- package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -0
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +1 -0
- package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -0
- package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +1 -0
- package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
- package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
- package/lib/typescript/native-stack/views/FontProcessor.d.ts.map +1 -0
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -0
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -0
- package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +1 -0
- package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +2 -2
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +2 -2
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +1 -0
- package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -0
- package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -0
- package/lib/typescript/reanimated/index.d.ts +1 -0
- package/lib/typescript/reanimated/index.d.ts.map +1 -0
- package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +2 -3
- package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +4 -9
- package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +11 -2
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/useTransitionProgress.d.ts +1 -0
- package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/utils.d.ts.map +1 -0
- package/native-stack/README.md +2 -1
- package/native-stack/package.json +1 -1
- package/package.json +18 -11
- package/react-native.config.js +2 -1
- package/reanimated/package.json +1 -1
- package/src/components/FullWindowOverlay.tsx +25 -0
- package/src/components/FullWindowOverlay.web.tsx +6 -0
- package/src/components/Screen.tsx +218 -0
- package/src/components/Screen.web.tsx +43 -0
- package/src/components/ScreenContainer.tsx +33 -0
- package/src/components/ScreenContainer.web.tsx +6 -0
- package/src/components/ScreenStack.tsx +41 -0
- package/src/components/ScreenStack.web.tsx +3 -0
- package/src/components/ScreenStackHeaderConfig.tsx +76 -0
- package/src/components/ScreenStackHeaderConfig.web.tsx +39 -0
- package/src/components/SearchBar.tsx +91 -0
- package/src/components/SearchBar.web.tsx +6 -0
- package/src/components/helpers/DelayedFreeze.tsx +27 -0
- package/src/core.ts +43 -0
- package/src/fabric/ModalScreenNativeComponent.ts +104 -0
- package/src/fabric/NativeScreensModule.ts +7 -0
- package/src/fabric/NativeScreensModule.web.ts +1 -0
- package/src/fabric/ScreenNativeComponent.ts +1 -1
- package/src/fabric/SearchBarNativeComponent.ts +2 -0
- package/src/gesture-handler/GestureDetectorProvider.tsx +16 -0
- package/src/gesture-handler/RNScreensTurboModule.ts +13 -0
- package/src/gesture-handler/ScreenGestureDetector.tsx +241 -0
- package/src/gesture-handler/constraints.ts +87 -0
- package/src/gesture-handler/defaults.ts +38 -0
- package/src/gesture-handler/fabricUtils.ts +39 -0
- package/src/gesture-handler/fabricUtils.web.ts +10 -0
- package/src/gesture-handler/index.tsx +4 -0
- package/src/index.tsx +65 -112
- package/src/native-stack/contexts/GHContext.tsx +7 -0
- package/src/native-stack/types.tsx +62 -1
- package/src/native-stack/views/HeaderConfig.tsx +11 -0
- package/src/native-stack/views/NativeStackView.tsx +65 -13
- package/src/types.tsx +13 -1
- package/lib/commonjs/index.native.js +0 -418
- package/lib/commonjs/index.native.js.map +0 -1
- package/lib/module/index.native.js +0 -415
- package/lib/module/index.native.js.map +0 -1
- package/lib/typescript/index.native.d.ts +0 -2
- package/src/index.native.tsx +0 -619
|
@@ -64,7 +64,10 @@ static const float RNSFadeCloseDelayTransitionDurationProportion = 0.1 / 0.35;
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
if (screen != nil) {
|
|
67
|
-
if (screen.
|
|
67
|
+
if ([screen.reactSuperview isKindOfClass:[RNSScreenStackView class]] &&
|
|
68
|
+
((RNSScreenStackView *)(screen.reactSuperview)).customAnimation) {
|
|
69
|
+
[self animateWithNoAnimation:transitionContext toVC:toViewController fromVC:fromViewController];
|
|
70
|
+
} else if (screen.fullScreenSwipeEnabled && transitionContext.isInteractive) {
|
|
68
71
|
// we are swiping with full width gesture
|
|
69
72
|
if (screen.customAnimationOnSwipe) {
|
|
70
73
|
[self animateTransitionWithStackAnimation:screen.stackAnimation
|
|
@@ -144,6 +147,64 @@ static const float RNSFadeCloseDelayTransitionDurationProportion = 0.1 / 0.35;
|
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
149
|
|
|
150
|
+
- (void)animateSlideFromLeftWithTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext
|
|
151
|
+
toVC:(UIViewController *)toViewController
|
|
152
|
+
fromVC:(UIViewController *)fromViewController
|
|
153
|
+
{
|
|
154
|
+
float containerWidth = transitionContext.containerView.bounds.size.width;
|
|
155
|
+
float belowViewWidth = containerWidth * 0.3;
|
|
156
|
+
|
|
157
|
+
CGAffineTransform rightTransform = CGAffineTransformMakeTranslation(-containerWidth, 0);
|
|
158
|
+
CGAffineTransform leftTransform = CGAffineTransformMakeTranslation(belowViewWidth, 0);
|
|
159
|
+
|
|
160
|
+
if (toViewController.navigationController.view.semanticContentAttribute ==
|
|
161
|
+
UISemanticContentAttributeForceRightToLeft) {
|
|
162
|
+
rightTransform = CGAffineTransformMakeTranslation(containerWidth, 0);
|
|
163
|
+
leftTransform = CGAffineTransformMakeTranslation(-belowViewWidth, 0);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (_operation == UINavigationControllerOperationPush) {
|
|
167
|
+
toViewController.view.transform = rightTransform;
|
|
168
|
+
[[transitionContext containerView] addSubview:toViewController.view];
|
|
169
|
+
[UIView animateWithDuration:[self transitionDuration:transitionContext]
|
|
170
|
+
animations:^{
|
|
171
|
+
fromViewController.view.transform = leftTransform;
|
|
172
|
+
toViewController.view.transform = CGAffineTransformIdentity;
|
|
173
|
+
}
|
|
174
|
+
completion:^(BOOL finished) {
|
|
175
|
+
fromViewController.view.transform = CGAffineTransformIdentity;
|
|
176
|
+
toViewController.view.transform = CGAffineTransformIdentity;
|
|
177
|
+
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
|
|
178
|
+
}];
|
|
179
|
+
} else if (_operation == UINavigationControllerOperationPop) {
|
|
180
|
+
toViewController.view.transform = leftTransform;
|
|
181
|
+
[[transitionContext containerView] insertSubview:toViewController.view belowSubview:fromViewController.view];
|
|
182
|
+
|
|
183
|
+
void (^animationBlock)(void) = ^{
|
|
184
|
+
toViewController.view.transform = CGAffineTransformIdentity;
|
|
185
|
+
fromViewController.view.transform = rightTransform;
|
|
186
|
+
};
|
|
187
|
+
void (^completionBlock)(BOOL) = ^(BOOL finished) {
|
|
188
|
+
fromViewController.view.transform = CGAffineTransformIdentity;
|
|
189
|
+
toViewController.view.transform = CGAffineTransformIdentity;
|
|
190
|
+
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
if (!transitionContext.isInteractive) {
|
|
194
|
+
[UIView animateWithDuration:[self transitionDuration:transitionContext]
|
|
195
|
+
animations:animationBlock
|
|
196
|
+
completion:completionBlock];
|
|
197
|
+
} else {
|
|
198
|
+
// we don't want the EaseInOut option when swiping to dismiss the view, it is the same in default animation option
|
|
199
|
+
[UIView animateWithDuration:[self transitionDuration:transitionContext]
|
|
200
|
+
delay:0.0
|
|
201
|
+
options:UIViewAnimationOptionCurveLinear
|
|
202
|
+
animations:animationBlock
|
|
203
|
+
completion:completionBlock];
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
147
208
|
- (void)animateFadeWithTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext
|
|
148
209
|
toVC:(UIViewController *)toViewController
|
|
149
210
|
fromVC:(UIViewController *)fromViewController
|
|
@@ -290,6 +351,30 @@ static const float RNSFadeCloseDelayTransitionDurationProportion = 0.1 / 0.35;
|
|
|
290
351
|
}
|
|
291
352
|
}
|
|
292
353
|
|
|
354
|
+
- (void)animateWithNoAnimation:(id<UIViewControllerContextTransitioning>)transitionContext
|
|
355
|
+
toVC:(UIViewController *)toViewController
|
|
356
|
+
fromVC:(UIViewController *)fromViewController
|
|
357
|
+
{
|
|
358
|
+
if (_operation == UINavigationControllerOperationPush) {
|
|
359
|
+
[[transitionContext containerView] addSubview:toViewController.view];
|
|
360
|
+
[UIView animateWithDuration:[self transitionDuration:transitionContext]
|
|
361
|
+
animations:^{
|
|
362
|
+
}
|
|
363
|
+
completion:^(BOOL finished) {
|
|
364
|
+
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
|
|
365
|
+
}];
|
|
366
|
+
} else if (_operation == UINavigationControllerOperationPop) {
|
|
367
|
+
[[transitionContext containerView] insertSubview:toViewController.view belowSubview:fromViewController.view];
|
|
368
|
+
|
|
369
|
+
[UIView animateWithDuration:[self transitionDuration:transitionContext]
|
|
370
|
+
animations:^{
|
|
371
|
+
}
|
|
372
|
+
completion:^(BOOL finished) {
|
|
373
|
+
[transitionContext completeTransition:![transitionContext transitionWasCancelled]];
|
|
374
|
+
}];
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
293
378
|
+ (BOOL)isCustomAnimation:(RNSScreenStackAnimation)animation
|
|
294
379
|
{
|
|
295
380
|
return (animation != RNSScreenStackAnimationFlip && animation != RNSScreenStackAnimationDefault);
|
|
@@ -303,6 +388,9 @@ static const float RNSFadeCloseDelayTransitionDurationProportion = 0.1 / 0.35;
|
|
|
303
388
|
if (animation == RNSScreenStackAnimationSimplePush) {
|
|
304
389
|
[self animateSimplePushWithTransitionContext:transitionContext toVC:toVC fromVC:fromVC];
|
|
305
390
|
return;
|
|
391
|
+
} else if (animation == RNSScreenStackAnimationSlideFromLeft) {
|
|
392
|
+
[self animateSlideFromLeftWithTransitionContext:transitionContext toVC:toVC fromVC:fromVC];
|
|
393
|
+
return;
|
|
306
394
|
} else if (animation == RNSScreenStackAnimationFade || animation == RNSScreenStackAnimationNone) {
|
|
307
395
|
[self animateFadeWithTransitionContext:transitionContext toVC:toVC fromVC:fromVC];
|
|
308
396
|
return;
|
|
@@ -227,7 +227,7 @@ namespace react = facebook::react;
|
|
|
227
227
|
[navbar setTitleTextAttributes:attrs];
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
#if !TARGET_OS_TV
|
|
230
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
231
231
|
if (@available(iOS 11.0, *)) {
|
|
232
232
|
if (config.largeTitle &&
|
|
233
233
|
(config.largeTitleFontFamily || config.largeTitleFontSize || config.largeTitleFontWeight ||
|
|
@@ -397,9 +397,12 @@ namespace react = facebook::react;
|
|
|
397
397
|
if (config.titleFontFamily || config.titleFontSize || config.titleFontWeight || config.titleColor) {
|
|
398
398
|
NSMutableDictionary *attrs = [NSMutableDictionary new];
|
|
399
399
|
|
|
400
|
+
// Ignore changing header title color on visionOS
|
|
401
|
+
#if !TARGET_OS_VISION
|
|
400
402
|
if (config.titleColor) {
|
|
401
403
|
attrs[NSForegroundColorAttributeName] = config.titleColor;
|
|
402
404
|
}
|
|
405
|
+
#endif
|
|
403
406
|
|
|
404
407
|
NSString *family = config.titleFontFamily ?: nil;
|
|
405
408
|
NSNumber *size = config.titleFontSize ?: @17;
|
|
@@ -422,9 +425,12 @@ namespace react = facebook::react;
|
|
|
422
425
|
config.largeTitleColor || config.titleColor) {
|
|
423
426
|
NSMutableDictionary *largeAttrs = [NSMutableDictionary new];
|
|
424
427
|
|
|
428
|
+
// Ignore changing header title color on visionOS
|
|
429
|
+
#if !TARGET_OS_VISION
|
|
425
430
|
if (config.largeTitleColor || config.titleColor) {
|
|
426
431
|
largeAttrs[NSForegroundColorAttributeName] = config.largeTitleColor ? config.largeTitleColor : config.titleColor;
|
|
427
432
|
}
|
|
433
|
+
#endif
|
|
428
434
|
|
|
429
435
|
NSString *largeFamily = config.largeTitleFontFamily ?: nil;
|
|
430
436
|
NSNumber *largeSize = config.largeTitleFontSize ?: @34;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
@implementation RNSScreenWindowTraits
|
|
6
6
|
|
|
7
|
-
#if !TARGET_OS_TV
|
|
7
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
8
8
|
+ (void)assertViewControllerBasedStatusBarAppearenceSet
|
|
9
9
|
{
|
|
10
10
|
static dispatch_once_t once;
|
|
@@ -22,21 +22,10 @@
|
|
|
22
22
|
|
|
23
23
|
+ (void)updateStatusBarAppearance
|
|
24
24
|
{
|
|
25
|
-
#if !TARGET_OS_TV
|
|
25
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
26
26
|
[UIView animateWithDuration:0.4
|
|
27
27
|
animations:^{ // duration based on "Programming iOS 13" p. 311 implementation
|
|
28
|
-
|
|
29
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
30
|
-
if (@available(iOS 13, *)) {
|
|
31
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
32
|
-
if (firstWindow != nil) {
|
|
33
|
-
[[firstWindow rootViewController] setNeedsStatusBarAppearanceUpdate];
|
|
34
|
-
}
|
|
35
|
-
} else
|
|
36
|
-
#endif
|
|
37
|
-
{
|
|
38
|
-
[UIApplication.sharedApplication.keyWindow.rootViewController setNeedsStatusBarAppearanceUpdate];
|
|
39
|
-
}
|
|
28
|
+
[RCTKeyWindow().rootViewController setNeedsStatusBarAppearanceUpdate];
|
|
40
29
|
}];
|
|
41
30
|
#endif
|
|
42
31
|
}
|
|
@@ -44,21 +33,7 @@
|
|
|
44
33
|
+ (void)updateHomeIndicatorAutoHidden
|
|
45
34
|
{
|
|
46
35
|
#if !TARGET_OS_TV
|
|
47
|
-
|
|
48
|
-
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
|
|
49
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
50
|
-
if (@available(iOS 13, *)) {
|
|
51
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
52
|
-
if (firstWindow != nil) {
|
|
53
|
-
[[firstWindow rootViewController] setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
54
|
-
}
|
|
55
|
-
} else
|
|
56
|
-
#endif
|
|
57
|
-
{
|
|
58
|
-
if (@available(iOS 11.0, *)) {
|
|
59
|
-
[UIApplication.sharedApplication.keyWindow.rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
36
|
+
[RCTKeyWindow().rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
62
37
|
#endif
|
|
63
38
|
}
|
|
64
39
|
|
|
@@ -134,21 +109,10 @@
|
|
|
134
109
|
|
|
135
110
|
+ (void)enforceDesiredDeviceOrientation
|
|
136
111
|
{
|
|
137
|
-
#if !TARGET_OS_TV
|
|
112
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
138
113
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
139
|
-
UIInterfaceOrientationMask orientationMask =
|
|
140
|
-
|
|
141
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
142
|
-
if (@available(iOS 13, *)) {
|
|
143
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
144
|
-
if (firstWindow != nil) {
|
|
145
|
-
orientationMask = [firstWindow rootViewController].supportedInterfaceOrientations;
|
|
146
|
-
}
|
|
147
|
-
} else
|
|
148
|
-
#endif
|
|
149
|
-
{
|
|
150
|
-
orientationMask = UIApplication.sharedApplication.keyWindow.rootViewController.supportedInterfaceOrientations;
|
|
151
|
-
}
|
|
114
|
+
UIInterfaceOrientationMask orientationMask = [RCTKeyWindow().rootViewController supportedInterfaceOrientations];
|
|
115
|
+
|
|
152
116
|
UIInterfaceOrientation currentDeviceOrientation =
|
|
153
117
|
[RNSScreenWindowTraits interfaceOrientationFromDeviceOrientation:[[UIDevice currentDevice] orientation]];
|
|
154
118
|
UIInterfaceOrientation currentInterfaceOrientation = [RNSScreenWindowTraits interfaceOrientation];
|
|
@@ -178,7 +142,21 @@
|
|
|
178
142
|
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0
|
|
179
143
|
if (@available(iOS 16.0, *)) {
|
|
180
144
|
NSArray *array = [[[UIApplication sharedApplication] connectedScenes] allObjects];
|
|
181
|
-
|
|
145
|
+
|
|
146
|
+
// when an app supports multiple scenes (e.g. CarPlay), it is possible that
|
|
147
|
+
// UIWindowScene is not the first scene, or it may not be present at all
|
|
148
|
+
UIWindowScene *scene = nil;
|
|
149
|
+
for (id connectedScene in array) {
|
|
150
|
+
if ([connectedScene isKindOfClass:[UIWindowScene class]]) {
|
|
151
|
+
scene = connectedScene;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (scene == nil) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
182
160
|
UIWindowSceneGeometryPreferencesIOS *geometryPreferences =
|
|
183
161
|
[[UIWindowSceneGeometryPreferencesIOS alloc] initWithInterfaceOrientations:orientationMask];
|
|
184
162
|
[scene requestGeometryUpdateWithPreferences:geometryPreferences
|
|
@@ -211,7 +189,7 @@
|
|
|
211
189
|
[RNSScreenWindowTraits updateHomeIndicatorAutoHidden];
|
|
212
190
|
}
|
|
213
191
|
|
|
214
|
-
#if !TARGET_OS_TV
|
|
192
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
215
193
|
// based on
|
|
216
194
|
// https://stackoverflow.com/questions/57965701/statusbarorientation-was-deprecated-in-ios-13-0-when-attempting-to-get-app-ori/61249908#61249908
|
|
217
195
|
+ (UIInterfaceOrientation)interfaceOrientation
|
|
@@ -219,11 +197,7 @@
|
|
|
219
197
|
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
|
|
220
198
|
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
221
199
|
if (@available(iOS 13.0, *)) {
|
|
222
|
-
|
|
223
|
-
if (firstWindow == nil) {
|
|
224
|
-
return UIInterfaceOrientationUnknown;
|
|
225
|
-
}
|
|
226
|
-
UIWindowScene *windowScene = firstWindow.windowScene;
|
|
200
|
+
UIWindowScene *windowScene = RCTKeyWindow().windowScene;
|
|
227
201
|
if (windowScene == nil) {
|
|
228
202
|
return UIInterfaceOrientationUnknown;
|
|
229
203
|
}
|
package/ios/RNSSearchBar.mm
CHANGED
|
@@ -50,7 +50,13 @@ namespace react = facebook::react;
|
|
|
50
50
|
|
|
51
51
|
- (void)initCommonProps
|
|
52
52
|
{
|
|
53
|
+
#if !TARGET_OS_TV
|
|
53
54
|
_controller = [[UISearchController alloc] initWithSearchResultsController:nil];
|
|
55
|
+
#else
|
|
56
|
+
// on TVOS UISearchController must contain searchResultsController.
|
|
57
|
+
_controller = [[UISearchController alloc] initWithSearchResultsController:[UIViewController new]];
|
|
58
|
+
#endif
|
|
59
|
+
|
|
54
60
|
_controller.searchBar.delegate = self;
|
|
55
61
|
_hideWhenScrolling = YES;
|
|
56
62
|
_placement = RNSSearchBarPlacementStacked;
|
|
@@ -304,6 +310,14 @@ namespace react = facebook::react;
|
|
|
304
310
|
[_controller.searchBar setText:text];
|
|
305
311
|
}
|
|
306
312
|
|
|
313
|
+
- (void)cancelSearch
|
|
314
|
+
{
|
|
315
|
+
#if !TARGET_OS_TV
|
|
316
|
+
[self searchBarCancelButtonClicked:_controller.searchBar];
|
|
317
|
+
_controller.active = NO;
|
|
318
|
+
#endif
|
|
319
|
+
}
|
|
320
|
+
|
|
307
321
|
#pragma mark-- Fabric specific
|
|
308
322
|
|
|
309
323
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
@@ -330,9 +344,11 @@ namespace react = facebook::react;
|
|
|
330
344
|
[self setPlaceholder:RCTNSStringFromStringNilIfEmpty(newScreenProps.placeholder)];
|
|
331
345
|
}
|
|
332
346
|
|
|
347
|
+
#if !TARGET_OS_VISION
|
|
333
348
|
if (oldScreenProps.autoCapitalize != newScreenProps.autoCapitalize) {
|
|
334
349
|
[self setAutoCapitalize:[RNSConvert UITextAutocapitalizationTypeFromCppEquivalent:newScreenProps.autoCapitalize]];
|
|
335
350
|
}
|
|
351
|
+
#endif
|
|
336
352
|
|
|
337
353
|
if (oldScreenProps.tintColor != newScreenProps.tintColor) {
|
|
338
354
|
[self setTintColor:RCTUIColorFromSharedColor(newScreenProps.tintColor)];
|
|
@@ -446,6 +462,14 @@ RCT_EXPORT_METHOD(setText : (NSNumber *_Nonnull)reactTag text : (NSString *)text
|
|
|
446
462
|
}];
|
|
447
463
|
}
|
|
448
464
|
|
|
465
|
+
RCT_EXPORT_METHOD(cancelSearch : (NSNumber *_Nonnull)reactTag)
|
|
466
|
+
{
|
|
467
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) {
|
|
468
|
+
RNSSearchBar *searchBar = viewRegistry[reactTag];
|
|
469
|
+
[searchBar cancelSearch];
|
|
470
|
+
}];
|
|
471
|
+
}
|
|
472
|
+
|
|
449
473
|
#endif /* !RCT_NEW_ARCH_ENABLED */
|
|
450
474
|
|
|
451
475
|
@end
|
|
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
function _getRequireWildcardCache(
|
|
9
|
-
function _interopRequireWildcard(
|
|
10
|
-
var _default = /*#__PURE__*/React.createContext(undefined);
|
|
11
|
-
exports.default = _default;
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
var _default = exports.default = /*#__PURE__*/React.createContext(undefined);
|
|
12
11
|
//# sourceMappingURL=TransitionProgressContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_default","exports","createContext","undefined"],"sourceRoot":"../../src","sources":["TransitionProgressContext.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,IAAAY,QAAA,GAAAC,OAAA,CAAAhB,OAAA,gBAShBT,KAAK,CAAC0B,aAAa,CAChCC,SACF,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _FullWindowOverlayNativeComponent = _interopRequireDefault(require("../fabric/FullWindowOverlayNativeComponent"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
// Native components
|
|
12
|
+
|
|
13
|
+
const NativeFullWindowOverlay = _FullWindowOverlayNativeComponent.default;
|
|
14
|
+
function FullWindowOverlay(props) {
|
|
15
|
+
if (_reactNative.Platform.OS !== 'ios') {
|
|
16
|
+
console.warn('Using FullWindowOverlay is only valid on iOS devices.');
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, props);
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(NativeFullWindowOverlay, {
|
|
20
|
+
style: {
|
|
21
|
+
position: 'absolute',
|
|
22
|
+
width: '100%',
|
|
23
|
+
height: '100%'
|
|
24
|
+
}
|
|
25
|
+
}, props.children);
|
|
26
|
+
}
|
|
27
|
+
var _default = exports.default = FullWindowOverlay;
|
|
28
|
+
//# sourceMappingURL=FullWindowOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_FullWindowOverlayNativeComponent","obj","__esModule","default","NativeFullWindowOverlay","FullWindowOverlayNativeComponent","FullWindowOverlay","props","Platform","OS","console","warn","createElement","View","style","position","width","height","children","_default","exports"],"sourceRoot":"../../../src","sources":["components/FullWindowOverlay.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,iCAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA0F,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAD1F;;AAEA,MAAMG,uBAIL,GAAGC,yCAAuC;AAE3C,SAASC,iBAAiBA,CAACC,KAA8B,EAAE;EACzD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzBC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACrE,oBAAOf,MAAA,CAAAO,OAAA,CAAAS,aAAA,CAACb,YAAA,CAAAc,IAAI,EAAKN,KAAQ,CAAC;EAC5B;EACA,oBACEX,MAAA,CAAAO,OAAA,CAAAS,aAAA,CAACR,uBAAuB;IACtBU,KAAK,EAAE;MAAEC,QAAQ,EAAE,UAAU;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO;EAAE,GAC9DV,KAAK,CAACW,QACgB,CAAC;AAE9B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjB,OAAA,GAEcG,iBAAiB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _default = exports.default = _reactNative.View;
|
|
9
|
+
//# sourceMappingURL=FullWindowOverlay.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","View"],"sourceRoot":"../../../src","sources":["components/FullWindowOverlay.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAoC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGrBC,iBAAI"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ScreenContext = exports.NativeScreen = exports.InnerScreen = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _TransitionProgressContext = _interopRequireDefault(require("../TransitionProgressContext"));
|
|
10
|
+
var _DelayedFreeze = _interopRequireDefault(require("./helpers/DelayedFreeze"));
|
|
11
|
+
var _core = require("../core");
|
|
12
|
+
var _ScreenNativeComponent = _interopRequireDefault(require("../fabric/ScreenNativeComponent"));
|
|
13
|
+
var _ModalScreenNativeComponent = _interopRequireDefault(require("../fabric/ModalScreenNativeComponent"));
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable @typescript-eslint/no-var-requires */ // Native components
|
|
16
|
+
const NativeScreen = exports.NativeScreen = _ScreenNativeComponent.default;
|
|
17
|
+
const AnimatedNativeScreen = _reactNative.Animated.createAnimatedComponent(NativeScreen);
|
|
18
|
+
const AnimatedNativeModalScreen = _reactNative.Animated.createAnimatedComponent(_ModalScreenNativeComponent.default);
|
|
19
|
+
|
|
20
|
+
// Incomplete type, all accessible properties available at:
|
|
21
|
+
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
22
|
+
class InnerScreen extends _react.default.Component {
|
|
23
|
+
ref = null;
|
|
24
|
+
closing = new _reactNative.Animated.Value(0);
|
|
25
|
+
progress = new _reactNative.Animated.Value(0);
|
|
26
|
+
goingForward = new _reactNative.Animated.Value(0);
|
|
27
|
+
setNativeProps(props) {
|
|
28
|
+
this.ref?.setNativeProps(props);
|
|
29
|
+
}
|
|
30
|
+
setRef = ref => {
|
|
31
|
+
this.ref = ref;
|
|
32
|
+
this.props.onComponentRef?.(ref);
|
|
33
|
+
};
|
|
34
|
+
render() {
|
|
35
|
+
const {
|
|
36
|
+
enabled = (0, _core.screensEnabled)(),
|
|
37
|
+
freezeOnBlur = (0, _core.freezeEnabled)(),
|
|
38
|
+
...rest
|
|
39
|
+
} = this.props;
|
|
40
|
+
|
|
41
|
+
// To maintain default behavior of formSheet stack presentation style and to have reasonable
|
|
42
|
+
// defaults for new medium-detent iOS API we need to set defaults here
|
|
43
|
+
const {
|
|
44
|
+
sheetAllowedDetents = 'large',
|
|
45
|
+
sheetLargestUndimmedDetent = 'all',
|
|
46
|
+
sheetGrabberVisible = false,
|
|
47
|
+
sheetCornerRadius = -1.0,
|
|
48
|
+
sheetExpandsWhenScrolledToEdge = true,
|
|
49
|
+
stackPresentation
|
|
50
|
+
} = rest;
|
|
51
|
+
if (enabled && _core.isNativePlatformSupported) {
|
|
52
|
+
// Due to how Yoga resolves layout, we need to have different components for modal nad non-modal screens
|
|
53
|
+
const AnimatedScreen = _reactNative.Platform.OS === 'android' || stackPresentation === 'push' || stackPresentation === 'containedModal' || stackPresentation === 'containedTransparentModal' ? AnimatedNativeScreen : AnimatedNativeModalScreen;
|
|
54
|
+
let {
|
|
55
|
+
// Filter out active prop in this case because it is unused and
|
|
56
|
+
// can cause problems depending on react-native version:
|
|
57
|
+
// https://github.com/react-navigation/react-navigation/issues/4886
|
|
58
|
+
active,
|
|
59
|
+
activityState,
|
|
60
|
+
children,
|
|
61
|
+
isNativeStack,
|
|
62
|
+
gestureResponseDistance,
|
|
63
|
+
onGestureCancel,
|
|
64
|
+
...props
|
|
65
|
+
} = rest;
|
|
66
|
+
if (active !== undefined && activityState === undefined) {
|
|
67
|
+
console.warn('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');
|
|
68
|
+
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const handleRef = ref => {
|
|
72
|
+
if (ref?.viewConfig?.validAttributes?.style) {
|
|
73
|
+
ref.viewConfig.validAttributes.style = {
|
|
74
|
+
...ref.viewConfig.validAttributes.style,
|
|
75
|
+
display: false
|
|
76
|
+
};
|
|
77
|
+
this.setRef(ref);
|
|
78
|
+
} else if (ref?._viewConfig?.validAttributes?.style) {
|
|
79
|
+
ref._viewConfig.validAttributes.style = {
|
|
80
|
+
...ref._viewConfig.validAttributes.style,
|
|
81
|
+
display: false
|
|
82
|
+
};
|
|
83
|
+
this.setRef(ref);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return /*#__PURE__*/_react.default.createElement(_DelayedFreeze.default, {
|
|
87
|
+
freeze: freezeOnBlur && activityState === 0
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(AnimatedScreen, _extends({}, props, {
|
|
89
|
+
activityState: activityState,
|
|
90
|
+
sheetAllowedDetents: sheetAllowedDetents,
|
|
91
|
+
sheetLargestUndimmedDetent: sheetLargestUndimmedDetent,
|
|
92
|
+
sheetGrabberVisible: sheetGrabberVisible,
|
|
93
|
+
sheetCornerRadius: sheetCornerRadius,
|
|
94
|
+
sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
|
|
95
|
+
gestureResponseDistance: {
|
|
96
|
+
start: gestureResponseDistance?.start ?? -1,
|
|
97
|
+
end: gestureResponseDistance?.end ?? -1,
|
|
98
|
+
top: gestureResponseDistance?.top ?? -1,
|
|
99
|
+
bottom: gestureResponseDistance?.bottom ?? -1
|
|
100
|
+
}
|
|
101
|
+
// This prevents showing blank screen when navigating between multiple screens with freezing
|
|
102
|
+
// https://github.com/software-mansion/react-native-screens/pull/1208
|
|
103
|
+
,
|
|
104
|
+
ref: handleRef,
|
|
105
|
+
onTransitionProgress: !isNativeStack ? undefined : _reactNative.Animated.event([{
|
|
106
|
+
nativeEvent: {
|
|
107
|
+
progress: this.progress,
|
|
108
|
+
closing: this.closing,
|
|
109
|
+
goingForward: this.goingForward
|
|
110
|
+
}
|
|
111
|
+
}], {
|
|
112
|
+
useNativeDriver: true
|
|
113
|
+
}),
|
|
114
|
+
onGestureCancel: onGestureCancel ?? (() => {
|
|
115
|
+
// for internal use
|
|
116
|
+
})
|
|
117
|
+
}), !isNativeStack ?
|
|
118
|
+
// see comment of this prop in types.tsx for information why it is needed
|
|
119
|
+
children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
|
|
120
|
+
value: {
|
|
121
|
+
progress: this.progress,
|
|
122
|
+
closing: this.closing,
|
|
123
|
+
goingForward: this.goingForward
|
|
124
|
+
}
|
|
125
|
+
}, children)));
|
|
126
|
+
} else {
|
|
127
|
+
// same reason as above
|
|
128
|
+
let {
|
|
129
|
+
active,
|
|
130
|
+
activityState,
|
|
131
|
+
style,
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
133
|
+
onComponentRef,
|
|
134
|
+
...props
|
|
135
|
+
} = rest;
|
|
136
|
+
if (active !== undefined && activityState === undefined) {
|
|
137
|
+
activityState = active !== 0 ? 2 : 0;
|
|
138
|
+
}
|
|
139
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({
|
|
140
|
+
style: [style, {
|
|
141
|
+
display: activityState !== 0 ? 'flex' : 'none'
|
|
142
|
+
}],
|
|
143
|
+
ref: this.setRef
|
|
144
|
+
}, props));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// context to be used when the user wants to use enhanced implementation
|
|
150
|
+
// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
|
|
151
|
+
exports.InnerScreen = InnerScreen;
|
|
152
|
+
const ScreenContext = exports.ScreenContext = /*#__PURE__*/_react.default.createContext(InnerScreen);
|
|
153
|
+
class Screen extends _react.default.Component {
|
|
154
|
+
static contextType = ScreenContext;
|
|
155
|
+
render() {
|
|
156
|
+
const ScreenWrapper = this.context || InnerScreen;
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(ScreenWrapper, this.props);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
var _default = exports.default = Screen;
|
|
161
|
+
//# sourceMappingURL=Screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_TransitionProgressContext","_DelayedFreeze","_core","_ScreenNativeComponent","_ModalScreenNativeComponent","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","NativeScreen","exports","ScreenNativeComponent","AnimatedNativeScreen","Animated","createAnimatedComponent","AnimatedNativeModalScreen","ModalScreenNativeComponent","InnerScreen","React","Component","ref","closing","Value","progress","goingForward","setNativeProps","props","setRef","onComponentRef","render","enabled","screensEnabled","freezeOnBlur","freezeEnabled","rest","sheetAllowedDetents","sheetLargestUndimmedDetent","sheetGrabberVisible","sheetCornerRadius","sheetExpandsWhenScrolledToEdge","stackPresentation","isNativePlatformSupported","AnimatedScreen","Platform","OS","active","activityState","children","isNativeStack","gestureResponseDistance","onGestureCancel","undefined","console","warn","handleRef","viewConfig","validAttributes","style","display","_viewConfig","createElement","freeze","start","end","top","bottom","onTransitionProgress","event","nativeEvent","useNativeDriver","Provider","value","View","ScreenContext","createContext","Screen","contextType","ScreenWrapper","context","_default"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ScreenContext = exports.NativeScreen = exports.InnerScreen = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _core = require("../core");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
+
const InnerScreen = exports.InnerScreen = _reactNative.View;
|
|
13
|
+
|
|
14
|
+
// We're using class component here because of the error from reanimated:
|
|
15
|
+
// createAnimatedComponent` does not support stateless functional components; use a class component instead.
|
|
16
|
+
class NativeScreen extends _react.default.Component {
|
|
17
|
+
render() {
|
|
18
|
+
let {
|
|
19
|
+
active,
|
|
20
|
+
activityState,
|
|
21
|
+
style,
|
|
22
|
+
enabled = (0, _core.screensEnabled)(),
|
|
23
|
+
...rest
|
|
24
|
+
} = this.props;
|
|
25
|
+
if (enabled) {
|
|
26
|
+
if (active !== undefined && activityState === undefined) {
|
|
27
|
+
activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View
|
|
31
|
+
// @ts-expect-error: hidden exists on web, but not in React Native
|
|
32
|
+
, _extends({
|
|
33
|
+
hidden: activityState === 0,
|
|
34
|
+
style: [style, {
|
|
35
|
+
display: activityState !== 0 ? 'flex' : 'none'
|
|
36
|
+
}]
|
|
37
|
+
}, rest));
|
|
38
|
+
}
|
|
39
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, rest);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.NativeScreen = NativeScreen;
|
|
43
|
+
const Screen = _reactNative.Animated.createAnimatedComponent(NativeScreen);
|
|
44
|
+
const ScreenContext = exports.ScreenContext = /*#__PURE__*/_react.default.createContext(Screen);
|
|
45
|
+
var _default = exports.default = Screen;
|
|
46
|
+
//# sourceMappingURL=Screen.web.js.map
|