@amazon-devices/react-native-screens 2.0.1759135970 → 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/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 +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 +13 -15
- 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 -94
- 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 +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 +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 +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 +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/4a5c11b5bb8dfc0553e927a2c8678e1dbd4a75220fe24dfbdba59b5550215de6.bundle +0 -33681
- package/SystemBundles/4a5c11b5bb8dfc0553e927a2c8678e1dbd4a75220fe24dfbdba59b5550215de6.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 -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
|
@@ -3,8 +3,12 @@ package com.swmansion.rnscreens
|
|
|
3
3
|
import android.util.Log
|
|
4
4
|
import android.view.View
|
|
5
5
|
import com.facebook.react.bridge.JSApplicationCausedNativeException
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
7
|
import com.facebook.react.common.MapBuilder
|
|
7
8
|
import com.facebook.react.module.annotations.ReactModule
|
|
9
|
+
import com.facebook.react.uimanager.LayoutShadowNode
|
|
10
|
+
import com.facebook.react.uimanager.ReactStylesDiffMap
|
|
11
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
8
12
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
9
13
|
import com.facebook.react.uimanager.ViewGroupManager
|
|
10
14
|
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
@@ -16,27 +20,49 @@ import com.swmansion.rnscreens.events.HeaderDetachedEvent
|
|
|
16
20
|
import javax.annotation.Nonnull
|
|
17
21
|
|
|
18
22
|
@ReactModule(name = ScreenStackHeaderConfigViewManager.REACT_CLASS)
|
|
19
|
-
class ScreenStackHeaderConfigViewManager :
|
|
20
|
-
|
|
23
|
+
class ScreenStackHeaderConfigViewManager :
|
|
24
|
+
ViewGroupManager<ScreenStackHeaderConfig>(),
|
|
25
|
+
RNSScreenStackHeaderConfigManagerInterface<ScreenStackHeaderConfig> {
|
|
26
|
+
private val delegate: ViewManagerDelegate<ScreenStackHeaderConfig>
|
|
21
27
|
|
|
22
28
|
init {
|
|
23
|
-
|
|
29
|
+
delegate = RNSScreenStackHeaderConfigManagerDelegate<ScreenStackHeaderConfig, ScreenStackHeaderConfigViewManager>(this)
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
override fun getName(): String = REACT_CLASS
|
|
27
33
|
|
|
28
34
|
override fun createViewInstance(reactContext: ThemedReactContext) = ScreenStackHeaderConfig(reactContext)
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
// This works only on Paper. On Fabric the shadow node is implemented in C++ layer.
|
|
37
|
+
override fun createShadowNodeInstance(context: ReactApplicationContext): LayoutShadowNode = ScreenStackHeaderConfigShadowNode(context)
|
|
38
|
+
|
|
39
|
+
override fun addView(
|
|
40
|
+
parent: ScreenStackHeaderConfig,
|
|
41
|
+
child: View,
|
|
42
|
+
index: Int,
|
|
43
|
+
) {
|
|
31
44
|
if (child !is ScreenStackHeaderSubview) {
|
|
32
45
|
throw JSApplicationCausedNativeException(
|
|
33
|
-
"Config children should be of type " + ScreenStackHeaderSubviewManager.REACT_CLASS
|
|
46
|
+
"Config children should be of type " + ScreenStackHeaderSubviewManager.REACT_CLASS,
|
|
34
47
|
)
|
|
35
48
|
}
|
|
36
49
|
parent.addConfigSubview(child, index)
|
|
37
50
|
}
|
|
38
51
|
|
|
39
|
-
override fun
|
|
52
|
+
override fun updateState(
|
|
53
|
+
view: ScreenStackHeaderConfig,
|
|
54
|
+
props: ReactStylesDiffMap?,
|
|
55
|
+
stateWrapper: StateWrapper?,
|
|
56
|
+
): Any? {
|
|
57
|
+
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
58
|
+
view.setStateWrapper(stateWrapper)
|
|
59
|
+
}
|
|
60
|
+
return super.updateState(view, props, stateWrapper)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
override fun onDropViewInstance(
|
|
64
|
+
@Nonnull view: ScreenStackHeaderConfig,
|
|
65
|
+
) {
|
|
40
66
|
view.destroy()
|
|
41
67
|
}
|
|
42
68
|
|
|
@@ -44,13 +70,19 @@ class ScreenStackHeaderConfigViewManager : ViewGroupManager<ScreenStackHeaderCon
|
|
|
44
70
|
parent.removeAllConfigSubviews()
|
|
45
71
|
}
|
|
46
72
|
|
|
47
|
-
override fun removeViewAt(
|
|
73
|
+
override fun removeViewAt(
|
|
74
|
+
parent: ScreenStackHeaderConfig,
|
|
75
|
+
index: Int,
|
|
76
|
+
) {
|
|
48
77
|
parent.removeConfigSubview(index)
|
|
49
78
|
}
|
|
50
79
|
|
|
51
80
|
override fun getChildCount(parent: ScreenStackHeaderConfig): Int = parent.configSubviewsCount
|
|
52
81
|
|
|
53
|
-
override fun getChildAt(
|
|
82
|
+
override fun getChildAt(
|
|
83
|
+
parent: ScreenStackHeaderConfig,
|
|
84
|
+
index: Int,
|
|
85
|
+
): View = parent.getConfigSubview(index)
|
|
54
86
|
|
|
55
87
|
override fun needsCustomLayoutForChildren() = true
|
|
56
88
|
|
|
@@ -60,90 +92,128 @@ class ScreenStackHeaderConfigViewManager : ViewGroupManager<ScreenStackHeaderCon
|
|
|
60
92
|
}
|
|
61
93
|
|
|
62
94
|
@ReactProp(name = "title")
|
|
63
|
-
override fun setTitle(
|
|
95
|
+
override fun setTitle(
|
|
96
|
+
config: ScreenStackHeaderConfig,
|
|
97
|
+
title: String?,
|
|
98
|
+
) {
|
|
64
99
|
config.setTitle(title)
|
|
65
100
|
}
|
|
66
101
|
|
|
67
102
|
@ReactProp(name = "titleFontFamily")
|
|
68
|
-
override fun setTitleFontFamily(
|
|
103
|
+
override fun setTitleFontFamily(
|
|
104
|
+
config: ScreenStackHeaderConfig,
|
|
105
|
+
titleFontFamily: String?,
|
|
106
|
+
) {
|
|
69
107
|
config.setTitleFontFamily(titleFontFamily)
|
|
70
108
|
}
|
|
71
109
|
|
|
72
110
|
@ReactProp(name = "titleFontSize")
|
|
73
|
-
override fun setTitleFontSize(
|
|
111
|
+
override fun setTitleFontSize(
|
|
112
|
+
config: ScreenStackHeaderConfig,
|
|
113
|
+
titleFontSize: Int,
|
|
114
|
+
) {
|
|
74
115
|
config.setTitleFontSize(titleFontSize.toFloat())
|
|
75
116
|
}
|
|
76
117
|
|
|
77
118
|
@ReactProp(name = "titleFontWeight")
|
|
78
|
-
override fun setTitleFontWeight(
|
|
119
|
+
override fun setTitleFontWeight(
|
|
120
|
+
config: ScreenStackHeaderConfig,
|
|
121
|
+
titleFontWeight: String?,
|
|
122
|
+
) {
|
|
79
123
|
config.setTitleFontWeight(titleFontWeight)
|
|
80
124
|
}
|
|
81
125
|
|
|
82
126
|
@ReactProp(name = "titleColor", customType = "Color")
|
|
83
|
-
override fun setTitleColor(
|
|
127
|
+
override fun setTitleColor(
|
|
128
|
+
config: ScreenStackHeaderConfig,
|
|
129
|
+
titleColor: Int?,
|
|
130
|
+
) {
|
|
84
131
|
if (titleColor != null) {
|
|
85
132
|
config.setTitleColor(titleColor)
|
|
86
133
|
}
|
|
87
134
|
}
|
|
88
135
|
|
|
89
136
|
@ReactProp(name = "backgroundColor", customType = "Color")
|
|
90
|
-
override fun setBackgroundColor(
|
|
137
|
+
override fun setBackgroundColor(
|
|
138
|
+
config: ScreenStackHeaderConfig,
|
|
139
|
+
backgroundColor: Int?,
|
|
140
|
+
) {
|
|
91
141
|
config.setBackgroundColor(backgroundColor)
|
|
92
142
|
}
|
|
93
143
|
|
|
94
144
|
@ReactProp(name = "hideShadow")
|
|
95
|
-
override fun setHideShadow(
|
|
145
|
+
override fun setHideShadow(
|
|
146
|
+
config: ScreenStackHeaderConfig,
|
|
147
|
+
hideShadow: Boolean,
|
|
148
|
+
) {
|
|
96
149
|
config.setHideShadow(hideShadow)
|
|
97
150
|
}
|
|
98
151
|
|
|
99
152
|
@ReactProp(name = "hideBackButton")
|
|
100
|
-
override fun setHideBackButton(
|
|
153
|
+
override fun setHideBackButton(
|
|
154
|
+
config: ScreenStackHeaderConfig,
|
|
155
|
+
hideBackButton: Boolean,
|
|
156
|
+
) {
|
|
101
157
|
config.setHideBackButton(hideBackButton)
|
|
102
158
|
}
|
|
103
159
|
|
|
104
160
|
@ReactProp(name = "topInsetEnabled")
|
|
105
|
-
override fun setTopInsetEnabled(
|
|
161
|
+
override fun setTopInsetEnabled(
|
|
162
|
+
config: ScreenStackHeaderConfig,
|
|
163
|
+
topInsetEnabled: Boolean,
|
|
164
|
+
) {
|
|
106
165
|
config.setTopInsetEnabled(topInsetEnabled)
|
|
107
166
|
}
|
|
108
167
|
|
|
109
168
|
@ReactProp(name = "color", customType = "Color")
|
|
110
|
-
override fun setColor(
|
|
169
|
+
override fun setColor(
|
|
170
|
+
config: ScreenStackHeaderConfig,
|
|
171
|
+
color: Int?,
|
|
172
|
+
) {
|
|
111
173
|
config.setTintColor(color ?: 0)
|
|
112
174
|
}
|
|
113
175
|
|
|
114
176
|
@ReactProp(name = "hidden")
|
|
115
|
-
override fun setHidden(
|
|
177
|
+
override fun setHidden(
|
|
178
|
+
config: ScreenStackHeaderConfig,
|
|
179
|
+
hidden: Boolean,
|
|
180
|
+
) {
|
|
116
181
|
config.setHidden(hidden)
|
|
117
182
|
}
|
|
118
183
|
|
|
119
184
|
@ReactProp(name = "translucent")
|
|
120
|
-
override fun setTranslucent(
|
|
185
|
+
override fun setTranslucent(
|
|
186
|
+
config: ScreenStackHeaderConfig,
|
|
187
|
+
translucent: Boolean,
|
|
188
|
+
) {
|
|
121
189
|
config.setTranslucent(translucent)
|
|
122
190
|
}
|
|
123
191
|
|
|
124
192
|
@ReactProp(name = "backButtonInCustomView")
|
|
125
193
|
override fun setBackButtonInCustomView(
|
|
126
194
|
config: ScreenStackHeaderConfig,
|
|
127
|
-
backButtonInCustomView: Boolean
|
|
195
|
+
backButtonInCustomView: Boolean,
|
|
128
196
|
) {
|
|
129
197
|
config.setBackButtonInCustomView(backButtonInCustomView)
|
|
130
198
|
}
|
|
131
199
|
|
|
132
200
|
@ReactProp(name = "direction")
|
|
133
|
-
override fun setDirection(
|
|
201
|
+
override fun setDirection(
|
|
202
|
+
config: ScreenStackHeaderConfig,
|
|
203
|
+
direction: String?,
|
|
204
|
+
) {
|
|
134
205
|
config.setDirection(direction)
|
|
135
206
|
}
|
|
136
207
|
|
|
137
|
-
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>?
|
|
138
|
-
|
|
208
|
+
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? =
|
|
209
|
+
MapBuilder.of(
|
|
139
210
|
HeaderAttachedEvent.EVENT_NAME,
|
|
140
211
|
MapBuilder.of("registrationName", "onAttached"),
|
|
141
212
|
HeaderDetachedEvent.EVENT_NAME,
|
|
142
213
|
MapBuilder.of("registrationName", "onDetached"),
|
|
143
214
|
)
|
|
144
|
-
}
|
|
145
215
|
|
|
146
|
-
protected override fun getDelegate(): ViewManagerDelegate<ScreenStackHeaderConfig> =
|
|
216
|
+
protected override fun getDelegate(): ViewManagerDelegate<ScreenStackHeaderConfig> = delegate
|
|
147
217
|
|
|
148
218
|
companion object {
|
|
149
219
|
const val REACT_CLASS = "RNSScreenStackHeaderConfig"
|
|
@@ -151,54 +221,104 @@ class ScreenStackHeaderConfigViewManager : ViewGroupManager<ScreenStackHeaderCon
|
|
|
151
221
|
|
|
152
222
|
// TODO: Find better way to handle platform specific props
|
|
153
223
|
private fun logNotAvailable(propName: String) {
|
|
154
|
-
Log.w("
|
|
224
|
+
Log.w("[RNScreens]", "$propName prop is not available on Android")
|
|
155
225
|
}
|
|
156
226
|
|
|
157
|
-
override fun setBackTitle(
|
|
227
|
+
override fun setBackTitle(
|
|
228
|
+
view: ScreenStackHeaderConfig?,
|
|
229
|
+
value: String?,
|
|
230
|
+
) {
|
|
158
231
|
logNotAvailable("backTitle")
|
|
159
232
|
}
|
|
160
233
|
|
|
161
|
-
override fun setBackTitleFontFamily(
|
|
234
|
+
override fun setBackTitleFontFamily(
|
|
235
|
+
view: ScreenStackHeaderConfig?,
|
|
236
|
+
value: String?,
|
|
237
|
+
) {
|
|
162
238
|
logNotAvailable("backTitleFontFamily")
|
|
163
239
|
}
|
|
164
240
|
|
|
165
|
-
override fun setBackTitleFontSize(
|
|
241
|
+
override fun setBackTitleFontSize(
|
|
242
|
+
view: ScreenStackHeaderConfig?,
|
|
243
|
+
value: Int,
|
|
244
|
+
) {
|
|
166
245
|
logNotAvailable("backTitleFontSize")
|
|
167
246
|
}
|
|
168
247
|
|
|
169
|
-
override fun setBackTitleVisible(
|
|
248
|
+
override fun setBackTitleVisible(
|
|
249
|
+
view: ScreenStackHeaderConfig?,
|
|
250
|
+
value: Boolean,
|
|
251
|
+
) {
|
|
170
252
|
logNotAvailable("backTitleVisible")
|
|
171
253
|
}
|
|
172
254
|
|
|
173
|
-
override fun setLargeTitle(
|
|
255
|
+
override fun setLargeTitle(
|
|
256
|
+
view: ScreenStackHeaderConfig?,
|
|
257
|
+
value: Boolean,
|
|
258
|
+
) {
|
|
174
259
|
logNotAvailable("largeTitle")
|
|
175
260
|
}
|
|
176
261
|
|
|
177
|
-
override fun setLargeTitleFontFamily(
|
|
262
|
+
override fun setLargeTitleFontFamily(
|
|
263
|
+
view: ScreenStackHeaderConfig?,
|
|
264
|
+
value: String?,
|
|
265
|
+
) {
|
|
178
266
|
logNotAvailable("largeTitleFontFamily")
|
|
179
267
|
}
|
|
180
268
|
|
|
181
|
-
override fun setLargeTitleFontSize(
|
|
269
|
+
override fun setLargeTitleFontSize(
|
|
270
|
+
view: ScreenStackHeaderConfig?,
|
|
271
|
+
value: Int,
|
|
272
|
+
) {
|
|
182
273
|
logNotAvailable("largeTitleFontSize")
|
|
183
274
|
}
|
|
184
275
|
|
|
185
|
-
override fun setLargeTitleFontWeight(
|
|
276
|
+
override fun setLargeTitleFontWeight(
|
|
277
|
+
view: ScreenStackHeaderConfig?,
|
|
278
|
+
value: String?,
|
|
279
|
+
) {
|
|
186
280
|
logNotAvailable("largeTitleFontWeight")
|
|
187
281
|
}
|
|
188
282
|
|
|
189
|
-
override fun setLargeTitleBackgroundColor(
|
|
283
|
+
override fun setLargeTitleBackgroundColor(
|
|
284
|
+
view: ScreenStackHeaderConfig?,
|
|
285
|
+
value: Int?,
|
|
286
|
+
) {
|
|
190
287
|
logNotAvailable("largeTitleBackgroundColor")
|
|
191
288
|
}
|
|
192
289
|
|
|
193
|
-
override fun setLargeTitleHideShadow(
|
|
290
|
+
override fun setLargeTitleHideShadow(
|
|
291
|
+
view: ScreenStackHeaderConfig?,
|
|
292
|
+
value: Boolean,
|
|
293
|
+
) {
|
|
194
294
|
logNotAvailable("largeTitleHideShadow")
|
|
195
295
|
}
|
|
196
296
|
|
|
197
|
-
override fun setLargeTitleColor(
|
|
297
|
+
override fun setLargeTitleColor(
|
|
298
|
+
view: ScreenStackHeaderConfig?,
|
|
299
|
+
value: Int?,
|
|
300
|
+
) {
|
|
198
301
|
logNotAvailable("largeTitleColor")
|
|
199
302
|
}
|
|
200
303
|
|
|
201
|
-
override fun setDisableBackButtonMenu(
|
|
304
|
+
override fun setDisableBackButtonMenu(
|
|
305
|
+
view: ScreenStackHeaderConfig?,
|
|
306
|
+
value: Boolean,
|
|
307
|
+
) {
|
|
202
308
|
logNotAvailable("disableBackButtonMenu")
|
|
203
309
|
}
|
|
310
|
+
|
|
311
|
+
override fun setBackButtonDisplayMode(
|
|
312
|
+
view: ScreenStackHeaderConfig?,
|
|
313
|
+
value: String?,
|
|
314
|
+
) {
|
|
315
|
+
logNotAvailable("backButtonDisplayMode")
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
override fun setBlurEffect(
|
|
319
|
+
view: ScreenStackHeaderConfig?,
|
|
320
|
+
value: String?,
|
|
321
|
+
) {
|
|
322
|
+
logNotAvailable("blurEffect")
|
|
323
|
+
}
|
|
204
324
|
}
|
|
@@ -6,33 +6,48 @@ import com.facebook.react.bridge.ReactContext
|
|
|
6
6
|
import com.facebook.react.views.view.ReactViewGroup
|
|
7
7
|
|
|
8
8
|
@SuppressLint("ViewConstructor")
|
|
9
|
-
class ScreenStackHeaderSubview(
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
class ScreenStackHeaderSubview(
|
|
10
|
+
context: ReactContext?,
|
|
11
|
+
) : ReactViewGroup(context) {
|
|
12
|
+
private var reactWidth = 0
|
|
13
|
+
private var reactHeight = 0
|
|
12
14
|
var type = Type.RIGHT
|
|
13
15
|
|
|
14
16
|
val config: ScreenStackHeaderConfig?
|
|
15
17
|
get() = (parent as? CustomToolbar)?.config
|
|
16
18
|
|
|
17
|
-
override fun onMeasure(
|
|
19
|
+
override fun onMeasure(
|
|
20
|
+
widthMeasureSpec: Int,
|
|
21
|
+
heightMeasureSpec: Int,
|
|
22
|
+
) {
|
|
18
23
|
if (MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.EXACTLY &&
|
|
19
24
|
MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.EXACTLY
|
|
20
25
|
) {
|
|
21
26
|
// dimensions provided by react
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
reactWidth = MeasureSpec.getSize(widthMeasureSpec)
|
|
28
|
+
reactHeight = MeasureSpec.getSize(heightMeasureSpec)
|
|
24
29
|
val parent = parent
|
|
25
30
|
if (parent != null) {
|
|
26
31
|
forceLayout()
|
|
27
32
|
(parent as View).requestLayout()
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
|
-
setMeasuredDimension(
|
|
35
|
+
setMeasuredDimension(reactWidth, reactHeight)
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
override fun onLayout(
|
|
38
|
+
override fun onLayout(
|
|
39
|
+
changed: Boolean,
|
|
40
|
+
left: Int,
|
|
41
|
+
top: Int,
|
|
42
|
+
right: Int,
|
|
43
|
+
bottom: Int,
|
|
44
|
+
) = Unit
|
|
34
45
|
|
|
35
46
|
enum class Type {
|
|
36
|
-
LEFT,
|
|
47
|
+
LEFT,
|
|
48
|
+
CENTER,
|
|
49
|
+
RIGHT,
|
|
50
|
+
BACK,
|
|
51
|
+
SEARCH_BAR,
|
|
37
52
|
}
|
|
38
53
|
}
|
|
@@ -10,11 +10,13 @@ import com.facebook.react.viewmanagers.RNSScreenStackHeaderSubviewManagerDelegat
|
|
|
10
10
|
import com.facebook.react.viewmanagers.RNSScreenStackHeaderSubviewManagerInterface
|
|
11
11
|
|
|
12
12
|
@ReactModule(name = ScreenStackHeaderSubviewManager.REACT_CLASS)
|
|
13
|
-
class ScreenStackHeaderSubviewManager :
|
|
14
|
-
|
|
13
|
+
class ScreenStackHeaderSubviewManager :
|
|
14
|
+
ViewGroupManager<ScreenStackHeaderSubview>(),
|
|
15
|
+
RNSScreenStackHeaderSubviewManagerInterface<ScreenStackHeaderSubview> {
|
|
16
|
+
private val delegate: ViewManagerDelegate<ScreenStackHeaderSubview>
|
|
15
17
|
|
|
16
18
|
init {
|
|
17
|
-
|
|
19
|
+
delegate = RNSScreenStackHeaderSubviewManagerDelegate<ScreenStackHeaderSubview, ScreenStackHeaderSubviewManager>(this)
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
override fun getName() = REACT_CLASS
|
|
@@ -22,18 +24,22 @@ class ScreenStackHeaderSubviewManager : ViewGroupManager<ScreenStackHeaderSubvie
|
|
|
22
24
|
override fun createViewInstance(context: ThemedReactContext) = ScreenStackHeaderSubview(context)
|
|
23
25
|
|
|
24
26
|
@ReactProp(name = "type")
|
|
25
|
-
override fun setType(
|
|
26
|
-
view
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
override fun setType(
|
|
28
|
+
view: ScreenStackHeaderSubview,
|
|
29
|
+
type: String?,
|
|
30
|
+
) {
|
|
31
|
+
view.type =
|
|
32
|
+
when (type) {
|
|
33
|
+
"left" -> ScreenStackHeaderSubview.Type.LEFT
|
|
34
|
+
"center" -> ScreenStackHeaderSubview.Type.CENTER
|
|
35
|
+
"right" -> ScreenStackHeaderSubview.Type.RIGHT
|
|
36
|
+
"back" -> ScreenStackHeaderSubview.Type.BACK
|
|
37
|
+
"searchBar" -> ScreenStackHeaderSubview.Type.SEARCH_BAR
|
|
38
|
+
else -> throw JSApplicationIllegalArgumentException("Unknown type $type")
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
|
|
36
|
-
protected override fun getDelegate(): ViewManagerDelegate<ScreenStackHeaderSubview> =
|
|
42
|
+
protected override fun getDelegate(): ViewManagerDelegate<ScreenStackHeaderSubview> = delegate
|
|
37
43
|
|
|
38
44
|
companion object {
|
|
39
45
|
const val REACT_CLASS = "RNSScreenStackHeaderSubview"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
package com.swmansion.rnscreens
|
|
2
2
|
|
|
3
3
|
import android.view.View
|
|
4
|
-
import android.view.ViewGroup
|
|
5
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
7
6
|
import com.facebook.react.uimanager.LayoutShadowNode
|
|
@@ -13,61 +12,65 @@ import com.facebook.react.viewmanagers.RNSScreenStackManagerInterface
|
|
|
13
12
|
import com.swmansion.rnscreens.events.StackFinishTransitioningEvent
|
|
14
13
|
|
|
15
14
|
@ReactModule(name = ScreenStackViewManager.REACT_CLASS)
|
|
16
|
-
class ScreenStackViewManager :
|
|
17
|
-
|
|
15
|
+
class ScreenStackViewManager :
|
|
16
|
+
ViewGroupManager<ScreenStack>(),
|
|
17
|
+
RNSScreenStackManagerInterface<ScreenStack> {
|
|
18
|
+
private val delegate: ViewManagerDelegate<ScreenStack>
|
|
18
19
|
|
|
19
20
|
init {
|
|
20
|
-
|
|
21
|
+
delegate = RNSScreenStackManagerDelegate<ScreenStack, ScreenStackViewManager>(this)
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
override fun getName() = REACT_CLASS
|
|
24
25
|
|
|
25
26
|
override fun createViewInstance(reactContext: ThemedReactContext) = ScreenStack(reactContext)
|
|
26
27
|
|
|
27
|
-
override fun addView(
|
|
28
|
+
override fun addView(
|
|
29
|
+
parent: ScreenStack,
|
|
30
|
+
child: View,
|
|
31
|
+
index: Int,
|
|
32
|
+
) {
|
|
28
33
|
require(child is Screen) { "Attempt attach child that is not of type RNScreen" }
|
|
34
|
+
NativeProxy.addScreenToMap(child.id, child)
|
|
29
35
|
parent.addScreen(child, index)
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
override fun removeViewAt(
|
|
33
|
-
|
|
38
|
+
override fun removeViewAt(
|
|
39
|
+
parent: ScreenStack,
|
|
40
|
+
index: Int,
|
|
41
|
+
) {
|
|
42
|
+
val screen = parent.getScreenAt(index)
|
|
43
|
+
prepareOutTransition(screen)
|
|
34
44
|
parent.removeScreenAt(index)
|
|
45
|
+
NativeProxy.removeScreenFromMap(screen.id)
|
|
35
46
|
}
|
|
36
47
|
|
|
37
48
|
private fun prepareOutTransition(screen: Screen?) {
|
|
38
|
-
|
|
49
|
+
screen?.startRemovalTransition()
|
|
39
50
|
}
|
|
40
51
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
val child = it.getChildAt(i)
|
|
45
|
-
child?.let { view -> it.startViewTransition(view) }
|
|
46
|
-
if (child is ScreenStackHeaderConfig) {
|
|
47
|
-
// we want to start transition on children of the toolbar too,
|
|
48
|
-
// which is not a child of ScreenStackHeaderConfig
|
|
49
|
-
startTransitionRecursive(child.toolbar)
|
|
50
|
-
}
|
|
51
|
-
if (child is ViewGroup) {
|
|
52
|
-
startTransitionRecursive(child)
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
52
|
+
override fun invalidate() {
|
|
53
|
+
super.invalidate()
|
|
54
|
+
NativeProxy.clearMapOnInvalidate()
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
override fun getChildCount(parent: ScreenStack) = parent.screenCount
|
|
59
58
|
|
|
60
|
-
override fun getChildAt(
|
|
59
|
+
override fun getChildAt(
|
|
60
|
+
parent: ScreenStack,
|
|
61
|
+
index: Int,
|
|
62
|
+
): View = parent.getScreenAt(index)
|
|
61
63
|
|
|
62
64
|
override fun createShadowNodeInstance(context: ReactApplicationContext): LayoutShadowNode = ScreensShadowNode(context)
|
|
63
65
|
|
|
64
66
|
override fun needsCustomLayoutForChildren() = true
|
|
65
67
|
|
|
66
|
-
protected override fun getDelegate(): ViewManagerDelegate<ScreenStack> =
|
|
68
|
+
protected override fun getDelegate(): ViewManagerDelegate<ScreenStack> = delegate
|
|
67
69
|
|
|
68
|
-
override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> =
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> =
|
|
71
|
+
mutableMapOf(
|
|
72
|
+
StackFinishTransitioningEvent.EVENT_NAME to mutableMapOf("registrationName" to "onFinishTransitioning"),
|
|
73
|
+
)
|
|
71
74
|
|
|
72
75
|
companion object {
|
|
73
76
|
const val REACT_CLASS = "RNSScreenStack"
|