react-native-screens 3.29.0 → 3.30.1
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 +17 -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
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { Animated, NativeSyntheticEvent, ViewProps, View, TargetedEvent, TextInputFocusEventData, ColorValue } from 'react-native';
|
|
3
|
+
import { NativeStackNavigatorProps } from './native-stack/types';
|
|
3
4
|
export declare type SearchBarCommands = {
|
|
4
5
|
focus: () => void;
|
|
5
6
|
blur: () => void;
|
|
6
7
|
clearText: () => void;
|
|
7
8
|
toggleCancelButton: (show: boolean) => void;
|
|
8
9
|
setText: (text: string) => void;
|
|
10
|
+
cancelSearch: () => void;
|
|
9
11
|
};
|
|
10
12
|
export declare type StackPresentationTypes = 'push' | 'modal' | 'transparentModal' | 'containedModal' | 'containedTransparentModal' | 'fullScreenModal' | 'formSheet';
|
|
11
13
|
export declare type StackAnimationTypes = 'default' | 'fade' | 'fade_from_bottom' | 'flip' | 'none' | 'simple_push' | 'slide_from_bottom' | 'slide_from_right' | 'slide_from_left' | 'ios';
|
|
@@ -253,7 +255,7 @@ export interface ScreenProps extends ViewProps {
|
|
|
253
255
|
* - "simple_push" – performs a default animation, but without shadow and native header transition (iOS only)
|
|
254
256
|
* - `slide_from_bottom` – performs a slide from bottom animation
|
|
255
257
|
* - "slide_from_right" - slide in the new screen from right to left (Android only, resolves to default transition on iOS)
|
|
256
|
-
* - "slide_from_left" - slide in the new screen from left to right
|
|
258
|
+
* - "slide_from_left" - slide in the new screen from left to right
|
|
257
259
|
* - "ios" - iOS like slide in animation (Android only, resolves to default transition on iOS)
|
|
258
260
|
* - "none" – the screen appears/dissapears without an animation
|
|
259
261
|
*/
|
|
@@ -323,12 +325,17 @@ export interface ScreenContainerProps extends ViewProps {
|
|
|
323
325
|
*/
|
|
324
326
|
hasTwoStates?: boolean;
|
|
325
327
|
}
|
|
328
|
+
export interface GestureDetectorBridge {
|
|
329
|
+
stackUseEffectCallback: (stackRef: React.MutableRefObject<React.Ref<NativeStackNavigatorProps>>) => void;
|
|
330
|
+
}
|
|
326
331
|
export interface ScreenStackProps extends ViewProps {
|
|
327
332
|
children?: React.ReactNode;
|
|
328
333
|
/**
|
|
329
334
|
* A callback that gets called when the current screen finishes its transition.
|
|
330
335
|
*/
|
|
331
336
|
onFinishTransitioning?: (e: NativeSyntheticEvent<TargetedEvent>) => void;
|
|
337
|
+
gestureDetectorBridge?: React.MutableRefObject<GestureDetectorBridge>;
|
|
338
|
+
ref?: React.MutableRefObject<React.Ref<View>>;
|
|
332
339
|
}
|
|
333
340
|
export interface ScreenStackHeaderConfigProps extends ViewProps {
|
|
334
341
|
/**
|
|
@@ -482,6 +489,7 @@ export interface SearchBarProps {
|
|
|
482
489
|
* * `blur` - removes focus from the search bar
|
|
483
490
|
* * `clearText` - removes any text present in the search bar input field
|
|
484
491
|
* * `setText` - sets the search bar's content to given value
|
|
492
|
+
* * `cancelSearch` - cancel search in search bar.
|
|
485
493
|
* * `toggleCancelButton` - depending on passed boolean value, hides or shows cancel button (iOS only)
|
|
486
494
|
*/
|
|
487
495
|
ref?: React.RefObject<SearchBarCommands>;
|
|
@@ -615,3 +623,4 @@ export interface SearchBarProps {
|
|
|
615
623
|
*/
|
|
616
624
|
shouldShowHintSearchIcon?: boolean;
|
|
617
625
|
}
|
|
626
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransitionProgress.d.ts","sourceRoot":"","sources":["../../src/useTransitionProgress.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,qBAAqB;;;;EAU5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sCAAsC,SAG5B,CAAC;AAExB,wBAAgB,sBAAsB,YAIrC;AAMD,eAAO,MAAM,4BAA4B,OAAO,CAAC"}
|
package/native-stack/README.md
CHANGED
|
@@ -286,7 +286,7 @@ How the given screen should appear/disappear when pushed or popped at the top of
|
|
|
286
286
|
- `simple_push` – performs a default animation, but without shadow and native header transition (iOS only)
|
|
287
287
|
- `slide_from_bottom` – performs a slide from bottom animation
|
|
288
288
|
- `slide_from_right` - slide in the new screen from right to left (Android only, resolves to default transition on iOS)
|
|
289
|
-
- `slide_from_left` - slide in the new screen from left to right
|
|
289
|
+
- `slide_from_left` - slide in the new screen from left to right
|
|
290
290
|
- `ios` - iOS like slide in animation (Android only, resolves to default transition on iOS)
|
|
291
291
|
- `none` - the screen appears/disappears without an animation.
|
|
292
292
|
|
|
@@ -616,6 +616,7 @@ A React ref to imperatively modify search bar. Supported actions:
|
|
|
616
616
|
* `blur` - remove focus from search bar
|
|
617
617
|
* `clearText` - clear text in search bar
|
|
618
618
|
* `setText` - set search bar's content to given string
|
|
619
|
+
* `cancelSearch` - cancel search in search bar.
|
|
619
620
|
* `toggleCancelButton` (iOS only) - toggle cancel button display near search bar.
|
|
620
621
|
|
|
621
622
|
### Events
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-screens",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.30.1",
|
|
4
4
|
"description": "Native navigation primitives for your React Native app.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"check-types": "tsc --noEmit",
|
|
@@ -20,21 +20,25 @@
|
|
|
20
20
|
"module": "lib/module/index",
|
|
21
21
|
"react-native": "src/index",
|
|
22
22
|
"source": "src/index",
|
|
23
|
-
"types": "lib/typescript/index",
|
|
23
|
+
"types": "lib/typescript/index.d.ts",
|
|
24
24
|
"files": [
|
|
25
25
|
"src/",
|
|
26
26
|
"common/",
|
|
27
27
|
"lib/",
|
|
28
28
|
"native-stack/",
|
|
29
|
+
"gesture-handler/",
|
|
29
30
|
"reanimated/",
|
|
30
31
|
"android/src/main/AndroidManifest.xml",
|
|
31
32
|
"android/src/main/java/",
|
|
33
|
+
"android/src/main/cpp/",
|
|
32
34
|
"android/src/main/jni/",
|
|
33
35
|
"android/src/main/res",
|
|
34
36
|
"android/src/fabric/",
|
|
35
37
|
"android/src/paper/",
|
|
36
38
|
"android/build.gradle",
|
|
39
|
+
"android/CMakeLists.txt",
|
|
37
40
|
"ios/",
|
|
41
|
+
"cpp/",
|
|
38
42
|
"windows/",
|
|
39
43
|
"RNScreens.podspec",
|
|
40
44
|
"react-native.config.js",
|
|
@@ -67,7 +71,9 @@
|
|
|
67
71
|
"devDependencies": {
|
|
68
72
|
"@babel/core": "^7.20.0",
|
|
69
73
|
"@babel/eslint-parser": "7.22.15",
|
|
70
|
-
"@react-native-community/
|
|
74
|
+
"@react-native-community/cli": "^11.3.6",
|
|
75
|
+
"@react-native-community/cli-platform-android": "^11.3.6",
|
|
76
|
+
"@react-native-community/cli-platform-ios": "^11.3.6",
|
|
71
77
|
"@react-navigation/native": "^5.8.0",
|
|
72
78
|
"@react-navigation/stack": "^5.10.0",
|
|
73
79
|
"@types/jest": "^29.3.1",
|
|
@@ -75,9 +81,6 @@
|
|
|
75
81
|
"@types/react-test-renderer": "^18.0.0",
|
|
76
82
|
"@typescript-eslint/eslint-plugin": "^6.5.0",
|
|
77
83
|
"@typescript-eslint/parser": "^6.5.0",
|
|
78
|
-
"@react-native-community/cli": "^11.3.6",
|
|
79
|
-
"@react-native-community/cli-platform-android": "^11.3.6",
|
|
80
|
-
"@react-native-community/cli-platform-ios": "^11.3.6",
|
|
81
84
|
"babel-jest": "^29.6.4",
|
|
82
85
|
"clang-format": "^1.8.0",
|
|
83
86
|
"eslint": "^8.19.0",
|
|
@@ -98,8 +101,10 @@
|
|
|
98
101
|
"react": "18.2.0",
|
|
99
102
|
"react-dom": "^18.2.0",
|
|
100
103
|
"react-native": "0.72.4",
|
|
101
|
-
"react-native-
|
|
102
|
-
"react-native-
|
|
104
|
+
"react-native-builder-bob": "^0.23.2",
|
|
105
|
+
"react-native-gesture-handler": "^2.13.3",
|
|
106
|
+
"react-native-reanimated": "3.7.0-nightly-20240109-9e2c33716",
|
|
107
|
+
"react-native-safe-area-context": "^4.8.1",
|
|
103
108
|
"react-native-windows": "^0.64.8",
|
|
104
109
|
"react-test-renderer": "^18.2.0",
|
|
105
110
|
"release-it": "^15.6.0",
|
|
@@ -117,7 +122,7 @@
|
|
|
117
122
|
"android/**/*.kt": "yarn format-android",
|
|
118
123
|
"ios/**/*.{h,m,mm,cpp}": "yarn format-ios"
|
|
119
124
|
},
|
|
120
|
-
"
|
|
125
|
+
"react-native-builder-bob": {
|
|
121
126
|
"source": "src",
|
|
122
127
|
"output": "lib",
|
|
123
128
|
"targets": [
|
|
@@ -137,10 +142,11 @@
|
|
|
137
142
|
],
|
|
138
143
|
"codegenConfig": {
|
|
139
144
|
"name": "rnscreens",
|
|
140
|
-
"type": "
|
|
145
|
+
"type": "all",
|
|
141
146
|
"jsSrcsDir": "./src/fabric",
|
|
142
147
|
"android": {
|
|
143
148
|
"javaPackageName": "com.swmansion.rnscreens"
|
|
144
149
|
}
|
|
145
|
-
}
|
|
150
|
+
},
|
|
151
|
+
"packageManager": "yarn@1.22.22"
|
|
146
152
|
}
|
package/react-native.config.js
CHANGED
|
@@ -20,7 +20,8 @@ module.exports = {
|
|
|
20
20
|
"RNSScreenStackHeaderSubviewComponentDescriptor",
|
|
21
21
|
"RNSScreenStackComponentDescriptor",
|
|
22
22
|
"RNSSearchBarComponentDescriptor",
|
|
23
|
-
'RNSScreenComponentDescriptor'
|
|
23
|
+
'RNSScreenComponentDescriptor',
|
|
24
|
+
'RNSModalScreenComponentDescriptor'
|
|
24
25
|
],
|
|
25
26
|
cmakeListsPath: "../android/src/main/jni/CMakeLists.txt"
|
|
26
27
|
} : {},
|
package/reanimated/package.json
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import { Platform, StyleProp, View, ViewStyle } from 'react-native';
|
|
3
|
+
|
|
4
|
+
// Native components
|
|
5
|
+
import FullWindowOverlayNativeComponent from '../fabric/FullWindowOverlayNativeComponent';
|
|
6
|
+
const NativeFullWindowOverlay: React.ComponentType<
|
|
7
|
+
PropsWithChildren<{
|
|
8
|
+
style: StyleProp<ViewStyle>;
|
|
9
|
+
}>
|
|
10
|
+
> = FullWindowOverlayNativeComponent as any;
|
|
11
|
+
|
|
12
|
+
function FullWindowOverlay(props: { children: ReactNode }) {
|
|
13
|
+
if (Platform.OS !== 'ios') {
|
|
14
|
+
console.warn('Using FullWindowOverlay is only valid on iOS devices.');
|
|
15
|
+
return <View {...props} />;
|
|
16
|
+
}
|
|
17
|
+
return (
|
|
18
|
+
<NativeFullWindowOverlay
|
|
19
|
+
style={{ position: 'absolute', width: '100%', height: '100%' }}>
|
|
20
|
+
{props.children}
|
|
21
|
+
</NativeFullWindowOverlay>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default FullWindowOverlay;
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Animated, View, Platform } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import TransitionProgressContext from '../TransitionProgressContext';
|
|
6
|
+
import DelayedFreeze from './helpers/DelayedFreeze';
|
|
7
|
+
import { ScreenProps } from 'react-native-screens';
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
freezeEnabled,
|
|
11
|
+
isNativePlatformSupported,
|
|
12
|
+
screensEnabled,
|
|
13
|
+
} from '../core';
|
|
14
|
+
|
|
15
|
+
// Native components
|
|
16
|
+
import ScreenNativeComponent from '../fabric/ScreenNativeComponent';
|
|
17
|
+
import ModalScreenNativeComponent from '../fabric/ModalScreenNativeComponent';
|
|
18
|
+
|
|
19
|
+
export const NativeScreen: React.ComponentType<ScreenProps> =
|
|
20
|
+
ScreenNativeComponent as any;
|
|
21
|
+
const AnimatedNativeScreen = Animated.createAnimatedComponent(NativeScreen);
|
|
22
|
+
const AnimatedNativeModalScreen = Animated.createAnimatedComponent(
|
|
23
|
+
ModalScreenNativeComponent as React.ComponentType<ScreenProps>
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
// Incomplete type, all accessible properties available at:
|
|
27
|
+
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
28
|
+
interface ViewConfig extends View {
|
|
29
|
+
viewConfig: {
|
|
30
|
+
validAttributes: {
|
|
31
|
+
style: {
|
|
32
|
+
display: boolean;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
_viewConfig: {
|
|
37
|
+
validAttributes: {
|
|
38
|
+
style: {
|
|
39
|
+
display: boolean;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export class InnerScreen extends React.Component<ScreenProps> {
|
|
46
|
+
private ref: React.ElementRef<typeof View> | null = null;
|
|
47
|
+
private closing = new Animated.Value(0);
|
|
48
|
+
private progress = new Animated.Value(0);
|
|
49
|
+
private goingForward = new Animated.Value(0);
|
|
50
|
+
|
|
51
|
+
setNativeProps(props: ScreenProps): void {
|
|
52
|
+
this.ref?.setNativeProps(props);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
setRef = (ref: React.ElementRef<typeof View> | null): void => {
|
|
56
|
+
this.ref = ref;
|
|
57
|
+
this.props.onComponentRef?.(ref);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
render() {
|
|
61
|
+
const {
|
|
62
|
+
enabled = screensEnabled(),
|
|
63
|
+
freezeOnBlur = freezeEnabled(),
|
|
64
|
+
...rest
|
|
65
|
+
} = this.props;
|
|
66
|
+
|
|
67
|
+
// To maintain default behavior of formSheet stack presentation style and to have reasonable
|
|
68
|
+
// defaults for new medium-detent iOS API we need to set defaults here
|
|
69
|
+
const {
|
|
70
|
+
sheetAllowedDetents = 'large',
|
|
71
|
+
sheetLargestUndimmedDetent = 'all',
|
|
72
|
+
sheetGrabberVisible = false,
|
|
73
|
+
sheetCornerRadius = -1.0,
|
|
74
|
+
sheetExpandsWhenScrolledToEdge = true,
|
|
75
|
+
stackPresentation,
|
|
76
|
+
} = rest;
|
|
77
|
+
|
|
78
|
+
if (enabled && isNativePlatformSupported) {
|
|
79
|
+
// Due to how Yoga resolves layout, we need to have different components for modal nad non-modal screens
|
|
80
|
+
const AnimatedScreen =
|
|
81
|
+
Platform.OS === 'android' ||
|
|
82
|
+
stackPresentation === 'push' ||
|
|
83
|
+
stackPresentation === 'containedModal' ||
|
|
84
|
+
stackPresentation === 'containedTransparentModal'
|
|
85
|
+
? AnimatedNativeScreen
|
|
86
|
+
: AnimatedNativeModalScreen;
|
|
87
|
+
|
|
88
|
+
let {
|
|
89
|
+
// Filter out active prop in this case because it is unused and
|
|
90
|
+
// can cause problems depending on react-native version:
|
|
91
|
+
// https://github.com/react-navigation/react-navigation/issues/4886
|
|
92
|
+
active,
|
|
93
|
+
activityState,
|
|
94
|
+
children,
|
|
95
|
+
isNativeStack,
|
|
96
|
+
gestureResponseDistance,
|
|
97
|
+
onGestureCancel,
|
|
98
|
+
...props
|
|
99
|
+
} = rest;
|
|
100
|
+
|
|
101
|
+
if (active !== undefined && activityState === undefined) {
|
|
102
|
+
console.warn(
|
|
103
|
+
'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'
|
|
104
|
+
);
|
|
105
|
+
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const handleRef = (ref: ViewConfig) => {
|
|
109
|
+
if (ref?.viewConfig?.validAttributes?.style) {
|
|
110
|
+
ref.viewConfig.validAttributes.style = {
|
|
111
|
+
...ref.viewConfig.validAttributes.style,
|
|
112
|
+
display: false,
|
|
113
|
+
};
|
|
114
|
+
this.setRef(ref);
|
|
115
|
+
} else if (ref?._viewConfig?.validAttributes?.style) {
|
|
116
|
+
ref._viewConfig.validAttributes.style = {
|
|
117
|
+
...ref._viewConfig.validAttributes.style,
|
|
118
|
+
display: false,
|
|
119
|
+
};
|
|
120
|
+
this.setRef(ref);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
return (
|
|
125
|
+
<DelayedFreeze freeze={freezeOnBlur && activityState === 0}>
|
|
126
|
+
<AnimatedScreen
|
|
127
|
+
{...props}
|
|
128
|
+
activityState={activityState}
|
|
129
|
+
sheetAllowedDetents={sheetAllowedDetents}
|
|
130
|
+
sheetLargestUndimmedDetent={sheetLargestUndimmedDetent}
|
|
131
|
+
sheetGrabberVisible={sheetGrabberVisible}
|
|
132
|
+
sheetCornerRadius={sheetCornerRadius}
|
|
133
|
+
sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}
|
|
134
|
+
gestureResponseDistance={{
|
|
135
|
+
start: gestureResponseDistance?.start ?? -1,
|
|
136
|
+
end: gestureResponseDistance?.end ?? -1,
|
|
137
|
+
top: gestureResponseDistance?.top ?? -1,
|
|
138
|
+
bottom: gestureResponseDistance?.bottom ?? -1,
|
|
139
|
+
}}
|
|
140
|
+
// This prevents showing blank screen when navigating between multiple screens with freezing
|
|
141
|
+
// https://github.com/software-mansion/react-native-screens/pull/1208
|
|
142
|
+
ref={handleRef}
|
|
143
|
+
onTransitionProgress={
|
|
144
|
+
!isNativeStack
|
|
145
|
+
? undefined
|
|
146
|
+
: Animated.event(
|
|
147
|
+
[
|
|
148
|
+
{
|
|
149
|
+
nativeEvent: {
|
|
150
|
+
progress: this.progress,
|
|
151
|
+
closing: this.closing,
|
|
152
|
+
goingForward: this.goingForward,
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
{ useNativeDriver: true }
|
|
157
|
+
)
|
|
158
|
+
}
|
|
159
|
+
onGestureCancel={
|
|
160
|
+
onGestureCancel ??
|
|
161
|
+
(() => {
|
|
162
|
+
// for internal use
|
|
163
|
+
})
|
|
164
|
+
}>
|
|
165
|
+
{!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed
|
|
166
|
+
children
|
|
167
|
+
) : (
|
|
168
|
+
<TransitionProgressContext.Provider
|
|
169
|
+
value={{
|
|
170
|
+
progress: this.progress,
|
|
171
|
+
closing: this.closing,
|
|
172
|
+
goingForward: this.goingForward,
|
|
173
|
+
}}>
|
|
174
|
+
{children}
|
|
175
|
+
</TransitionProgressContext.Provider>
|
|
176
|
+
)}
|
|
177
|
+
</AnimatedScreen>
|
|
178
|
+
</DelayedFreeze>
|
|
179
|
+
);
|
|
180
|
+
} else {
|
|
181
|
+
// same reason as above
|
|
182
|
+
let {
|
|
183
|
+
active,
|
|
184
|
+
activityState,
|
|
185
|
+
style,
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
187
|
+
onComponentRef,
|
|
188
|
+
...props
|
|
189
|
+
} = rest;
|
|
190
|
+
|
|
191
|
+
if (active !== undefined && activityState === undefined) {
|
|
192
|
+
activityState = active !== 0 ? 2 : 0;
|
|
193
|
+
}
|
|
194
|
+
return (
|
|
195
|
+
<Animated.View
|
|
196
|
+
style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}
|
|
197
|
+
ref={this.setRef}
|
|
198
|
+
{...props}
|
|
199
|
+
/>
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// context to be used when the user wants to use enhanced implementation
|
|
206
|
+
// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
|
|
207
|
+
export const ScreenContext = React.createContext(InnerScreen);
|
|
208
|
+
|
|
209
|
+
class Screen extends React.Component<ScreenProps> {
|
|
210
|
+
static contextType = ScreenContext;
|
|
211
|
+
|
|
212
|
+
render() {
|
|
213
|
+
const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;
|
|
214
|
+
return <ScreenWrapper {...this.props} />;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export default Screen;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ScreenProps } from 'react-native-screens';
|
|
2
|
+
import { Animated, View } from 'react-native';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
|
|
5
|
+
import { screensEnabled } from '../core';
|
|
6
|
+
|
|
7
|
+
export const InnerScreen = View;
|
|
8
|
+
|
|
9
|
+
// We're using class component here because of the error from reanimated:
|
|
10
|
+
// createAnimatedComponent` does not support stateless functional components; use a class component instead.
|
|
11
|
+
export class NativeScreen extends React.Component<ScreenProps> {
|
|
12
|
+
render(): JSX.Element {
|
|
13
|
+
let {
|
|
14
|
+
active,
|
|
15
|
+
activityState,
|
|
16
|
+
style,
|
|
17
|
+
enabled = screensEnabled(),
|
|
18
|
+
...rest
|
|
19
|
+
} = this.props;
|
|
20
|
+
|
|
21
|
+
if (enabled) {
|
|
22
|
+
if (active !== undefined && activityState === undefined) {
|
|
23
|
+
activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx
|
|
24
|
+
}
|
|
25
|
+
return (
|
|
26
|
+
<View
|
|
27
|
+
// @ts-expect-error: hidden exists on web, but not in React Native
|
|
28
|
+
hidden={activityState === 0}
|
|
29
|
+
style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}
|
|
30
|
+
{...rest}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return <View {...rest} />;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const Screen = Animated.createAnimatedComponent(NativeScreen);
|
|
40
|
+
|
|
41
|
+
export const ScreenContext = React.createContext(Screen);
|
|
42
|
+
|
|
43
|
+
export default Screen;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Platform, View } from 'react-native';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ScreenContainerProps } from 'react-native-screens';
|
|
4
|
+
import { isNativePlatformSupported, screensEnabled } from '../core';
|
|
5
|
+
|
|
6
|
+
// Native components
|
|
7
|
+
import ScreenContainerNativeComponent from '../fabric/ScreenContainerNativeComponent';
|
|
8
|
+
import ScreenNavigationContainerNativeComponent from '../fabric/ScreenNavigationContainerNativeComponent';
|
|
9
|
+
|
|
10
|
+
export const NativeScreenContainer: React.ComponentType<ScreenContainerProps> =
|
|
11
|
+
Platform.OS !== 'web' ? (ScreenContainerNativeComponent as any) : View;
|
|
12
|
+
export const NativeScreenNavigationContainer: React.ComponentType<ScreenContainerProps> =
|
|
13
|
+
Platform.OS !== 'web'
|
|
14
|
+
? (ScreenNavigationContainerNativeComponent as any)
|
|
15
|
+
: View;
|
|
16
|
+
|
|
17
|
+
function ScreenContainer(props: ScreenContainerProps) {
|
|
18
|
+
const { enabled = screensEnabled(), hasTwoStates, ...rest } = props;
|
|
19
|
+
|
|
20
|
+
if (enabled && isNativePlatformSupported) {
|
|
21
|
+
if (hasTwoStates) {
|
|
22
|
+
const ScreenNavigationContainer =
|
|
23
|
+
Platform.OS === 'ios'
|
|
24
|
+
? NativeScreenNavigationContainer
|
|
25
|
+
: NativeScreenContainer;
|
|
26
|
+
return <ScreenNavigationContainer {...rest} />;
|
|
27
|
+
}
|
|
28
|
+
return <NativeScreenContainer {...rest} />;
|
|
29
|
+
}
|
|
30
|
+
return <View {...rest} />;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default ScreenContainer;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ScreenStackProps, freezeEnabled } from 'react-native-screens';
|
|
3
|
+
import DelayedFreeze from './helpers/DelayedFreeze';
|
|
4
|
+
|
|
5
|
+
// Native components
|
|
6
|
+
import ScreenStackNativeComponent from '../fabric/ScreenStackNativeComponent';
|
|
7
|
+
const NativeScreenStack: React.ComponentType<ScreenStackProps> =
|
|
8
|
+
ScreenStackNativeComponent as any;
|
|
9
|
+
|
|
10
|
+
function ScreenStack(props: ScreenStackProps) {
|
|
11
|
+
const { children, gestureDetectorBridge, ...rest } = props;
|
|
12
|
+
const ref = React.useRef(null);
|
|
13
|
+
const size = React.Children.count(children);
|
|
14
|
+
// freezes all screens except the top one
|
|
15
|
+
const childrenWithFreeze = React.Children.map(children, (child, index) => {
|
|
16
|
+
// @ts-expect-error it's either SceneView in v6 or RouteView in v5
|
|
17
|
+
const { props, key } = child;
|
|
18
|
+
const descriptor = props?.descriptor ?? props?.descriptors?.[key];
|
|
19
|
+
const isFreezeEnabled =
|
|
20
|
+
descriptor?.options?.freezeOnBlur ?? freezeEnabled();
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<DelayedFreeze freeze={isFreezeEnabled && size - index > 1}>
|
|
24
|
+
{child}
|
|
25
|
+
</DelayedFreeze>
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
if (gestureDetectorBridge) {
|
|
31
|
+
gestureDetectorBridge.current.stackUseEffectCallback(ref);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return (
|
|
35
|
+
<NativeScreenStack {...rest} ref={ref}>
|
|
36
|
+
{childrenWithFreeze}
|
|
37
|
+
</NativeScreenStack>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default ScreenStack;
|