@amazon-devices/react-native-screens 2.0.9000000000 → 3.0.9000000000-rn-83
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 +57 -18
- package/RNScreens.podspec +12 -30
- package/SystemBundles/d557bc3ccca761f329c4a0be9f40c5edeceaeb72783a7971e6e3dcf80a6bedb0.bundle +45130 -0
- package/SystemBundles/d557bc3ccca761f329c4a0be9f40c5edeceaeb72783a7971e6e3dcf80a6bedb0.map +13686 -0
- package/SystemModules/amzn__react-native-screens-3.modules.txt +158 -0
- package/SystemModules/amzn__react-native-screens-3.private.modules.txt +376 -0
- package/SystemModules/keplerscript-system-bundle-config.json +4 -4
- package/android/CMakeLists.txt +80 -0
- package/android/build.gradle +96 -17
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +61 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +38 -25
- package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +53 -0
- package/android/src/main/cpp/NativeProxy.cpp +51 -0
- package/android/src/main/cpp/NativeProxy.h +35 -0
- package/android/src/main/cpp/OnLoad.cpp +8 -0
- package/android/src/main/cpp/jni-adapter.cpp +106 -0
- package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +20 -10
- package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +69 -1
- package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +8 -8
- package/android/src/main/java/com/swmansion/rnscreens/InsetsObserverProxy.kt +104 -0
- package/android/src/main/java/com/swmansion/rnscreens/ModalScreenViewManager.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/NativeDismissalObserver.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +65 -7
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +327 -84
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +122 -72
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +27 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapper.kt +38 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContentWrapperManager.kt +25 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +10 -2
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFooter.kt +299 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFooterManager.kt +25 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +91 -67
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +12 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenModalFragment.kt +281 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +184 -81
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +467 -80
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +8 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +156 -124
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigShadowNode.kt +25 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +159 -39
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +24 -9
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +19 -13
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +31 -28
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +276 -71
- package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +124 -64
- package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +127 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +4 -2
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +160 -53
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +57 -32
- package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +15 -10
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetBehaviorExt.kt +42 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogRootView.kt +104 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/BottomSheetDialogScreen.kt +26 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingFragment.kt +493 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +66 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/GestureTransparentViewGroup.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/SheetUtils.kt +135 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +7 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +8 -9
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +7 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +9 -10
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +8 -4
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +13 -16
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +8 -9
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +8 -11
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +7 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +8 -9
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +7 -8
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +12 -11
- package/android/src/main/java/com/swmansion/rnscreens/events/SheetDetentChangedEvent.kt +27 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +4 -1
- package/android/src/main/java/com/swmansion/rnscreens/ext/NumericExt.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/ext/ViewExt.kt +32 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +1 -5
- package/android/src/main/java/com/swmansion/rnscreens/utils/PaddingBundle.kt +8 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt +282 -0
- package/android/src/main/jni/CMakeLists.txt +35 -23
- package/android/src/main/jni/rnscreens.h +3 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +5 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +5 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +6 -0
- package/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +6 -0
- package/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +5 -0
- package/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +5 -0
- package/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +6 -0
- package/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +6 -0
- package/android/src/main/res/base/drawable/rns_rounder_top_corners_shape.xml +8 -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/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +16 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +16 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +16 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +16 -3
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +7 -2
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +6 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +2 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +99 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +37 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +39 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +11 -2
- package/android/src/paper/java/com/swmansion/rnscreens/NativeProxy.kt +19 -0
- package/android/src/paper/java/com/swmansion/rnscreens/NativeScreensModuleSpec.java +36 -0
- package/common/cpp/react/renderer/components/rnscreens/FrameCorrectionModes.h +51 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +40 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.cpp +16 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +55 -12
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +157 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +31 -11
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h +49 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.cpp +22 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigShadowNode.h +40 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.cpp +34 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderConfigState.h +57 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h +27 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.cpp +8 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewShadowNode.h +31 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.cpp +15 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewState.h +39 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +23 -2
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +33 -8
- package/common/cpp/react/renderer/components/rnscreens/utils/RectUtil.h +36 -0
- package/cpp/RNSScreenRemovalListener.cpp +25 -0
- package/cpp/RNSScreenRemovalListener.h +20 -0
- package/cpp/RNScreensTurboModule.cpp +115 -0
- package/cpp/RNScreensTurboModule.h +40 -0
- package/gesture-handler/package.json +6 -0
- package/ios/RNSConvert.h +24 -4
- package/ios/RNSConvert.mm +180 -55
- package/ios/RNSEnums.h +48 -0
- package/ios/RNSFullWindowOverlay.mm +12 -2
- package/ios/RNSModalScreen.h +8 -0
- package/ios/RNSModalScreen.mm +65 -0
- package/ios/RNSModule.h +19 -0
- package/ios/RNSModule.mm +173 -0
- package/ios/RNSPercentDrivenInteractiveTransition.h +12 -0
- package/ios/RNSPercentDrivenInteractiveTransition.mm +69 -0
- package/ios/RNSScreen.h +24 -5
- package/ios/RNSScreen.mm +652 -173
- package/ios/RNSScreenContainer.mm +12 -1
- package/ios/RNSScreenContentWrapper.h +44 -0
- package/ios/RNSScreenContentWrapper.mm +67 -0
- package/ios/RNSScreenFooter.h +30 -0
- package/ios/RNSScreenFooter.mm +142 -0
- package/ios/RNSScreenNavigationContainer.mm +7 -0
- package/ios/RNSScreenStack.h +6 -0
- package/ios/RNSScreenStack.mm +333 -109
- package/ios/RNSScreenStackAnimator.h +15 -1
- package/ios/RNSScreenStackAnimator.mm +380 -115
- package/ios/RNSScreenStackHeaderConfig.h +74 -6
- package/ios/RNSScreenStackHeaderConfig.mm +338 -69
- package/ios/RNSScreenStackHeaderSubview.h +0 -7
- package/ios/RNSScreenStackHeaderSubview.mm +61 -24
- package/ios/RNSScreenWindowTraits.h +1 -1
- package/ios/RNSScreenWindowTraits.mm +24 -50
- package/ios/RNSSearchBar.h +5 -5
- package/ios/RNSSearchBar.mm +42 -11
- package/ios/events/RNSHeaderHeightChangeEvent.h +0 -1
- package/ios/events/RNSHeaderHeightChangeEvent.mm +15 -0
- package/ios/events/RNSScreenViewEvent.h +0 -1
- package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.h +15 -0
- package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.mm +14 -0
- package/ios/utils/RCTTouchHandler+RNSUtility.h +15 -0
- package/ios/utils/RCTTouchHandler+RNSUtility.mm +15 -0
- package/ios/utils/RNSDefines.h +7 -0
- package/ios/utils/RNSUIBarButtonItem.h +2 -0
- package/ios/utils/UINavigationBar+RNSUtility.h +37 -0
- package/ios/utils/UINavigationBar+RNSUtility.mm +44 -0
- package/ios/utils/UIView+RNSUtility.h +23 -0
- package/ios/utils/UIView+RNSUtility.mm +54 -0
- package/kepler-compatibility.json +2 -2
- package/lib/commonjs/TransitionProgressContext.js +2 -2
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/components/DebugContainer.js +38 -0
- package/lib/commonjs/components/DebugContainer.js.map +1 -0
- package/lib/commonjs/components/DebugContainer.web.js +14 -0
- package/lib/commonjs/components/DebugContainer.web.js.map +1 -0
- package/lib/commonjs/components/FullWindowOverlay.js +31 -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 +286 -0
- package/lib/commonjs/components/Screen.js.map +1 -0
- package/lib/commonjs/components/Screen.web.js +48 -0
- package/lib/commonjs/components/Screen.web.js.map +1 -0
- package/lib/commonjs/components/ScreenContainer.js +32 -0
- package/lib/commonjs/components/ScreenContainer.js.map +1 -0
- package/lib/commonjs/components/ScreenContainer.web.js +10 -0
- package/lib/commonjs/components/ScreenContainer.web.js.map +1 -0
- package/lib/commonjs/components/ScreenContentWrapper.js +17 -0
- package/lib/commonjs/components/ScreenContentWrapper.js.map +1 -0
- package/lib/commonjs/components/ScreenContentWrapper.web.js +10 -0
- package/lib/commonjs/components/ScreenContentWrapper.web.js.map +1 -0
- package/lib/commonjs/components/ScreenFooter.js +25 -0
- package/lib/commonjs/components/ScreenFooter.js.map +1 -0
- package/lib/commonjs/components/ScreenFooter.web.js +11 -0
- package/lib/commonjs/components/ScreenFooter.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStack.js +67 -0
- package/lib/commonjs/components/ScreenStack.js.map +1 -0
- package/lib/commonjs/components/ScreenStack.web.js +10 -0
- package/lib/commonjs/components/ScreenStack.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.js +100 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.js.map +1 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.web.js +39 -0
- package/lib/commonjs/components/ScreenStackHeaderConfig.web.js.map +1 -0
- package/lib/commonjs/components/ScreenStackItem.js +106 -0
- package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
- package/lib/commonjs/components/SearchBar.js +67 -0
- package/lib/commonjs/components/SearchBar.js.map +1 -0
- package/lib/commonjs/components/SearchBar.web.js +10 -0
- package/lib/commonjs/components/SearchBar.web.js.map +1 -0
- package/lib/commonjs/components/helpers/DelayedFreeze.js +31 -0
- package/lib/commonjs/components/helpers/DelayedFreeze.js.map +1 -0
- package/lib/commonjs/components/helpers/usePrevious.js +16 -0
- package/lib/commonjs/components/helpers/usePrevious.js.map +1 -0
- package/lib/commonjs/contexts.js +11 -0
- package/lib/commonjs/contexts.js.map +1 -0
- package/lib/commonjs/core.js +40 -0
- package/lib/commonjs/core.js.map +1 -0
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +17 -2
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ModalScreenNativeComponent.js +14 -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 +8 -11
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js +18 -0
- package/lib/commonjs/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenFooterNativeComponent.js +10 -0
- package/lib/commonjs/fabric/ScreenFooterNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js +13 -15
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +3 -2
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -9
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +6 -3
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +8 -11
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +5 -6
- 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 +200 -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 +45 -0
- package/lib/commonjs/gesture-handler/defaults.js.map +1 -0
- package/lib/commonjs/gesture-handler/fabricUtils.js +66 -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 +157 -95
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native-stack/contexts/GHContext.js +12 -0
- package/lib/commonjs/native-stack/contexts/GHContext.js.map +1 -0
- package/lib/commonjs/native-stack/index.js +1 -1
- package/lib/commonjs/native-stack/index.js.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +24 -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 +1 -2
- package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +1 -2
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +1 -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 +22 -0
- package/lib/commonjs/native-stack/utils/getStatusBarHeight.js.map +1 -0
- package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +2 -3
- package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +5 -6
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -3
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +2 -4
- package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/commonjs/native-stack/views/FooterComponent.js +17 -0
- package/lib/commonjs/native-stack/views/FooterComponent.js.map +1 -0
- package/lib/commonjs/native-stack/views/HeaderConfig.js +23 -15
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +124 -56
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +1 -2
- package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +14 -21
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js +4 -4
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +10 -18
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +1 -2
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/commonjs/reanimated/index.js +1 -1
- package/lib/commonjs/reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +4 -5
- package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -3
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useTransitionProgress.js +2 -3
- package/lib/commonjs/useTransitionProgress.js.map +1 -1
- package/lib/commonjs/utils.js +28 -6
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/TransitionProgressContext.js +2 -0
- package/lib/module/TransitionProgressContext.js.map +1 -1
- package/lib/module/components/DebugContainer.js +30 -0
- package/lib/module/components/DebugContainer.js.map +1 -0
- package/lib/module/components/DebugContainer.web.js +6 -0
- package/lib/module/components/DebugContainer.web.js.map +1 -0
- package/lib/module/components/FullWindowOverlay.js +24 -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 +282 -0
- package/lib/module/components/Screen.js.map +1 -0
- package/lib/module/components/Screen.web.js +41 -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 +4 -0
- package/lib/module/components/ScreenContainer.web.js.map +1 -0
- package/lib/module/components/ScreenContentWrapper.js +10 -0
- package/lib/module/components/ScreenContentWrapper.js.map +1 -0
- package/lib/module/components/ScreenContentWrapper.web.js +4 -0
- package/lib/module/components/ScreenContentWrapper.web.js.map +1 -0
- package/lib/module/components/ScreenFooter.js +18 -0
- package/lib/module/components/ScreenFooter.js.map +1 -0
- package/lib/module/components/ScreenFooter.web.js +6 -0
- package/lib/module/components/ScreenFooter.web.js.map +1 -0
- package/lib/module/components/ScreenStack.js +63 -0
- package/lib/module/components/ScreenStack.js.map +1 -0
- package/lib/module/components/ScreenStack.web.js +4 -0
- package/lib/module/components/ScreenStack.web.js.map +1 -0
- package/lib/module/components/ScreenStackHeaderConfig.js +91 -0
- package/lib/module/components/ScreenStackHeaderConfig.js.map +1 -0
- package/lib/module/components/ScreenStackHeaderConfig.web.js +26 -0
- package/lib/module/components/ScreenStackHeaderConfig.web.js.map +1 -0
- package/lib/module/components/ScreenStackItem.js +98 -0
- package/lib/module/components/ScreenStackItem.js.map +1 -0
- package/lib/module/components/SearchBar.js +62 -0
- package/lib/module/components/SearchBar.js.map +1 -0
- package/lib/module/components/SearchBar.web.js +4 -0
- package/lib/module/components/SearchBar.web.js.map +1 -0
- package/lib/module/components/helpers/DelayedFreeze.js +24 -0
- package/lib/module/components/helpers/DelayedFreeze.js.map +1 -0
- package/lib/module/components/helpers/usePrevious.js +10 -0
- package/lib/module/components/helpers/usePrevious.js.map +1 -0
- package/lib/module/contexts.js +4 -0
- package/lib/module/contexts.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 +16 -0
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ModalScreenNativeComponent.js +10 -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 +3 -4
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenContentWrapperNativeComponent.js +10 -0
- package/lib/module/fabric/ScreenContentWrapperNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenFooterNativeComponent.js +3 -0
- package/lib/module/fabric/ScreenFooterNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenNativeComponent.js +8 -7
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +2 -0
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +8 -2
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +5 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js +3 -3
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +3 -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 +193 -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 +39 -0
- package/lib/module/gesture-handler/defaults.js.map +1 -0
- package/lib/module/gesture-handler/fabricUtils.js +61 -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 +29 -64
- package/lib/module/index.js.map +1 -1
- package/lib/module/native-stack/contexts/GHContext.js +6 -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 +22 -21
- 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 +16 -0
- package/lib/module/native-stack/utils/getStatusBarHeight.js.map +1 -0
- package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useBackPressSubscription.js +4 -5
- 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 +2 -3
- package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/module/native-stack/views/FooterComponent.js +10 -0
- package/lib/module/native-stack/views/FooterComponent.js.map +1 -0
- package/lib/module/native-stack/views/HeaderConfig.js +14 -6
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +118 -47
- 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 +9 -13
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js +2 -3
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js +8 -16
- 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 +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 +26 -5
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/TransitionProgressContext.d.ts +2 -1
- package/lib/typescript/TransitionProgressContext.d.ts.map +1 -0
- package/lib/typescript/components/DebugContainer.d.ts +15 -0
- package/lib/typescript/components/DebugContainer.d.ts.map +1 -0
- package/lib/typescript/components/DebugContainer.web.d.ts +4 -0
- package/lib/typescript/components/DebugContainer.web.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 +8 -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 +5 -0
- package/lib/typescript/components/ScreenContainer.d.ts.map +1 -0
- package/lib/typescript/components/ScreenContainer.web.d.ts +4 -0
- package/lib/typescript/components/ScreenContainer.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenContentWrapper.d.ts +5 -0
- package/lib/typescript/components/ScreenContentWrapper.d.ts.map +1 -0
- package/lib/typescript/components/ScreenContentWrapper.web.d.ts +4 -0
- package/lib/typescript/components/ScreenContentWrapper.web.d.ts.map +1 -0
- package/lib/typescript/components/ScreenFooter.d.ts +12 -0
- package/lib/typescript/components/ScreenFooter.d.ts.map +1 -0
- package/lib/typescript/components/ScreenFooter.web.d.ts +6 -0
- package/lib/typescript/components/ScreenFooter.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 +4 -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/ScreenStackItem.d.ts +11 -0
- package/lib/typescript/components/ScreenStackItem.d.ts.map +1 -0
- package/lib/typescript/components/SearchBar.d.ts +5 -0
- package/lib/typescript/components/SearchBar.d.ts.map +1 -0
- package/lib/typescript/components/SearchBar.web.d.ts +4 -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/components/helpers/usePrevious.d.ts +2 -0
- package/lib/typescript/components/helpers/usePrevious.d.ts.map +1 -0
- package/lib/typescript/contexts.d.ts +5 -0
- package/lib/typescript/contexts.d.ts.map +1 -0
- package/lib/typescript/core.d.ts +6 -0
- package/lib/typescript/core.d.ts.map +1 -0
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +76 -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/ScreenContentWrapperNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/ScreenContentWrapperNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts +7 -0
- package/lib/typescript/fabric/ScreenFooterNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts +34 -24
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +12 -2
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +4 -2
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +17 -16
- 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 +10 -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 +25 -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 +4 -0
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -0
- package/lib/typescript/native-stack/types.d.ts +191 -33
- 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 +2 -1
- package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +3 -2
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts +3 -0
- package/lib/typescript/native-stack/utils/getStatusBarHeight.d.ts.map +1 -0
- package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +2 -1
- 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/FooterComponent.d.ts +7 -0
- package/lib/typescript/native-stack/views/FooterComponent.d.ts.map +1 -0
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts +4 -3
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -0
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
- 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 +3 -3
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts.map +1 -0
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +3 -3
- 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 +2 -1
- 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 +187 -37
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/useTransitionProgress.d.ts +4 -3
- package/lib/typescript/useTransitionProgress.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +27 -1
- package/lib/typescript/utils.d.ts.map +1 -0
- package/native-stack/README.md +156 -108
- package/native-stack/package.json +4 -4
- package/oss-attribution/attribution.txt +77 -0
- package/oss-attribution/licenseInfos.json +27 -0
- package/package.json +196 -1
- package/react-native.config.js +19 -16
- package/reanimated/package.json +1 -1
- package/src/TransitionProgressContext.tsx +3 -1
- package/src/components/DebugContainer.tsx +46 -0
- package/src/components/DebugContainer.web.tsx +7 -0
- package/src/components/FullWindowOverlay.tsx +33 -0
- package/src/components/FullWindowOverlay.web.tsx +6 -0
- package/src/components/Screen.tsx +392 -0
- package/src/components/Screen.web.tsx +47 -0
- package/src/components/ScreenContainer.tsx +28 -0
- package/src/components/ScreenContainer.web.tsx +5 -0
- package/src/components/ScreenContentWrapper.tsx +9 -0
- package/src/components/ScreenContentWrapper.web.tsx +5 -0
- package/src/components/ScreenFooter.tsx +20 -0
- package/src/components/ScreenFooter.web.tsx +7 -0
- package/src/components/ScreenStack.tsx +112 -0
- package/src/components/ScreenStack.web.tsx +5 -0
- package/src/components/ScreenStackHeaderConfig.tsx +127 -0
- package/src/components/ScreenStackHeaderConfig.web.tsx +45 -0
- package/src/components/ScreenStackItem.tsx +174 -0
- package/src/components/SearchBar.tsx +105 -0
- package/src/components/SearchBar.web.tsx +5 -0
- package/src/components/helpers/DelayedFreeze.tsx +27 -0
- package/src/components/helpers/usePrevious.tsx +12 -0
- package/src/contexts.tsx +9 -0
- package/src/core.ts +45 -0
- package/src/fabric/FullWindowOverlayNativeComponent.ts +16 -0
- package/src/fabric/ModalScreenNativeComponent.ts +115 -0
- package/src/fabric/NativeScreensModule.ts +8 -0
- package/src/fabric/NativeScreensModule.web.ts +1 -0
- package/src/fabric/ScreenContainerNativeComponent.ts +3 -3
- package/src/fabric/ScreenContentWrapperNativeComponent.ts +14 -0
- package/src/fabric/ScreenFooterNativeComponent.ts +6 -0
- package/src/fabric/ScreenNativeComponent.ts +34 -23
- package/src/fabric/ScreenNavigationContainerNativeComponent.ts +3 -1
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +38 -2
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +5 -1
- package/src/fabric/ScreenStackNativeComponent.ts +3 -2
- package/src/fabric/SearchBarNativeComponent.ts +17 -13
- 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 +46 -0
- package/src/gesture-handler/fabricUtils.ts +86 -0
- package/src/gesture-handler/fabricUtils.web.ts +10 -0
- package/src/gesture-handler/index.tsx +4 -0
- package/src/index.tsx +49 -113
- package/src/native-stack/contexts/GHContext.tsx +9 -0
- package/src/native-stack/navigators/createNativeStackNavigator.tsx +6 -3
- package/src/native-stack/types.tsx +204 -31
- package/src/native-stack/utils/getDefaultHeaderHeight.tsx +2 -2
- package/src/native-stack/utils/getStatusBarHeight.tsx +22 -0
- package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +1 -1
- package/src/native-stack/utils/useBackPressSubscription.tsx +3 -2
- package/src/native-stack/utils/useHeaderHeight.tsx +1 -1
- package/src/native-stack/views/FontProcessor.tsx +2 -2
- package/src/native-stack/views/FooterComponent.tsx +10 -0
- package/src/native-stack/views/HeaderConfig.tsx +22 -6
- package/src/native-stack/views/NativeStackView.tsx +141 -54
- package/src/reanimated/ReanimatedHeaderHeightContext.tsx +1 -1
- package/src/reanimated/ReanimatedNativeStackScreen.tsx +15 -13
- package/src/reanimated/ReanimatedScreen.tsx +4 -3
- package/src/reanimated/ReanimatedScreenProvider.tsx +3 -2
- package/src/reanimated/useReanimatedHeaderHeight.tsx +2 -2
- package/src/reanimated/useReanimatedTransitionProgress.tsx +1 -1
- package/src/types.tsx +213 -41
- package/src/useTransitionProgress.tsx +1 -1
- package/src/utils.ts +27 -5
- package/windows/README.md +4 -1
- package/windows/RNScreens/Screen.h +3 -1
- package/SystemBundles/3d72c1ccdc1866604203e2067a94f7ab2c45408da644bb242aa980ffea58a74d.bundle +0 -33190
- package/SystemBundles/3d72c1ccdc1866604203e2067a94f7ab2c45408da644bb242aa980ffea58a74d.map +0 -10181
- package/SystemModules/amzn__react-native-screens.modules.txt +0 -101
- package/SystemModules/amzn__react-native-screens.private.modules.txt +0 -243
- package/lib/commonjs/index.native.js +0 -409
- package/lib/commonjs/index.native.js.map +0 -1
- package/lib/module/index.native.js +0 -412
- package/lib/module/index.native.js.map +0 -1
- package/lib/typescript/index.native.d.ts +0 -2
- package/src/index.native.tsx +0 -601
|
@@ -11,17 +11,25 @@
|
|
|
11
11
|
* Set up react-native-screens package to build for Kepler
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
/* eslint-disable camelcase */
|
|
14
15
|
import * as React from 'react';
|
|
15
|
-
|
|
16
|
+
// amznmod_react - add support for react 19
|
|
17
|
+
import {
|
|
18
|
+
Animated,
|
|
19
|
+
Platform,
|
|
20
|
+
StyleSheet,
|
|
21
|
+
View,
|
|
22
|
+
ViewProps,
|
|
23
|
+
ViewStyle,
|
|
24
|
+
} from 'react-native';
|
|
16
25
|
// @ts-ignore Getting private component
|
|
17
|
-
|
|
26
|
+
|
|
18
27
|
import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
|
|
19
28
|
import warnOnce from 'warn-once';
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} from '@amazon-devices/react-native-screens';
|
|
29
|
+
import { StackPresentationTypes, ScreensRefsHolder } from '../../types';
|
|
30
|
+
import ScreenStack from '../../components/ScreenStack';
|
|
31
|
+
import ScreenContentWrapper from '../../components/ScreenContentWrapper';
|
|
32
|
+
import { ScreenContext } from '../../components/Screen';
|
|
25
33
|
import {
|
|
26
34
|
ParamListBase,
|
|
27
35
|
StackActions,
|
|
@@ -33,7 +41,6 @@ import {
|
|
|
33
41
|
// amznmod_react - change imports to kepler packages
|
|
34
42
|
} from '@amazon-devices/react-navigation__native';
|
|
35
43
|
import {
|
|
36
|
-
Rect,
|
|
37
44
|
useSafeAreaFrame,
|
|
38
45
|
useSafeAreaInsets,
|
|
39
46
|
// amznmod_react - change imports to kepler packages
|
|
@@ -46,26 +53,35 @@ import {
|
|
|
46
53
|
import HeaderConfig from './HeaderConfig';
|
|
47
54
|
import SafeAreaProviderCompat from '../utils/SafeAreaProviderCompat';
|
|
48
55
|
import getDefaultHeaderHeight from '../utils/getDefaultHeaderHeight';
|
|
56
|
+
import getStatusBarHeight from '../utils/getStatusBarHeight';
|
|
49
57
|
import HeaderHeightContext from '../utils/HeaderHeightContext';
|
|
50
58
|
import AnimatedHeaderHeightContext from '../utils/AnimatedHeaderHeightContext';
|
|
59
|
+
import FooterComponent from './FooterComponent';
|
|
51
60
|
|
|
52
61
|
const isAndroid = Platform.OS === 'android';
|
|
62
|
+
// amznmod_react - add isKepler flag
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
const isKepler = Platform.OS === 'kepler';
|
|
53
65
|
|
|
54
|
-
let Container =
|
|
66
|
+
let Container = ScreenContentWrapper;
|
|
55
67
|
|
|
56
68
|
if (__DEV__) {
|
|
57
69
|
const DebugContainer = (
|
|
58
|
-
props: ViewProps & { stackPresentation: StackPresentationTypes }
|
|
70
|
+
props: ViewProps & { stackPresentation: StackPresentationTypes },
|
|
59
71
|
) => {
|
|
60
72
|
const { stackPresentation, ...rest } = props;
|
|
61
|
-
if (
|
|
73
|
+
if (
|
|
74
|
+
Platform.OS === 'ios' &&
|
|
75
|
+
stackPresentation !== 'push' &&
|
|
76
|
+
stackPresentation !== 'formSheet'
|
|
77
|
+
) {
|
|
62
78
|
return (
|
|
63
79
|
<AppContainer>
|
|
64
|
-
<
|
|
80
|
+
<ScreenContentWrapper {...rest} />
|
|
65
81
|
</AppContainer>
|
|
66
82
|
);
|
|
67
83
|
}
|
|
68
|
-
return <
|
|
84
|
+
return <ScreenContentWrapper {...rest} />;
|
|
69
85
|
};
|
|
70
86
|
// @ts-ignore Wrong props
|
|
71
87
|
Container = DebugContainer;
|
|
@@ -76,18 +92,21 @@ const MaybeNestedStack = ({
|
|
|
76
92
|
route,
|
|
77
93
|
stackPresentation,
|
|
78
94
|
children,
|
|
95
|
+
internalScreenStyle,
|
|
79
96
|
}: {
|
|
80
97
|
options: NativeStackNavigationOptions;
|
|
81
98
|
route: Route<string>;
|
|
82
99
|
stackPresentation: StackPresentationTypes;
|
|
83
100
|
children: React.ReactNode;
|
|
101
|
+
internalScreenStyle?: Pick<ViewStyle, 'backgroundColor'>;
|
|
84
102
|
}) => {
|
|
85
103
|
const { colors } = useTheme();
|
|
86
104
|
const { headerShown = true, contentStyle } = options;
|
|
87
105
|
|
|
88
106
|
const Screen = React.useContext(ScreenContext);
|
|
89
107
|
|
|
90
|
-
|
|
108
|
+
// amznmod_react - return false for Modal on kepler because native component is not implemented yet
|
|
109
|
+
const isHeaderInModal = isAndroid || isKepler
|
|
91
110
|
? false
|
|
92
111
|
: stackPresentation !== 'push' && headerShown === true;
|
|
93
112
|
|
|
@@ -98,7 +117,7 @@ const MaybeNestedStack = ({
|
|
|
98
117
|
!isAndroid &&
|
|
99
118
|
stackPresentation !== 'push' &&
|
|
100
119
|
headerShownPreviousRef.current !== headerShown,
|
|
101
|
-
`Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'
|
|
120
|
+
`Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`,
|
|
102
121
|
);
|
|
103
122
|
|
|
104
123
|
headerShownPreviousRef.current = headerShown;
|
|
@@ -107,7 +126,11 @@ const MaybeNestedStack = ({
|
|
|
107
126
|
const content = (
|
|
108
127
|
<Container
|
|
109
128
|
style={[
|
|
110
|
-
|
|
129
|
+
stackPresentation === 'formSheet'
|
|
130
|
+
? Platform.OS === 'ios'
|
|
131
|
+
? styles.absoluteFillNoBottom
|
|
132
|
+
: null
|
|
133
|
+
: styles.container,
|
|
111
134
|
stackPresentation !== 'transparentModal' &&
|
|
112
135
|
stackPresentation !== 'containedTransparentModal' && {
|
|
113
136
|
backgroundColor: colors.background,
|
|
@@ -130,22 +153,26 @@ const MaybeNestedStack = ({
|
|
|
130
153
|
const statusBarHeight = getStatusBarHeight(
|
|
131
154
|
topInset,
|
|
132
155
|
dimensions,
|
|
133
|
-
isStatusBarTranslucent
|
|
156
|
+
isStatusBarTranslucent,
|
|
134
157
|
);
|
|
135
158
|
|
|
136
|
-
const
|
|
159
|
+
const hasLargeHeader = options.headerLargeTitle ?? false;
|
|
137
160
|
|
|
138
161
|
const headerHeight = getDefaultHeaderHeight(
|
|
139
162
|
dimensions,
|
|
140
163
|
statusBarHeight,
|
|
141
164
|
stackPresentation,
|
|
142
|
-
|
|
165
|
+
hasLargeHeader,
|
|
143
166
|
);
|
|
144
167
|
|
|
145
168
|
if (isHeaderInModal) {
|
|
146
169
|
return (
|
|
147
170
|
<ScreenStack style={styles.container}>
|
|
148
|
-
<Screen
|
|
171
|
+
<Screen
|
|
172
|
+
enabled
|
|
173
|
+
isNativeStack
|
|
174
|
+
hasLargeHeader={hasLargeHeader}
|
|
175
|
+
style={[StyleSheet.absoluteFill, internalScreenStyle]}>
|
|
149
176
|
<HeaderHeightContext.Provider value={headerHeight}>
|
|
150
177
|
<HeaderConfig {...options} route={route} />
|
|
151
178
|
{content}
|
|
@@ -159,7 +186,7 @@ const MaybeNestedStack = ({
|
|
|
159
186
|
|
|
160
187
|
type NavigationRoute<
|
|
161
188
|
ParamList extends ParamListBase,
|
|
162
|
-
RouteName extends keyof ParamList
|
|
189
|
+
RouteName extends keyof ParamList,
|
|
163
190
|
> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {
|
|
164
191
|
state?: NavigationState | PartialState<NavigationState>;
|
|
165
192
|
};
|
|
@@ -170,26 +197,32 @@ const RouteView = ({
|
|
|
170
197
|
index,
|
|
171
198
|
navigation,
|
|
172
199
|
stateKey,
|
|
200
|
+
screensRefs,
|
|
173
201
|
}: {
|
|
174
202
|
descriptors: NativeStackDescriptorMap;
|
|
175
203
|
route: NavigationRoute<ParamListBase, string>;
|
|
176
204
|
index: number;
|
|
177
205
|
navigation: NativeStackNavigationHelpers;
|
|
178
206
|
stateKey: string;
|
|
207
|
+
screensRefs: React.MutableRefObject<ScreensRefsHolder>;
|
|
179
208
|
}) => {
|
|
180
209
|
const { options, render: renderScene } = descriptors[route.key];
|
|
210
|
+
|
|
181
211
|
const {
|
|
212
|
+
fullScreenSwipeShadowEnabled = true,
|
|
182
213
|
gestureEnabled,
|
|
183
214
|
headerShown,
|
|
184
215
|
hideKeyboardOnSwipe,
|
|
185
216
|
homeIndicatorHidden,
|
|
186
|
-
|
|
187
|
-
sheetLargestUndimmedDetent = 'all',
|
|
217
|
+
sheetLargestUndimmedDetentIndex = 'none',
|
|
188
218
|
sheetGrabberVisible = false,
|
|
189
219
|
sheetCornerRadius = -1.0,
|
|
220
|
+
sheetElevation = 24,
|
|
190
221
|
sheetExpandsWhenScrolledToEdge = true,
|
|
222
|
+
sheetInitialDetentIndex = 0,
|
|
191
223
|
nativeBackButtonDismissalEnabled = false,
|
|
192
224
|
navigationBarColor,
|
|
225
|
+
navigationBarTranslucent,
|
|
193
226
|
navigationBarHidden,
|
|
194
227
|
replaceAnimation = 'pop',
|
|
195
228
|
screenOrientation,
|
|
@@ -201,9 +234,12 @@ const RouteView = ({
|
|
|
201
234
|
swipeDirection = 'horizontal',
|
|
202
235
|
transitionDuration,
|
|
203
236
|
freezeOnBlur,
|
|
237
|
+
unstable_sheetFooter = null,
|
|
238
|
+
contentStyle,
|
|
204
239
|
} = options;
|
|
205
240
|
|
|
206
241
|
let {
|
|
242
|
+
sheetAllowedDetents = [1.0],
|
|
207
243
|
customAnimationOnSwipe,
|
|
208
244
|
fullScreenSwipeEnabled,
|
|
209
245
|
gestureResponseDistance,
|
|
@@ -211,6 +247,22 @@ const RouteView = ({
|
|
|
211
247
|
stackPresentation = 'push',
|
|
212
248
|
} = options;
|
|
213
249
|
|
|
250
|
+
// We take backgroundColor from contentStyle and apply it on Screen.
|
|
251
|
+
// This allows to workaround one issue with truncated
|
|
252
|
+
// content with formSheet presentation.
|
|
253
|
+
let internalScreenStyle;
|
|
254
|
+
|
|
255
|
+
if (stackPresentation === 'formSheet' && contentStyle) {
|
|
256
|
+
const flattenContentStyles = StyleSheet.flatten(contentStyle);
|
|
257
|
+
internalScreenStyle = {
|
|
258
|
+
backgroundColor: flattenContentStyles?.backgroundColor,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (sheetAllowedDetents === 'fitToContents') {
|
|
263
|
+
sheetAllowedDetents = [-1];
|
|
264
|
+
}
|
|
265
|
+
|
|
214
266
|
if (swipeDirection === 'vertical') {
|
|
215
267
|
// for `vertical` direction to work, we need to set `fullScreenSwipeEnabled` to `true`
|
|
216
268
|
// so the screen can be dismissed from any point on screen.
|
|
@@ -240,16 +292,16 @@ const RouteView = ({
|
|
|
240
292
|
const statusBarHeight = getStatusBarHeight(
|
|
241
293
|
topInset,
|
|
242
294
|
dimensions,
|
|
243
|
-
isStatusBarTranslucent
|
|
295
|
+
isStatusBarTranslucent,
|
|
244
296
|
);
|
|
245
297
|
|
|
246
|
-
const
|
|
298
|
+
const hasLargeHeader = options.headerLargeTitle ?? false;
|
|
247
299
|
|
|
248
300
|
const defaultHeaderHeight = getDefaultHeaderHeight(
|
|
249
301
|
dimensions,
|
|
250
302
|
statusBarHeight,
|
|
251
303
|
stackPresentation,
|
|
252
|
-
|
|
304
|
+
hasLargeHeader,
|
|
253
305
|
);
|
|
254
306
|
|
|
255
307
|
const parentHeaderHeight = React.useContext(HeaderHeightContext);
|
|
@@ -263,39 +315,53 @@ const RouteView = ({
|
|
|
263
315
|
// We need to ensure the first retrieved header height will be cached and set in animatedHeaderHeight.
|
|
264
316
|
// We're caching the header height here, as on iOS native side events are not always coming to the JS on first notify.
|
|
265
317
|
// TODO: Check why first event is not being received once it is cached on the native side.
|
|
266
|
-
const cachedAnimatedHeaderHeight = React.useRef(
|
|
318
|
+
const cachedAnimatedHeaderHeight = React.useRef(defaultHeaderHeight);
|
|
267
319
|
const animatedHeaderHeight = React.useRef(
|
|
268
320
|
// amznmod_react - change imports to kepler packages
|
|
269
321
|
// @ts-ignore
|
|
270
322
|
new Animated.Value(staticHeaderHeight, {
|
|
271
323
|
useNativeDriver: true,
|
|
272
|
-
})
|
|
324
|
+
}),
|
|
273
325
|
).current;
|
|
274
326
|
|
|
275
327
|
const Screen = React.useContext(ScreenContext);
|
|
276
|
-
|
|
277
328
|
const { dark } = useTheme();
|
|
329
|
+
// amznmod_react - add support for react 19
|
|
330
|
+
const screenRef = React.useRef<View | null>(null);
|
|
331
|
+
React.useEffect(() => {
|
|
332
|
+
screensRefs.current[route.key] = screenRef;
|
|
333
|
+
return () => {
|
|
334
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
335
|
+
delete screensRefs.current[route.key];
|
|
336
|
+
};
|
|
337
|
+
});
|
|
278
338
|
|
|
279
339
|
return (
|
|
280
340
|
<Screen
|
|
281
341
|
key={route.key}
|
|
342
|
+
ref={screenRef}
|
|
282
343
|
enabled
|
|
283
344
|
isNativeStack
|
|
284
|
-
|
|
345
|
+
hasLargeHeader={hasLargeHeader}
|
|
346
|
+
style={[StyleSheet.absoluteFill, internalScreenStyle]}
|
|
285
347
|
sheetAllowedDetents={sheetAllowedDetents}
|
|
286
|
-
|
|
348
|
+
sheetLargestUndimmedDetentIndex={sheetLargestUndimmedDetentIndex}
|
|
287
349
|
sheetGrabberVisible={sheetGrabberVisible}
|
|
350
|
+
sheetInitialDetentIndex={sheetInitialDetentIndex}
|
|
288
351
|
sheetCornerRadius={sheetCornerRadius}
|
|
352
|
+
sheetElevation={sheetElevation}
|
|
289
353
|
sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}
|
|
290
354
|
customAnimationOnSwipe={customAnimationOnSwipe}
|
|
291
355
|
freezeOnBlur={freezeOnBlur}
|
|
292
356
|
fullScreenSwipeEnabled={fullScreenSwipeEnabled}
|
|
357
|
+
fullScreenSwipeShadowEnabled={fullScreenSwipeShadowEnabled}
|
|
293
358
|
hideKeyboardOnSwipe={hideKeyboardOnSwipe}
|
|
294
359
|
homeIndicatorHidden={homeIndicatorHidden}
|
|
295
360
|
gestureEnabled={isAndroid ? false : gestureEnabled}
|
|
296
361
|
gestureResponseDistance={gestureResponseDistance}
|
|
297
362
|
nativeBackButtonDismissalEnabled={nativeBackButtonDismissalEnabled}
|
|
298
363
|
navigationBarColor={navigationBarColor}
|
|
364
|
+
navigationBarTranslucent={navigationBarTranslucent}
|
|
299
365
|
navigationBarHidden={navigationBarHidden}
|
|
300
366
|
replaceAnimation={replaceAnimation}
|
|
301
367
|
screenOrientation={screenOrientation}
|
|
@@ -374,6 +440,16 @@ const RouteView = ({
|
|
|
374
440
|
target: stateKey,
|
|
375
441
|
});
|
|
376
442
|
}}
|
|
443
|
+
onSheetDetentChanged={e => {
|
|
444
|
+
navigation.emit({
|
|
445
|
+
type: 'sheetDetentChange',
|
|
446
|
+
target: route.key,
|
|
447
|
+
data: {
|
|
448
|
+
index: e.nativeEvent.index,
|
|
449
|
+
isStable: e.nativeEvent.isStable,
|
|
450
|
+
},
|
|
451
|
+
});
|
|
452
|
+
}}
|
|
377
453
|
onGestureCancel={() => {
|
|
378
454
|
navigation.emit({
|
|
379
455
|
type: 'gestureCancel',
|
|
@@ -385,7 +461,8 @@ const RouteView = ({
|
|
|
385
461
|
<MaybeNestedStack
|
|
386
462
|
options={options}
|
|
387
463
|
route={route}
|
|
388
|
-
stackPresentation={stackPresentation}
|
|
464
|
+
stackPresentation={stackPresentation}
|
|
465
|
+
internalScreenStyle={internalScreenStyle}>
|
|
389
466
|
{renderScene()}
|
|
390
467
|
</MaybeNestedStack>
|
|
391
468
|
{/* HeaderConfig must not be first child of a Screen.
|
|
@@ -396,6 +473,9 @@ const RouteView = ({
|
|
|
396
473
|
route={route}
|
|
397
474
|
headerShown={isHeaderInPush}
|
|
398
475
|
/>
|
|
476
|
+
{stackPresentation === 'formSheet' && unstable_sheetFooter && (
|
|
477
|
+
<FooterComponent>{unstable_sheetFooter()}</FooterComponent>
|
|
478
|
+
)}
|
|
399
479
|
</HeaderHeightContext.Provider>
|
|
400
480
|
</AnimatedHeaderHeightContext.Provider>
|
|
401
481
|
</Screen>
|
|
@@ -412,11 +492,24 @@ function NativeStackViewInner({
|
|
|
412
492
|
state,
|
|
413
493
|
navigation,
|
|
414
494
|
descriptors,
|
|
415
|
-
|
|
495
|
+
// amznmod_react - add support for react 19
|
|
496
|
+
}: Props): React.JSX.Element {
|
|
416
497
|
const { key, routes } = state;
|
|
417
498
|
|
|
499
|
+
const currentRouteKey = routes[state.index].key;
|
|
500
|
+
const { goBackGesture, transitionAnimation, screenEdgeGesture } =
|
|
501
|
+
descriptors[currentRouteKey].options;
|
|
502
|
+
|
|
503
|
+
const screensRefs = React.useRef<ScreensRefsHolder>({});
|
|
504
|
+
|
|
418
505
|
return (
|
|
419
|
-
<ScreenStack
|
|
506
|
+
<ScreenStack
|
|
507
|
+
style={styles.container}
|
|
508
|
+
goBackGesture={goBackGesture}
|
|
509
|
+
transitionAnimation={transitionAnimation}
|
|
510
|
+
screenEdgeGesture={screenEdgeGesture ?? false}
|
|
511
|
+
screensRefs={screensRefs}
|
|
512
|
+
currentScreenId={currentRouteKey}>
|
|
420
513
|
{routes.map((route, index) => (
|
|
421
514
|
<RouteView
|
|
422
515
|
key={route.key}
|
|
@@ -425,6 +518,7 @@ function NativeStackViewInner({
|
|
|
425
518
|
index={index}
|
|
426
519
|
navigation={navigation}
|
|
427
520
|
stateKey={key}
|
|
521
|
+
screensRefs={screensRefs}
|
|
428
522
|
/>
|
|
429
523
|
))}
|
|
430
524
|
</ScreenStack>
|
|
@@ -439,28 +533,21 @@ export default function NativeStackView(props: Props) {
|
|
|
439
533
|
);
|
|
440
534
|
}
|
|
441
535
|
|
|
442
|
-
function getStatusBarHeight(
|
|
443
|
-
topInset: number,
|
|
444
|
-
dimensions: Rect,
|
|
445
|
-
isStatusBarTranslucent: boolean
|
|
446
|
-
) {
|
|
447
|
-
if (Platform.OS === 'ios') {
|
|
448
|
-
// It looks like some iOS devices don't have strictly set status bar height to 44.
|
|
449
|
-
// Thus, if the top inset is higher than 50, then the device should have a dynamic island.
|
|
450
|
-
// On models with Dynamic Island the status bar height is smaller than the safe area top inset by 5 pixels.
|
|
451
|
-
// See https://developer.apple.com/forums/thread/662466 for more details about status bar height.
|
|
452
|
-
const hasDynamicIsland = topInset > 50;
|
|
453
|
-
return hasDynamicIsland ? topInset - 5 : topInset;
|
|
454
|
-
} else if (Platform.OS === 'android') {
|
|
455
|
-
// On Android we should also rely on frame's y-axis position, as topInset is 0 on visible status bar.
|
|
456
|
-
return isStatusBarTranslucent ? topInset : dimensions.y;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
return topInset;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
536
|
const styles = StyleSheet.create({
|
|
463
537
|
container: {
|
|
464
538
|
flex: 1,
|
|
465
539
|
},
|
|
540
|
+
absoluteFill: {
|
|
541
|
+
position: 'absolute',
|
|
542
|
+
top: 0,
|
|
543
|
+
left: 0,
|
|
544
|
+
right: 0,
|
|
545
|
+
bottom: 0,
|
|
546
|
+
},
|
|
547
|
+
absoluteFillNoBottom: {
|
|
548
|
+
position: 'absolute',
|
|
549
|
+
top: 0,
|
|
550
|
+
left: 0,
|
|
551
|
+
right: 0,
|
|
552
|
+
},
|
|
466
553
|
});
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import { Platform } from 'react-native';
|
|
16
|
+
import { InnerScreen } from '../components/Screen';
|
|
16
17
|
import {
|
|
17
18
|
HeaderHeightChangeEventType,
|
|
18
|
-
InnerScreen,
|
|
19
19
|
ScreenProps,
|
|
20
20
|
TransitionProgressEventType,
|
|
21
|
-
} from '
|
|
21
|
+
} from '../types';
|
|
22
22
|
|
|
23
23
|
// @ts-ignore file to be used only if `react-native-reanimated` available in the project
|
|
24
24
|
import Animated, { useEvent, useSharedValue } from 'react-native-reanimated';
|
|
@@ -29,10 +29,11 @@ import {
|
|
|
29
29
|
// amznmod_react - change imports to kepler packages
|
|
30
30
|
} from '@amazon-devices/react-native-safe-area-context';
|
|
31
31
|
import getDefaultHeaderHeight from '../native-stack/utils/getDefaultHeaderHeight';
|
|
32
|
+
import getStatusBarHeight from '../native-stack/utils/getStatusBarHeight';
|
|
32
33
|
import ReanimatedHeaderHeightContext from './ReanimatedHeaderHeightContext';
|
|
33
34
|
|
|
34
35
|
const AnimatedScreen = Animated.createAnimatedComponent(
|
|
35
|
-
InnerScreen as unknown as React.ComponentClass
|
|
36
|
+
InnerScreen as unknown as React.ComponentClass,
|
|
36
37
|
);
|
|
37
38
|
|
|
38
39
|
// We use prop added to global by reanimated since it seems safer than the one from RN. See:
|
|
@@ -45,23 +46,24 @@ const ReanimatedNativeStackScreen = React.forwardRef<
|
|
|
45
46
|
ScreenProps
|
|
46
47
|
>((props, ref) => {
|
|
47
48
|
const { children, ...rest } = props;
|
|
48
|
-
const { stackPresentation = 'push' } = rest;
|
|
49
|
+
const { stackPresentation = 'push', hasLargeHeader } = rest;
|
|
49
50
|
|
|
50
51
|
const dimensions = useSafeAreaFrame();
|
|
51
52
|
const topInset = useSafeAreaInsets().top;
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
const isStatusBarTranslucent = rest.statusBarTranslucent ?? false;
|
|
54
|
+
const statusBarHeight = getStatusBarHeight(
|
|
55
|
+
topInset,
|
|
56
|
+
dimensions,
|
|
57
|
+
isStatusBarTranslucent,
|
|
58
|
+
);
|
|
58
59
|
|
|
59
60
|
// Default header height, normally used in `useHeaderHeight` hook.
|
|
60
61
|
// Here, it is used for returning a default value for shared value.
|
|
61
62
|
const defaultHeaderHeight = getDefaultHeaderHeight(
|
|
62
63
|
dimensions,
|
|
63
64
|
statusBarHeight,
|
|
64
|
-
stackPresentation
|
|
65
|
+
stackPresentation,
|
|
66
|
+
hasLargeHeader,
|
|
65
67
|
);
|
|
66
68
|
|
|
67
69
|
const cachedHeaderHeight = React.useRef(defaultHeaderHeight);
|
|
@@ -91,7 +93,7 @@ const ReanimatedNativeStackScreen = React.forwardRef<
|
|
|
91
93
|
ENABLE_FABRIC
|
|
92
94
|
? 'onTransitionProgress'
|
|
93
95
|
: 'topTransitionProgress',
|
|
94
|
-
]
|
|
96
|
+
],
|
|
95
97
|
)}
|
|
96
98
|
onHeaderHeightChangeReanimated={useEvent(
|
|
97
99
|
(event: HeaderHeightChangeEventType) => {
|
|
@@ -108,7 +110,7 @@ const ReanimatedNativeStackScreen = React.forwardRef<
|
|
|
108
110
|
: ENABLE_FABRIC
|
|
109
111
|
? 'onHeaderHeightChange'
|
|
110
112
|
: 'topHeaderHeightChange',
|
|
111
|
-
]
|
|
113
|
+
],
|
|
112
114
|
)}
|
|
113
115
|
{...rest}>
|
|
114
116
|
<ReanimatedHeaderHeightContext.Provider value={headerHeight}>
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InnerScreen
|
|
2
|
+
import { InnerScreen } from '../components/Screen';
|
|
3
|
+
import { ScreenProps } from '../types';
|
|
3
4
|
|
|
4
5
|
// @ts-ignore file to be used only if `react-native-reanimated` available in the project
|
|
5
6
|
import Animated from 'react-native-reanimated';
|
|
6
7
|
|
|
7
8
|
const AnimatedScreen = Animated.createAnimatedComponent(
|
|
8
|
-
InnerScreen as unknown as React.ComponentClass
|
|
9
|
+
InnerScreen as unknown as React.ComponentClass,
|
|
9
10
|
);
|
|
10
11
|
|
|
11
12
|
const ReanimatedScreen = React.forwardRef<typeof AnimatedScreen, ScreenProps>(
|
|
@@ -17,7 +18,7 @@ const ReanimatedScreen = React.forwardRef<typeof AnimatedScreen, ScreenProps>(
|
|
|
17
18
|
{...props}
|
|
18
19
|
/>
|
|
19
20
|
);
|
|
20
|
-
}
|
|
21
|
+
},
|
|
21
22
|
);
|
|
22
23
|
|
|
23
24
|
ReanimatedScreen.displayName = 'ReanimatedScreen';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
|
-
import {
|
|
3
|
+
import { ScreenContext } from '../components/Screen';
|
|
4
|
+
import { ScreenProps } from '../types';
|
|
4
5
|
import ReanimatedNativeStackScreen from './ReanimatedNativeStackScreen';
|
|
5
6
|
import AnimatedScreen from './ReanimatedScreen';
|
|
6
7
|
|
|
@@ -31,7 +32,7 @@ class ReanimatedScreenWrapper extends React.Component<ScreenProps> {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export default function ReanimatedScreenProvider(
|
|
34
|
-
props: PropsWithChildren<unknown
|
|
35
|
+
props: PropsWithChildren<unknown>,
|
|
35
36
|
) {
|
|
36
37
|
return (
|
|
37
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import ReanimatedHeaderHeightContext from './ReanimatedHeaderHeightContext';
|
|
3
3
|
|
|
4
|
-
export default function
|
|
4
|
+
export default function useReanimatedHeaderHeight() {
|
|
5
5
|
const height = React.useContext(ReanimatedHeaderHeightContext);
|
|
6
6
|
|
|
7
7
|
if (height === undefined) {
|
|
8
8
|
throw new Error(
|
|
9
|
-
"Couldn't find the header height using Reanimated. Are you inside a screen in a navigator with a header and your NavigationContainer is wrapped in ReanimatedScreenProvider?"
|
|
9
|
+
"Couldn't find the header height using Reanimated. Are you inside a screen in a navigator with a header and your NavigationContainer is wrapped in ReanimatedScreenProvider?",
|
|
10
10
|
);
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@ export default function useReanimatedTransitionProgress() {
|
|
|
6
6
|
|
|
7
7
|
if (progress === undefined) {
|
|
8
8
|
throw new Error(
|
|
9
|
-
"Couldn't find values for reanimated transition progress. Are you inside a screen in Native Stack?"
|
|
9
|
+
"Couldn't find values for reanimated transition progress. Are you inside a screen in Native Stack?",
|
|
10
10
|
);
|
|
11
11
|
}
|
|
12
12
|
|