@amazon-devices/react-native-screens 2.0.1758683737 → 3.0.9000000000
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/31d5b6b69618249f6233b73a1de7c4d890c86be7ccb031ce7cf2dcc41783f9f7.bundle +45301 -0
- package/SystemBundles/31d5b6b69618249f6233b73a1de7c4d890c86be7ccb031ce7cf2dcc41783f9f7.map +13711 -0
- package/SystemModules/amzn__react-native-screens-3.modules.txt +158 -0
- package/SystemModules/amzn__react-native-screens-3.private.modules.txt +377 -0
- package/SystemModules/keplerscript-system-bundle-config.json +4 -4
- package/THIRD_PARTY_NOTICES.txt +1 -684
- 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 -4
- package/lib/commonjs/TransitionProgressContext.js +1 -0
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/components/DebugContainer.js +39 -0
- package/lib/commonjs/components/DebugContainer.js.map +1 -0
- package/lib/commonjs/components/DebugContainer.web.js +15 -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 +47 -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 +90 -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/ScreenStackItem.js +107 -0
- package/lib/commonjs/components/ScreenStackItem.js.map +1 -0
- package/lib/commonjs/components/SearchBar.js +63 -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 +15 -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 +16 -1
- 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 +16 -16
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +2 -1
- 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 +5 -2
- 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 +4 -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 +201 -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 -93
- 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.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +21 -20
- 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.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- 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.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.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +1 -3
- 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 +21 -13
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +118 -52
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +15 -21
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js +2 -2
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +8 -16
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- 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.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- 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 +40 -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 +81 -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/ScreenStackItem.js +98 -0
- package/lib/module/components/ScreenStackItem.js.map +1 -0
- package/lib/module/components/SearchBar.js +57 -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 +9 -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 +11 -8
- 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 -63
- 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 +21 -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 +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 +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 +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 +13 -6
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +114 -46
- 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 +8 -12
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js +1 -2
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js +7 -15
- 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 +3 -2
- 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 +186 -36
- 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/package.json +1 -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 +46 -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 +122 -0
- package/src/components/ScreenStackHeaderConfig.web.tsx +39 -0
- package/src/components/ScreenStackItem.tsx +174 -0
- package/src/components/SearchBar.tsx +102 -0
- package/src/components/SearchBar.web.tsx +5 -0
- package/src/components/helpers/DelayedFreeze.tsx +27 -0
- package/src/components/helpers/usePrevious.tsx +11 -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 +36 -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 -112
- 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 +1 -1
- 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 +20 -5
- package/src/native-stack/views/NativeStackView.tsx +137 -53
- 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 +210 -40
- 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/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.bundle +0 -33668
- package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.map +0 -1
- package/SystemModules/amzn__react-native-screens.modules.txt +0 -101
- package/SystemModules/amzn__react-native-screens.private.modules.txt +0 -244
- package/lib/commonjs/index.native.js +0 -407
- package/lib/commonjs/index.native.js.map +0 -1
- package/lib/module/index.native.js +0 -410
- package/lib/module/index.native.js.map +0 -1
- package/lib/typescript/index.native.d.ts +0 -2
- package/src/index.native.tsx +0 -599
|
@@ -11,17 +11,23 @@
|
|
|
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
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
Animated,
|
|
18
|
+
Platform,
|
|
19
|
+
StyleSheet,
|
|
20
|
+
ViewProps,
|
|
21
|
+
ViewStyle,
|
|
22
|
+
} from 'react-native';
|
|
16
23
|
// @ts-ignore Getting private component
|
|
17
|
-
|
|
24
|
+
|
|
18
25
|
import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
|
|
19
26
|
import warnOnce from 'warn-once';
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} from '@amazon-devices/react-native-screens';
|
|
27
|
+
import { StackPresentationTypes, ScreensRefsHolder } from '../../types';
|
|
28
|
+
import ScreenStack from '../../components/ScreenStack';
|
|
29
|
+
import ScreenContentWrapper from '../../components/ScreenContentWrapper';
|
|
30
|
+
import { ScreenContext } from '../../components/Screen';
|
|
25
31
|
import {
|
|
26
32
|
ParamListBase,
|
|
27
33
|
StackActions,
|
|
@@ -33,7 +39,6 @@ import {
|
|
|
33
39
|
// amznmod_react - change imports to kepler packages
|
|
34
40
|
} from '@amazon-devices/react-navigation__native';
|
|
35
41
|
import {
|
|
36
|
-
Rect,
|
|
37
42
|
useSafeAreaFrame,
|
|
38
43
|
useSafeAreaInsets,
|
|
39
44
|
// amznmod_react - change imports to kepler packages
|
|
@@ -46,26 +51,35 @@ import {
|
|
|
46
51
|
import HeaderConfig from './HeaderConfig';
|
|
47
52
|
import SafeAreaProviderCompat from '../utils/SafeAreaProviderCompat';
|
|
48
53
|
import getDefaultHeaderHeight from '../utils/getDefaultHeaderHeight';
|
|
54
|
+
import getStatusBarHeight from '../utils/getStatusBarHeight';
|
|
49
55
|
import HeaderHeightContext from '../utils/HeaderHeightContext';
|
|
50
56
|
import AnimatedHeaderHeightContext from '../utils/AnimatedHeaderHeightContext';
|
|
57
|
+
import FooterComponent from './FooterComponent';
|
|
51
58
|
|
|
52
59
|
const isAndroid = Platform.OS === 'android';
|
|
60
|
+
// amznmod_react - add isKepler flag
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
const isKepler = Platform.OS === 'kepler';
|
|
53
63
|
|
|
54
|
-
let Container =
|
|
64
|
+
let Container = ScreenContentWrapper;
|
|
55
65
|
|
|
56
66
|
if (__DEV__) {
|
|
57
67
|
const DebugContainer = (
|
|
58
|
-
props: ViewProps & { stackPresentation: StackPresentationTypes }
|
|
68
|
+
props: ViewProps & { stackPresentation: StackPresentationTypes },
|
|
59
69
|
) => {
|
|
60
70
|
const { stackPresentation, ...rest } = props;
|
|
61
|
-
if (
|
|
71
|
+
if (
|
|
72
|
+
Platform.OS === 'ios' &&
|
|
73
|
+
stackPresentation !== 'push' &&
|
|
74
|
+
stackPresentation !== 'formSheet'
|
|
75
|
+
) {
|
|
62
76
|
return (
|
|
63
77
|
<AppContainer>
|
|
64
|
-
<
|
|
78
|
+
<ScreenContentWrapper {...rest} />
|
|
65
79
|
</AppContainer>
|
|
66
80
|
);
|
|
67
81
|
}
|
|
68
|
-
return <
|
|
82
|
+
return <ScreenContentWrapper {...rest} />;
|
|
69
83
|
};
|
|
70
84
|
// @ts-ignore Wrong props
|
|
71
85
|
Container = DebugContainer;
|
|
@@ -76,18 +90,21 @@ const MaybeNestedStack = ({
|
|
|
76
90
|
route,
|
|
77
91
|
stackPresentation,
|
|
78
92
|
children,
|
|
93
|
+
internalScreenStyle,
|
|
79
94
|
}: {
|
|
80
95
|
options: NativeStackNavigationOptions;
|
|
81
96
|
route: Route<string>;
|
|
82
97
|
stackPresentation: StackPresentationTypes;
|
|
83
98
|
children: React.ReactNode;
|
|
99
|
+
internalScreenStyle?: Pick<ViewStyle, 'backgroundColor'>;
|
|
84
100
|
}) => {
|
|
85
101
|
const { colors } = useTheme();
|
|
86
102
|
const { headerShown = true, contentStyle } = options;
|
|
87
103
|
|
|
88
104
|
const Screen = React.useContext(ScreenContext);
|
|
89
105
|
|
|
90
|
-
|
|
106
|
+
// amznmod_react - return false for Modal on kepler because native component is not implemented yet
|
|
107
|
+
const isHeaderInModal = isAndroid || isKepler
|
|
91
108
|
? false
|
|
92
109
|
: stackPresentation !== 'push' && headerShown === true;
|
|
93
110
|
|
|
@@ -98,7 +115,7 @@ const MaybeNestedStack = ({
|
|
|
98
115
|
!isAndroid &&
|
|
99
116
|
stackPresentation !== 'push' &&
|
|
100
117
|
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}'
|
|
118
|
+
`Dynamically changing 'headerShown' in modals will result in remounting the screen and losing all local state. See options for the screen '${route.name}'.`,
|
|
102
119
|
);
|
|
103
120
|
|
|
104
121
|
headerShownPreviousRef.current = headerShown;
|
|
@@ -107,7 +124,11 @@ const MaybeNestedStack = ({
|
|
|
107
124
|
const content = (
|
|
108
125
|
<Container
|
|
109
126
|
style={[
|
|
110
|
-
|
|
127
|
+
stackPresentation === 'formSheet'
|
|
128
|
+
? Platform.OS === 'ios'
|
|
129
|
+
? styles.absoluteFillNoBottom
|
|
130
|
+
: null
|
|
131
|
+
: styles.container,
|
|
111
132
|
stackPresentation !== 'transparentModal' &&
|
|
112
133
|
stackPresentation !== 'containedTransparentModal' && {
|
|
113
134
|
backgroundColor: colors.background,
|
|
@@ -130,22 +151,26 @@ const MaybeNestedStack = ({
|
|
|
130
151
|
const statusBarHeight = getStatusBarHeight(
|
|
131
152
|
topInset,
|
|
132
153
|
dimensions,
|
|
133
|
-
isStatusBarTranslucent
|
|
154
|
+
isStatusBarTranslucent,
|
|
134
155
|
);
|
|
135
156
|
|
|
136
|
-
const
|
|
157
|
+
const hasLargeHeader = options.headerLargeTitle ?? false;
|
|
137
158
|
|
|
138
159
|
const headerHeight = getDefaultHeaderHeight(
|
|
139
160
|
dimensions,
|
|
140
161
|
statusBarHeight,
|
|
141
162
|
stackPresentation,
|
|
142
|
-
|
|
163
|
+
hasLargeHeader,
|
|
143
164
|
);
|
|
144
165
|
|
|
145
166
|
if (isHeaderInModal) {
|
|
146
167
|
return (
|
|
147
168
|
<ScreenStack style={styles.container}>
|
|
148
|
-
<Screen
|
|
169
|
+
<Screen
|
|
170
|
+
enabled
|
|
171
|
+
isNativeStack
|
|
172
|
+
hasLargeHeader={hasLargeHeader}
|
|
173
|
+
style={[StyleSheet.absoluteFill, internalScreenStyle]}>
|
|
149
174
|
<HeaderHeightContext.Provider value={headerHeight}>
|
|
150
175
|
<HeaderConfig {...options} route={route} />
|
|
151
176
|
{content}
|
|
@@ -159,7 +184,7 @@ const MaybeNestedStack = ({
|
|
|
159
184
|
|
|
160
185
|
type NavigationRoute<
|
|
161
186
|
ParamList extends ParamListBase,
|
|
162
|
-
RouteName extends keyof ParamList
|
|
187
|
+
RouteName extends keyof ParamList,
|
|
163
188
|
> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {
|
|
164
189
|
state?: NavigationState | PartialState<NavigationState>;
|
|
165
190
|
};
|
|
@@ -170,26 +195,32 @@ const RouteView = ({
|
|
|
170
195
|
index,
|
|
171
196
|
navigation,
|
|
172
197
|
stateKey,
|
|
198
|
+
screensRefs,
|
|
173
199
|
}: {
|
|
174
200
|
descriptors: NativeStackDescriptorMap;
|
|
175
201
|
route: NavigationRoute<ParamListBase, string>;
|
|
176
202
|
index: number;
|
|
177
203
|
navigation: NativeStackNavigationHelpers;
|
|
178
204
|
stateKey: string;
|
|
205
|
+
screensRefs: React.MutableRefObject<ScreensRefsHolder>;
|
|
179
206
|
}) => {
|
|
180
207
|
const { options, render: renderScene } = descriptors[route.key];
|
|
208
|
+
|
|
181
209
|
const {
|
|
210
|
+
fullScreenSwipeShadowEnabled = true,
|
|
182
211
|
gestureEnabled,
|
|
183
212
|
headerShown,
|
|
184
213
|
hideKeyboardOnSwipe,
|
|
185
214
|
homeIndicatorHidden,
|
|
186
|
-
|
|
187
|
-
sheetLargestUndimmedDetent = 'all',
|
|
215
|
+
sheetLargestUndimmedDetentIndex = 'none',
|
|
188
216
|
sheetGrabberVisible = false,
|
|
189
217
|
sheetCornerRadius = -1.0,
|
|
218
|
+
sheetElevation = 24,
|
|
190
219
|
sheetExpandsWhenScrolledToEdge = true,
|
|
220
|
+
sheetInitialDetentIndex = 0,
|
|
191
221
|
nativeBackButtonDismissalEnabled = false,
|
|
192
222
|
navigationBarColor,
|
|
223
|
+
navigationBarTranslucent,
|
|
193
224
|
navigationBarHidden,
|
|
194
225
|
replaceAnimation = 'pop',
|
|
195
226
|
screenOrientation,
|
|
@@ -201,9 +232,12 @@ const RouteView = ({
|
|
|
201
232
|
swipeDirection = 'horizontal',
|
|
202
233
|
transitionDuration,
|
|
203
234
|
freezeOnBlur,
|
|
235
|
+
unstable_sheetFooter = null,
|
|
236
|
+
contentStyle,
|
|
204
237
|
} = options;
|
|
205
238
|
|
|
206
239
|
let {
|
|
240
|
+
sheetAllowedDetents = [1.0],
|
|
207
241
|
customAnimationOnSwipe,
|
|
208
242
|
fullScreenSwipeEnabled,
|
|
209
243
|
gestureResponseDistance,
|
|
@@ -211,6 +245,22 @@ const RouteView = ({
|
|
|
211
245
|
stackPresentation = 'push',
|
|
212
246
|
} = options;
|
|
213
247
|
|
|
248
|
+
// We take backgroundColor from contentStyle and apply it on Screen.
|
|
249
|
+
// This allows to workaround one issue with truncated
|
|
250
|
+
// content with formSheet presentation.
|
|
251
|
+
let internalScreenStyle;
|
|
252
|
+
|
|
253
|
+
if (stackPresentation === 'formSheet' && contentStyle) {
|
|
254
|
+
const flattenContentStyles = StyleSheet.flatten(contentStyle);
|
|
255
|
+
internalScreenStyle = {
|
|
256
|
+
backgroundColor: flattenContentStyles?.backgroundColor,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (sheetAllowedDetents === 'fitToContents') {
|
|
261
|
+
sheetAllowedDetents = [-1];
|
|
262
|
+
}
|
|
263
|
+
|
|
214
264
|
if (swipeDirection === 'vertical') {
|
|
215
265
|
// for `vertical` direction to work, we need to set `fullScreenSwipeEnabled` to `true`
|
|
216
266
|
// so the screen can be dismissed from any point on screen.
|
|
@@ -240,16 +290,16 @@ const RouteView = ({
|
|
|
240
290
|
const statusBarHeight = getStatusBarHeight(
|
|
241
291
|
topInset,
|
|
242
292
|
dimensions,
|
|
243
|
-
isStatusBarTranslucent
|
|
293
|
+
isStatusBarTranslucent,
|
|
244
294
|
);
|
|
245
295
|
|
|
246
|
-
const
|
|
296
|
+
const hasLargeHeader = options.headerLargeTitle ?? false;
|
|
247
297
|
|
|
248
298
|
const defaultHeaderHeight = getDefaultHeaderHeight(
|
|
249
299
|
dimensions,
|
|
250
300
|
statusBarHeight,
|
|
251
301
|
stackPresentation,
|
|
252
|
-
|
|
302
|
+
hasLargeHeader,
|
|
253
303
|
);
|
|
254
304
|
|
|
255
305
|
const parentHeaderHeight = React.useContext(HeaderHeightContext);
|
|
@@ -263,39 +313,53 @@ const RouteView = ({
|
|
|
263
313
|
// We need to ensure the first retrieved header height will be cached and set in animatedHeaderHeight.
|
|
264
314
|
// We're caching the header height here, as on iOS native side events are not always coming to the JS on first notify.
|
|
265
315
|
// TODO: Check why first event is not being received once it is cached on the native side.
|
|
266
|
-
const cachedAnimatedHeaderHeight = React.useRef(
|
|
316
|
+
const cachedAnimatedHeaderHeight = React.useRef(defaultHeaderHeight);
|
|
267
317
|
const animatedHeaderHeight = React.useRef(
|
|
268
318
|
// amznmod_react - change imports to kepler packages
|
|
269
319
|
// @ts-ignore
|
|
270
320
|
new Animated.Value(staticHeaderHeight, {
|
|
271
321
|
useNativeDriver: true,
|
|
272
|
-
})
|
|
322
|
+
}),
|
|
273
323
|
).current;
|
|
274
324
|
|
|
275
325
|
const Screen = React.useContext(ScreenContext);
|
|
276
|
-
|
|
277
326
|
const { dark } = useTheme();
|
|
278
327
|
|
|
328
|
+
const screenRef = React.useRef(null);
|
|
329
|
+
React.useEffect(() => {
|
|
330
|
+
screensRefs.current[route.key] = screenRef;
|
|
331
|
+
return () => {
|
|
332
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
333
|
+
delete screensRefs.current[route.key];
|
|
334
|
+
};
|
|
335
|
+
});
|
|
336
|
+
|
|
279
337
|
return (
|
|
280
338
|
<Screen
|
|
281
339
|
key={route.key}
|
|
340
|
+
ref={screenRef}
|
|
282
341
|
enabled
|
|
283
342
|
isNativeStack
|
|
284
|
-
|
|
343
|
+
hasLargeHeader={hasLargeHeader}
|
|
344
|
+
style={[StyleSheet.absoluteFill, internalScreenStyle]}
|
|
285
345
|
sheetAllowedDetents={sheetAllowedDetents}
|
|
286
|
-
|
|
346
|
+
sheetLargestUndimmedDetentIndex={sheetLargestUndimmedDetentIndex}
|
|
287
347
|
sheetGrabberVisible={sheetGrabberVisible}
|
|
348
|
+
sheetInitialDetentIndex={sheetInitialDetentIndex}
|
|
288
349
|
sheetCornerRadius={sheetCornerRadius}
|
|
350
|
+
sheetElevation={sheetElevation}
|
|
289
351
|
sheetExpandsWhenScrolledToEdge={sheetExpandsWhenScrolledToEdge}
|
|
290
352
|
customAnimationOnSwipe={customAnimationOnSwipe}
|
|
291
353
|
freezeOnBlur={freezeOnBlur}
|
|
292
354
|
fullScreenSwipeEnabled={fullScreenSwipeEnabled}
|
|
355
|
+
fullScreenSwipeShadowEnabled={fullScreenSwipeShadowEnabled}
|
|
293
356
|
hideKeyboardOnSwipe={hideKeyboardOnSwipe}
|
|
294
357
|
homeIndicatorHidden={homeIndicatorHidden}
|
|
295
358
|
gestureEnabled={isAndroid ? false : gestureEnabled}
|
|
296
359
|
gestureResponseDistance={gestureResponseDistance}
|
|
297
360
|
nativeBackButtonDismissalEnabled={nativeBackButtonDismissalEnabled}
|
|
298
361
|
navigationBarColor={navigationBarColor}
|
|
362
|
+
navigationBarTranslucent={navigationBarTranslucent}
|
|
299
363
|
navigationBarHidden={navigationBarHidden}
|
|
300
364
|
replaceAnimation={replaceAnimation}
|
|
301
365
|
screenOrientation={screenOrientation}
|
|
@@ -374,6 +438,16 @@ const RouteView = ({
|
|
|
374
438
|
target: stateKey,
|
|
375
439
|
});
|
|
376
440
|
}}
|
|
441
|
+
onSheetDetentChanged={e => {
|
|
442
|
+
navigation.emit({
|
|
443
|
+
type: 'sheetDetentChange',
|
|
444
|
+
target: route.key,
|
|
445
|
+
data: {
|
|
446
|
+
index: e.nativeEvent.index,
|
|
447
|
+
isStable: e.nativeEvent.isStable,
|
|
448
|
+
},
|
|
449
|
+
});
|
|
450
|
+
}}
|
|
377
451
|
onGestureCancel={() => {
|
|
378
452
|
navigation.emit({
|
|
379
453
|
type: 'gestureCancel',
|
|
@@ -385,7 +459,8 @@ const RouteView = ({
|
|
|
385
459
|
<MaybeNestedStack
|
|
386
460
|
options={options}
|
|
387
461
|
route={route}
|
|
388
|
-
stackPresentation={stackPresentation}
|
|
462
|
+
stackPresentation={stackPresentation}
|
|
463
|
+
internalScreenStyle={internalScreenStyle}>
|
|
389
464
|
{renderScene()}
|
|
390
465
|
</MaybeNestedStack>
|
|
391
466
|
{/* HeaderConfig must not be first child of a Screen.
|
|
@@ -396,6 +471,9 @@ const RouteView = ({
|
|
|
396
471
|
route={route}
|
|
397
472
|
headerShown={isHeaderInPush}
|
|
398
473
|
/>
|
|
474
|
+
{stackPresentation === 'formSheet' && unstable_sheetFooter && (
|
|
475
|
+
<FooterComponent>{unstable_sheetFooter()}</FooterComponent>
|
|
476
|
+
)}
|
|
399
477
|
</HeaderHeightContext.Provider>
|
|
400
478
|
</AnimatedHeaderHeightContext.Provider>
|
|
401
479
|
</Screen>
|
|
@@ -415,8 +493,20 @@ function NativeStackViewInner({
|
|
|
415
493
|
}: Props): JSX.Element {
|
|
416
494
|
const { key, routes } = state;
|
|
417
495
|
|
|
496
|
+
const currentRouteKey = routes[state.index].key;
|
|
497
|
+
const { goBackGesture, transitionAnimation, screenEdgeGesture } =
|
|
498
|
+
descriptors[currentRouteKey].options;
|
|
499
|
+
|
|
500
|
+
const screensRefs = React.useRef<ScreensRefsHolder>({});
|
|
501
|
+
|
|
418
502
|
return (
|
|
419
|
-
<ScreenStack
|
|
503
|
+
<ScreenStack
|
|
504
|
+
style={styles.container}
|
|
505
|
+
goBackGesture={goBackGesture}
|
|
506
|
+
transitionAnimation={transitionAnimation}
|
|
507
|
+
screenEdgeGesture={screenEdgeGesture ?? false}
|
|
508
|
+
screensRefs={screensRefs}
|
|
509
|
+
currentScreenId={currentRouteKey}>
|
|
420
510
|
{routes.map((route, index) => (
|
|
421
511
|
<RouteView
|
|
422
512
|
key={route.key}
|
|
@@ -425,6 +515,7 @@ function NativeStackViewInner({
|
|
|
425
515
|
index={index}
|
|
426
516
|
navigation={navigation}
|
|
427
517
|
stateKey={key}
|
|
518
|
+
screensRefs={screensRefs}
|
|
428
519
|
/>
|
|
429
520
|
))}
|
|
430
521
|
</ScreenStack>
|
|
@@ -439,28 +530,21 @@ export default function NativeStackView(props: Props) {
|
|
|
439
530
|
);
|
|
440
531
|
}
|
|
441
532
|
|
|
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
533
|
const styles = StyleSheet.create({
|
|
463
534
|
container: {
|
|
464
535
|
flex: 1,
|
|
465
536
|
},
|
|
537
|
+
absoluteFill: {
|
|
538
|
+
position: 'absolute',
|
|
539
|
+
top: 0,
|
|
540
|
+
left: 0,
|
|
541
|
+
right: 0,
|
|
542
|
+
bottom: 0,
|
|
543
|
+
},
|
|
544
|
+
absoluteFillNoBottom: {
|
|
545
|
+
position: 'absolute',
|
|
546
|
+
top: 0,
|
|
547
|
+
left: 0,
|
|
548
|
+
right: 0,
|
|
549
|
+
},
|
|
466
550
|
});
|
|
@@ -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
|
|