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
package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt
CHANGED
|
@@ -5,14 +5,10 @@ import com.facebook.react.bridge.WritableMap
|
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
|
6
6
|
|
|
7
7
|
class SearchBarSearchButtonPressEvent(surfaceId: Int, viewId: Int, private val text: String?) : Event<ScreenAppearEvent>(surfaceId, viewId) {
|
|
8
|
-
override fun getEventName(): String
|
|
9
|
-
return EVENT_NAME
|
|
10
|
-
}
|
|
8
|
+
override fun getEventName(): String = EVENT_NAME
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return 0
|
|
15
|
-
}
|
|
10
|
+
// All events for a given view can be coalesced.
|
|
11
|
+
override fun getCoalescingKey(): Short = 0
|
|
16
12
|
|
|
17
13
|
override fun getEventData(): WritableMap? = Arguments.createMap().apply {
|
|
18
14
|
putString("text", text)
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* See: https://github.com/software-mansion/react-native-screens/pull/1585
|
|
18
18
|
*/
|
|
19
19
|
#include <react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h>
|
|
20
|
+
#include <react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h>
|
|
20
21
|
|
|
21
22
|
namespace facebook {
|
|
22
23
|
namespace react {
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
<alpha
|
|
7
7
|
android:fromAlpha="1.0"
|
|
8
|
-
android:toAlpha="
|
|
8
|
+
android:toAlpha="1.0"
|
|
9
9
|
android:fillEnabled="true"
|
|
10
10
|
android:fillBefore="true"
|
|
11
11
|
android:fillAfter="true"
|
|
12
12
|
android:interpolator="@anim/rns_standard_accelerate_interpolator"
|
|
13
13
|
android:startOffset="0"
|
|
14
|
-
android:duration="
|
|
14
|
+
android:duration="450" />
|
|
15
15
|
|
|
16
16
|
<translate
|
|
17
17
|
android:fromXDelta="0"
|
|
@@ -8,7 +8,7 @@ abstract class FabricEnabledViewGroup constructor(context: ReactContext?) : View
|
|
|
8
8
|
|
|
9
9
|
val fabricViewStateManager get() = null as FabricViewStateManager?
|
|
10
10
|
|
|
11
|
-
protected fun updateScreenSizeFabric(width: Int, height: Int) {
|
|
11
|
+
protected fun updateScreenSizeFabric(width: Int, height: Int, headerHeight: Double) {
|
|
12
12
|
// do nothing
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
|
9
|
+
*
|
|
10
|
+
* @nolint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
package com.swmansion.rnscreens;
|
|
14
|
+
|
|
15
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
16
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
17
|
+
import com.facebook.react.bridge.ReactModuleWithSpec;
|
|
18
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
|
19
|
+
import javax.annotation.Nonnull;
|
|
20
|
+
|
|
21
|
+
public abstract class NativeScreensModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
|
|
22
|
+
public static final String NAME = "RNSModule";
|
|
23
|
+
|
|
24
|
+
public NativeScreensModuleSpec(ReactApplicationContext reactContext) {
|
|
25
|
+
super(reactContext);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public @Nonnull String getName() {
|
|
30
|
+
return NAME;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <react/debug/react_native_assert.h>
|
|
4
|
+
#include "RNSModalScreenShadowNode.h"
|
|
5
|
+
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
6
|
+
|
|
7
|
+
namespace facebook {
|
|
8
|
+
namespace react {
|
|
9
|
+
|
|
10
|
+
class RNSModalScreenComponentDescriptor final
|
|
11
|
+
: public ConcreteComponentDescriptor<RNSModalScreenShadowNode> {
|
|
12
|
+
public:
|
|
13
|
+
using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
|
|
14
|
+
|
|
15
|
+
void adopt(ShadowNode& shadowNode) const override {
|
|
16
|
+
react_native_assert(
|
|
17
|
+
dynamic_cast<RNSModalScreenShadowNode*>(&shadowNode));
|
|
18
|
+
auto& screenShadowNode =
|
|
19
|
+
static_cast<RNSModalScreenShadowNode&>(shadowNode);
|
|
20
|
+
|
|
21
|
+
react_native_assert(
|
|
22
|
+
dynamic_cast<YogaLayoutableShadowNode*>(&screenShadowNode));
|
|
23
|
+
auto& layoutableShadowNode =
|
|
24
|
+
dynamic_cast<YogaLayoutableShadowNode&>(screenShadowNode);
|
|
25
|
+
|
|
26
|
+
auto state =
|
|
27
|
+
std::static_pointer_cast<const RNSModalScreenShadowNode::ConcreteState>(
|
|
28
|
+
shadowNode.getState());
|
|
29
|
+
auto stateData = state->getData();
|
|
30
|
+
|
|
31
|
+
if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
|
|
32
|
+
layoutableShadowNode.setSize(
|
|
33
|
+
Size{stateData.frameSize.width, stateData.frameSize.height});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
ConcreteComponentDescriptor::adopt(shadowNode);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
} // namespace react
|
|
41
|
+
} // namespace facebook
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#include "RNSModalScreenShadowNode.h"
|
|
2
|
+
|
|
3
|
+
namespace facebook {
|
|
4
|
+
namespace react {
|
|
5
|
+
|
|
6
|
+
extern const char RNSModalScreenComponentName[] = "RNSModalScreen";
|
|
7
|
+
|
|
8
|
+
Point RNSModalScreenShadowNode::getContentOriginOffset() const {
|
|
9
|
+
auto stateData = getStateData();
|
|
10
|
+
auto contentOffset = stateData.contentOffset;
|
|
11
|
+
return {contentOffset.x, contentOffset.y};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
} // namespace react
|
|
15
|
+
} // namespace facebook
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "RNSScreenState.h"
|
|
4
|
+
#include <react/renderer/components/rnscreens/EventEmitters.h>
|
|
5
|
+
#include <react/renderer/components/rnscreens/Props.h>
|
|
6
|
+
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
|
|
7
|
+
#include <jsi/jsi.h>
|
|
8
|
+
|
|
9
|
+
namespace facebook {
|
|
10
|
+
namespace react {
|
|
11
|
+
|
|
12
|
+
JSI_EXPORT extern const char RNSModalScreenComponentName[];
|
|
13
|
+
|
|
14
|
+
class JSI_EXPORT RNSModalScreenShadowNode final : public ConcreteViewShadowNode<
|
|
15
|
+
RNSModalScreenComponentName,
|
|
16
|
+
RNSScreenProps,
|
|
17
|
+
RNSScreenEventEmitter,
|
|
18
|
+
RNSScreenState> {
|
|
19
|
+
public:
|
|
20
|
+
using ConcreteViewShadowNode::ConcreteViewShadowNode;
|
|
21
|
+
|
|
22
|
+
Point getContentOriginOffset() const override;
|
|
23
|
+
static ShadowNodeTraits BaseTraits() {
|
|
24
|
+
auto traits = ConcreteViewShadowNode::BaseTraits();
|
|
25
|
+
traits.set(ShadowNodeTraits::Trait::RootNodeKind);
|
|
26
|
+
return traits;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
} // namespace react
|
|
31
|
+
} // namespace facebook
|
|
@@ -5,5 +5,11 @@ namespace react {
|
|
|
5
5
|
|
|
6
6
|
extern const char RNSScreenComponentName[] = "RNSScreen";
|
|
7
7
|
|
|
8
|
+
Point RNSScreenShadowNode::getContentOriginOffset() const {
|
|
9
|
+
auto stateData = getStateData();
|
|
10
|
+
auto contentOffset = stateData.contentOffset;
|
|
11
|
+
return {contentOffset.x, contentOffset.y};
|
|
12
|
+
}
|
|
13
|
+
|
|
8
14
|
} // namespace react
|
|
9
15
|
} // namespace facebook
|
|
@@ -19,11 +19,7 @@ class JSI_EXPORT RNSScreenShadowNode final : public ConcreteViewShadowNode<
|
|
|
19
19
|
public:
|
|
20
20
|
using ConcreteViewShadowNode::ConcreteViewShadowNode;
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
auto traits = ConcreteViewShadowNode::BaseTraits();
|
|
24
|
-
traits.set(ShadowNodeTraits::Trait::RootNodeKind);
|
|
25
|
-
return traits;
|
|
26
|
-
}
|
|
22
|
+
Point getContentOriginOffset() const override;
|
|
27
23
|
};
|
|
28
24
|
|
|
29
25
|
} // namespace react
|
|
@@ -6,7 +6,7 @@ namespace react {
|
|
|
6
6
|
#ifdef ANDROID
|
|
7
7
|
folly::dynamic RNSScreenState::getDynamic() const {
|
|
8
8
|
return folly::dynamic::object("frameWidth", frameSize.width)(
|
|
9
|
-
"frameHeight", frameSize.height);
|
|
9
|
+
"frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)("contentOffsetY", contentOffset.y);
|
|
10
10
|
}
|
|
11
11
|
#endif
|
|
12
12
|
|
|
@@ -17,7 +17,7 @@ class JSI_EXPORT RNSScreenState final {
|
|
|
17
17
|
using Shared = std::shared_ptr<const RNSScreenState>;
|
|
18
18
|
|
|
19
19
|
RNSScreenState(){};
|
|
20
|
-
RNSScreenState(Size frameSize_) : frameSize(frameSize_){};
|
|
20
|
+
RNSScreenState(Size frameSize_, Point contentOffset_) : frameSize(frameSize_), contentOffset(contentOffset_){};
|
|
21
21
|
|
|
22
22
|
#ifdef ANDROID
|
|
23
23
|
RNSScreenState(
|
|
@@ -25,10 +25,15 @@ class JSI_EXPORT RNSScreenState final {
|
|
|
25
25
|
folly::dynamic data)
|
|
26
26
|
: frameSize(Size{
|
|
27
27
|
(Float)data["frameWidth"].getDouble(),
|
|
28
|
-
|
|
28
|
+
(Float)data["frameHeight"].getDouble()}),
|
|
29
|
+
contentOffset(Point{
|
|
30
|
+
(Float)data["contentOffsetX"].getDouble(),
|
|
31
|
+
(Float)data["contentOffsetY"].getDouble()})
|
|
32
|
+
{};
|
|
29
33
|
#endif
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
const Size frameSize{};
|
|
36
|
+
Point contentOffset;
|
|
32
37
|
|
|
33
38
|
#ifdef ANDROID
|
|
34
39
|
folly::dynamic getDynamic() const;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#include "RNScreensTurboModule.h"
|
|
2
|
+
|
|
3
|
+
using namespace facebook;
|
|
4
|
+
|
|
5
|
+
namespace RNScreens {
|
|
6
|
+
|
|
7
|
+
const char RNScreensTurboModule::MODULE_NAME[] = "RNScreensTurboModule";
|
|
8
|
+
|
|
9
|
+
std::function<std::array<int, 2>(int)> RNScreensTurboModule::startTransition_;
|
|
10
|
+
std::function<void(int, double)> RNScreensTurboModule::updateTransition_;
|
|
11
|
+
std::function<void(int, bool)> RNScreensTurboModule::finishTransition_;
|
|
12
|
+
std::function<void(int)> RNScreensTurboModule::disableSwipeBackForTopScreen_;
|
|
13
|
+
|
|
14
|
+
RNScreensTurboModule::RNScreensTurboModule(
|
|
15
|
+
std::function<std::array<int, 2>(int)> startTransition,
|
|
16
|
+
std::function<void(int, double)> updateTransition,
|
|
17
|
+
std::function<void(int, bool)> finishTransition,
|
|
18
|
+
std::function<void(int)> disableSwipeBackForTopScreen
|
|
19
|
+
) {
|
|
20
|
+
startTransition_ = startTransition;
|
|
21
|
+
updateTransition_ = updateTransition;
|
|
22
|
+
finishTransition_ = finishTransition;
|
|
23
|
+
disableSwipeBackForTopScreen_ = disableSwipeBackForTopScreen;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
RNScreensTurboModule::~RNScreensTurboModule() {};
|
|
27
|
+
|
|
28
|
+
jsi::Value RNScreensTurboModule::get(jsi::Runtime& rt, const jsi::PropNameID& name) {
|
|
29
|
+
if (name.utf8(rt) == "startTransition") {
|
|
30
|
+
return jsi::Function::createFromHostFunction(rt, name, 1, startTransition);
|
|
31
|
+
}
|
|
32
|
+
else if (name.utf8(rt) == "updateTransition") {
|
|
33
|
+
return jsi::Function::createFromHostFunction(rt, name, 2, updateTransition);
|
|
34
|
+
}
|
|
35
|
+
else if (name.utf8(rt) == "finishTransition") {
|
|
36
|
+
return jsi::Function::createFromHostFunction(rt, name, 2, finishTransition);
|
|
37
|
+
}
|
|
38
|
+
else if (name.utf8(rt) == "disableSwipeBackForTopScreen") {
|
|
39
|
+
return jsi::Function::createFromHostFunction(rt, name, 1, disableSwipeBackForTopScreen);
|
|
40
|
+
}
|
|
41
|
+
return jsi::Value::undefined();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void RNScreensTurboModule::set(jsi::Runtime&, const jsi::PropNameID&, const jsi::Value&) {};
|
|
45
|
+
|
|
46
|
+
std::vector<jsi::PropNameID> RNScreensTurboModule::getPropertyNames(jsi::Runtime& rt) {
|
|
47
|
+
std::vector<jsi::PropNameID> properties;
|
|
48
|
+
properties.push_back(jsi::PropNameID::forUtf8(rt, "startTransition"));
|
|
49
|
+
properties.push_back(jsi::PropNameID::forUtf8(rt, "updateTransition"));
|
|
50
|
+
properties.push_back(jsi::PropNameID::forUtf8(rt, "finishTransition"));
|
|
51
|
+
properties.push_back(jsi::PropNameID::forUtf8(rt, "disableSwipeBackForTopScreen"));
|
|
52
|
+
return properties;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
JSI_HOST_FUNCTION(RNScreensTurboModule::startTransition) {
|
|
56
|
+
if (count < 1) {
|
|
57
|
+
throw jsi::JSError(rt, "[RNScreens] `startTransition` method requires 1 argument.");
|
|
58
|
+
}
|
|
59
|
+
int stackTag = arguments[0].asNumber();
|
|
60
|
+
auto screenTags = startTransition_(stackTag);
|
|
61
|
+
jsi::Object screenTagsObject(rt);
|
|
62
|
+
jsi::Value topScreenTag, belowTopScreenTag, canStartTransition;
|
|
63
|
+
if (screenTags[0] > -1) {
|
|
64
|
+
topScreenTag = jsi::Value(screenTags[0]);
|
|
65
|
+
belowTopScreenTag = jsi::Value(screenTags[1]);
|
|
66
|
+
canStartTransition = jsi::Value(true);
|
|
67
|
+
} else {
|
|
68
|
+
topScreenTag = jsi::Value(-1);
|
|
69
|
+
belowTopScreenTag = jsi::Value(-1);
|
|
70
|
+
canStartTransition = jsi::Value(false);
|
|
71
|
+
}
|
|
72
|
+
screenTagsObject.setProperty(rt, "topScreenTag", topScreenTag);
|
|
73
|
+
screenTagsObject.setProperty(rt, "belowTopScreenTag", belowTopScreenTag);
|
|
74
|
+
screenTagsObject.setProperty(rt, "canStartTransition", canStartTransition);
|
|
75
|
+
return screenTagsObject;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
JSI_HOST_FUNCTION(RNScreensTurboModule::updateTransition) {
|
|
79
|
+
if (count < 2) {
|
|
80
|
+
throw jsi::JSError(rt, "[RNScreens] `updateTransition` requires 2 arguments.");
|
|
81
|
+
}
|
|
82
|
+
int stackTag = arguments[0].asNumber();
|
|
83
|
+
double progress = arguments[1].asNumber();
|
|
84
|
+
updateTransition_(stackTag, progress);
|
|
85
|
+
return jsi::Value::undefined();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
JSI_HOST_FUNCTION(RNScreensTurboModule::finishTransition) {
|
|
89
|
+
if (count < 2) {
|
|
90
|
+
throw jsi::JSError(rt, "[RNScreens] `finishTransition` requires 2 arguments.");
|
|
91
|
+
}
|
|
92
|
+
int stackTag = arguments[0].asNumber();
|
|
93
|
+
bool canceled = arguments[1].getBool();
|
|
94
|
+
finishTransition_(stackTag, canceled);
|
|
95
|
+
return jsi::Value::undefined();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
JSI_HOST_FUNCTION(RNScreensTurboModule::disableSwipeBackForTopScreen) {
|
|
99
|
+
if (count < 1) {
|
|
100
|
+
throw jsi::JSError(rt, "[RNScreens] `startTransition` method requires 1 argument.");
|
|
101
|
+
}
|
|
102
|
+
int stackTag = arguments[0].asNumber();
|
|
103
|
+
disableSwipeBackForTopScreen_(stackTag);
|
|
104
|
+
return jsi::Value::undefined();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#include <array>
|
|
2
|
+
#include <jsi/jsi.h>
|
|
3
|
+
|
|
4
|
+
#define JSI_HOST_FUNCTION(NAME) \
|
|
5
|
+
jsi::Value NAME( \
|
|
6
|
+
jsi::Runtime &rt, \
|
|
7
|
+
const jsi::Value &thisValue, \
|
|
8
|
+
const jsi::Value *arguments, \
|
|
9
|
+
size_t count \
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
using namespace facebook;
|
|
13
|
+
|
|
14
|
+
namespace RNScreens {
|
|
15
|
+
|
|
16
|
+
class RNScreensTurboModule : public jsi::HostObject {
|
|
17
|
+
|
|
18
|
+
static std::function<std::array<int, 2>(int)> startTransition_;
|
|
19
|
+
static std::function<void(int, double)> updateTransition_;
|
|
20
|
+
static std::function<void(int, bool)> finishTransition_;
|
|
21
|
+
static std::function<void(int)> disableSwipeBackForTopScreen_;
|
|
22
|
+
|
|
23
|
+
public:
|
|
24
|
+
static const char MODULE_NAME[];
|
|
25
|
+
|
|
26
|
+
RNScreensTurboModule(
|
|
27
|
+
std::function<std::array<int, 2>(int)> startTransition,
|
|
28
|
+
std::function<void(int, double)> updateTransition,
|
|
29
|
+
std::function<void(int, bool)> finishTransition,
|
|
30
|
+
std::function<void(int)> disableSwipeBackForTopScreen
|
|
31
|
+
);
|
|
32
|
+
~RNScreensTurboModule() override;
|
|
33
|
+
jsi::Value get(jsi::Runtime& rt, const jsi::PropNameID& name) override;
|
|
34
|
+
void set(jsi::Runtime&, const jsi::PropNameID&, const jsi::Value&) override;
|
|
35
|
+
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& rt) override;
|
|
36
|
+
static JSI_HOST_FUNCTION(startTransition);
|
|
37
|
+
static JSI_HOST_FUNCTION(updateTransition);
|
|
38
|
+
static JSI_HOST_FUNCTION(finishTransition);
|
|
39
|
+
static JSI_HOST_FUNCTION(disableSwipeBackForTopScreen);
|
|
40
|
+
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
}
|
package/ios/RNSConvert.h
CHANGED
|
@@ -26,8 +26,10 @@ namespace react = facebook::react;
|
|
|
26
26
|
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
|
|
27
27
|
(const react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance;
|
|
28
28
|
|
|
29
|
+
#if !TARGET_OS_VISION
|
|
29
30
|
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
30
31
|
(react::RNSSearchBarAutoCapitalize)autoCapitalize;
|
|
32
|
+
#endif
|
|
31
33
|
|
|
32
34
|
+ (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement;
|
|
33
35
|
|
package/ios/RNSConvert.mm
CHANGED
|
@@ -27,12 +27,13 @@
|
|
|
27
27
|
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:(react::RNSScreenStackAnimation)stackAnimation
|
|
28
28
|
{
|
|
29
29
|
switch (stackAnimation) {
|
|
30
|
-
// these
|
|
30
|
+
// these three are intentionally grouped
|
|
31
31
|
case react::RNSScreenStackAnimation::Slide_from_right:
|
|
32
|
-
case react::RNSScreenStackAnimation::Slide_from_left:
|
|
33
32
|
case react::RNSScreenStackAnimation::Ios:
|
|
34
33
|
case react::RNSScreenStackAnimation::Default:
|
|
35
34
|
return RNSScreenStackAnimationDefault;
|
|
35
|
+
case react::RNSScreenStackAnimation::Slide_from_left:
|
|
36
|
+
return RNSScreenStackAnimationSlideFromLeft;
|
|
36
37
|
case react::RNSScreenStackAnimation::Flip:
|
|
37
38
|
return RNSScreenStackAnimationFlip;
|
|
38
39
|
case react::RNSScreenStackAnimation::Simple_push:
|
|
@@ -123,6 +124,7 @@
|
|
|
123
124
|
};
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
#if !TARGET_OS_VISION
|
|
126
128
|
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
127
129
|
(react::RNSSearchBarAutoCapitalize)autoCapitalize
|
|
128
130
|
{
|
|
@@ -137,6 +139,7 @@
|
|
|
137
139
|
return UITextAutocapitalizationTypeNone;
|
|
138
140
|
}
|
|
139
141
|
}
|
|
142
|
+
#endif
|
|
140
143
|
|
|
141
144
|
+ (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RNSSearchBarPlacement)placement
|
|
142
145
|
{
|
package/ios/RNSEnums.h
CHANGED
|
@@ -16,6 +16,7 @@ typedef NS_ENUM(NSInteger, RNSScreenStackAnimation) {
|
|
|
16
16
|
RNSScreenStackAnimationFlip,
|
|
17
17
|
RNSScreenStackAnimationSlideFromBottom,
|
|
18
18
|
RNSScreenStackAnimationSimplePush,
|
|
19
|
+
RNSScreenStackAnimationSlideFromLeft,
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
typedef NS_ENUM(NSInteger, RNSScreenReplaceAnimation) {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#import "RNSModalScreen.h"
|
|
2
|
+
|
|
3
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
4
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
5
|
+
#import <rnscreens/RNSModalScreenComponentDescriptor.h>
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
@implementation RNSModalScreen
|
|
9
|
+
|
|
10
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
11
|
+
+ (react::ComponentDescriptorProvider)componentDescriptorProvider
|
|
12
|
+
{
|
|
13
|
+
return react::concreteComponentDescriptorProvider<react::RNSModalScreenComponentDescriptor>();
|
|
14
|
+
}
|
|
15
|
+
#endif
|
|
16
|
+
@end
|
|
17
|
+
|
|
18
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
19
|
+
Class<RCTComponentViewProtocol> RNSModalScreenCls(void)
|
|
20
|
+
{
|
|
21
|
+
return RNSModalScreen.class;
|
|
22
|
+
}
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
@implementation RNSModalScreenManager
|
|
26
|
+
|
|
27
|
+
RCT_EXPORT_MODULE()
|
|
28
|
+
|
|
29
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
30
|
+
#else
|
|
31
|
+
- (UIView *)view
|
|
32
|
+
{
|
|
33
|
+
return [[RNSModalScreen alloc] initWithBridge:self.bridge];
|
|
34
|
+
}
|
|
35
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
36
|
+
@end
|
package/ios/RNSModule.h
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
3
|
+
#import <rnscreens/rnscreens.h>
|
|
4
|
+
#else
|
|
5
|
+
#import <React/RCTBridge.h>
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
@interface RNSModule : NSObject
|
|
11
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
12
|
+
<NativeScreensModuleSpec>
|
|
13
|
+
#else
|
|
14
|
+
<RCTBridgeModule>
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
NS_ASSUME_NONNULL_END
|