@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
|
@@ -20,13 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
20
20
|
|
|
21
21
|
@property (nonatomic, weak) UIView *reactSuperview;
|
|
22
22
|
|
|
23
|
-
@property (nonatomic, weak) RCTBridge *bridge;
|
|
24
|
-
|
|
25
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
|
-
#else
|
|
27
|
-
- (instancetype)initWithBridge:(RCTBridge *)bridge;
|
|
28
|
-
#endif // RCT_NEW_ARCH_ENABLED
|
|
29
|
-
|
|
30
23
|
@end
|
|
31
24
|
|
|
32
25
|
@interface RNSScreenStackHeaderSubviewManager : RCTViewManager
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#import "RNSScreenStackHeaderSubview.h"
|
|
2
2
|
#import "RNSConvert.h"
|
|
3
|
+
#import "RNSDefines.h"
|
|
4
|
+
#import "RNSScreenStackHeaderConfig.h"
|
|
3
5
|
|
|
4
6
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
7
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
@@ -8,24 +10,65 @@
|
|
|
8
10
|
|
|
9
11
|
#import <React/RCTConversions.h>
|
|
10
12
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
13
|
+
|
|
14
|
+
#import <rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
11
15
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
12
16
|
|
|
13
17
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
14
18
|
namespace react = facebook::react;
|
|
15
19
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
16
20
|
|
|
17
|
-
@interface RCTBridge (Private)
|
|
18
|
-
+ (RCTBridge *)currentBridge;
|
|
19
|
-
@end
|
|
20
|
-
|
|
21
21
|
@implementation RNSScreenStackHeaderSubview
|
|
22
22
|
|
|
23
23
|
#pragma mark - Common
|
|
24
24
|
|
|
25
|
+
- (nullable RNSScreenStackHeaderConfig *)getHeaderConfig
|
|
26
|
+
{
|
|
27
|
+
RNSScreenStackHeaderConfig *headerConfig = (RNSScreenStackHeaderConfig *_Nullable)self.reactSuperview;
|
|
28
|
+
#ifndef NDEBUG
|
|
29
|
+
if (headerConfig != nil && ![headerConfig isKindOfClass:[RNSScreenStackHeaderConfig class]]) {
|
|
30
|
+
RCTLogError(@"[RNScreens] Invalid view type, expecting RNSScreenStackHeaderConfig, got: %@", headerConfig);
|
|
31
|
+
return nil;
|
|
32
|
+
}
|
|
33
|
+
#endif
|
|
34
|
+
return headerConfig;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// We're forcing the navigation controller's view to re-layout
|
|
38
|
+
// see: https://github.com/software-mansion/react-native-screens/pull/2385
|
|
39
|
+
- (void)layoutNavigationBar
|
|
40
|
+
{
|
|
41
|
+
// If we're not attached yet, we should not layout the navigation bar,
|
|
42
|
+
// because the layout flow won't reach us & we will clear "isLayoutDirty" flags
|
|
43
|
+
// on view above us, causing subsequent layout request to not reach us.
|
|
44
|
+
if (self.window == nil) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
RNSScreenStackHeaderConfig *headerConfig = [self getHeaderConfig];
|
|
49
|
+
UINavigationController *navctr = headerConfig.screenView.reactViewController.navigationController;
|
|
50
|
+
|
|
51
|
+
UIView *toLayoutView = navctr.navigationBar;
|
|
52
|
+
|
|
53
|
+
// TODO: It is possible, that this needs to be called only on old architecture.
|
|
54
|
+
// Make sure that Test432 keeps working.
|
|
55
|
+
[toLayoutView setNeedsLayout];
|
|
56
|
+
|
|
57
|
+
// TODO: Determine why this must be called & deferring layout to next "update cycle"
|
|
58
|
+
// is not sufficient. See Test2552 and Test432. (Talking Paper here).
|
|
59
|
+
[toLayoutView layoutIfNeeded];
|
|
60
|
+
}
|
|
61
|
+
|
|
25
62
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
63
|
|
|
27
64
|
#pragma mark - Fabric specific
|
|
28
65
|
|
|
66
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
67
|
+
+ (void)load
|
|
68
|
+
{
|
|
69
|
+
[super load];
|
|
70
|
+
}
|
|
71
|
+
|
|
29
72
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
30
73
|
{
|
|
31
74
|
if (self = [super initWithFrame:frame]) {
|
|
@@ -56,6 +99,8 @@ namespace react = facebook::react;
|
|
|
56
99
|
return react::concreteComponentDescriptorProvider<react::RNSScreenStackHeaderSubviewComponentDescriptor>();
|
|
57
100
|
}
|
|
58
101
|
|
|
102
|
+
RNS_IGNORE_SUPER_CALL_BEGIN
|
|
103
|
+
// System layouts the subviews.
|
|
59
104
|
- (void)updateLayoutMetrics:(const react::LayoutMetrics &)layoutMetrics
|
|
60
105
|
oldLayoutMetrics:(const react::LayoutMetrics &)oldLayoutMetrics
|
|
61
106
|
{
|
|
@@ -72,37 +117,29 @@ namespace react = facebook::react;
|
|
|
72
117
|
self);
|
|
73
118
|
} else {
|
|
74
119
|
self.bounds = CGRect{CGPointZero, frame.size};
|
|
120
|
+
[self layoutNavigationBar];
|
|
75
121
|
}
|
|
76
122
|
}
|
|
123
|
+
RNS_IGNORE_SUPER_CALL_BEGIN
|
|
77
124
|
|
|
78
|
-
|
|
79
|
-
#pragma mark - Paper specific
|
|
80
|
-
|
|
81
|
-
- (instancetype)initWithBridge:(RCTBridge *)bridge
|
|
125
|
+
+ (BOOL)shouldBeRecycled
|
|
82
126
|
{
|
|
83
|
-
|
|
84
|
-
_bridge = bridge;
|
|
85
|
-
}
|
|
86
|
-
return self;
|
|
127
|
+
return NO;
|
|
87
128
|
}
|
|
88
129
|
|
|
130
|
+
#else // RCT_NEW_ARCH_ENABLED
|
|
131
|
+
#pragma mark - Paper specific
|
|
132
|
+
|
|
89
133
|
- (void)reactSetFrame:(CGRect)frame
|
|
90
134
|
{
|
|
91
135
|
// Block any attempt to set coordinates on RNSScreenStackHeaderSubview. This
|
|
92
136
|
// makes UINavigationBar the only one to control the position of header content.
|
|
93
|
-
|
|
137
|
+
if (!CGSizeEqualToSize(frame.size, self.frame.size)) {
|
|
138
|
+
[super reactSetFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
|
|
139
|
+
[self layoutNavigationBar];
|
|
140
|
+
}
|
|
94
141
|
}
|
|
95
|
-
|
|
96
|
-
#endif // RCT_NEW_ARCH_ENABLED
|
|
97
|
-
|
|
98
|
-
- (RCTBridge *)bridge
|
|
99
|
-
{
|
|
100
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
101
|
-
return [RCTBridge currentBridge];
|
|
102
|
-
#else
|
|
103
|
-
return _bridge;
|
|
104
142
|
#endif // RCT_NEW_ARCH_ENABLED
|
|
105
|
-
}
|
|
106
143
|
|
|
107
144
|
@end
|
|
108
145
|
|
|
@@ -116,7 +153,7 @@ RCT_EXPORT_VIEW_PROPERTY(type, RNSScreenStackHeaderSubviewType)
|
|
|
116
153
|
#else
|
|
117
154
|
- (UIView *)view
|
|
118
155
|
{
|
|
119
|
-
return [
|
|
156
|
+
return [RNSScreenStackHeaderSubview new];
|
|
120
157
|
}
|
|
121
158
|
#endif
|
|
122
159
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
@implementation RNSScreenWindowTraits
|
|
6
6
|
|
|
7
|
-
#if !TARGET_OS_TV
|
|
7
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
8
8
|
+ (void)assertViewControllerBasedStatusBarAppearenceSet
|
|
9
9
|
{
|
|
10
10
|
static dispatch_once_t once;
|
|
@@ -22,21 +22,10 @@
|
|
|
22
22
|
|
|
23
23
|
+ (void)updateStatusBarAppearance
|
|
24
24
|
{
|
|
25
|
-
#if !TARGET_OS_TV
|
|
25
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
26
26
|
[UIView animateWithDuration:0.4
|
|
27
27
|
animations:^{ // duration based on "Programming iOS 13" p. 311 implementation
|
|
28
|
-
|
|
29
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
30
|
-
if (@available(iOS 13, *)) {
|
|
31
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
32
|
-
if (firstWindow != nil) {
|
|
33
|
-
[[firstWindow rootViewController] setNeedsStatusBarAppearanceUpdate];
|
|
34
|
-
}
|
|
35
|
-
} else
|
|
36
|
-
#endif
|
|
37
|
-
{
|
|
38
|
-
[UIApplication.sharedApplication.keyWindow.rootViewController setNeedsStatusBarAppearanceUpdate];
|
|
39
|
-
}
|
|
28
|
+
[RCTKeyWindow().rootViewController setNeedsStatusBarAppearanceUpdate];
|
|
40
29
|
}];
|
|
41
30
|
#endif
|
|
42
31
|
}
|
|
@@ -44,21 +33,7 @@
|
|
|
44
33
|
+ (void)updateHomeIndicatorAutoHidden
|
|
45
34
|
{
|
|
46
35
|
#if !TARGET_OS_TV
|
|
47
|
-
|
|
48
|
-
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
|
|
49
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
50
|
-
if (@available(iOS 13, *)) {
|
|
51
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
52
|
-
if (firstWindow != nil) {
|
|
53
|
-
[[firstWindow rootViewController] setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
54
|
-
}
|
|
55
|
-
} else
|
|
56
|
-
#endif
|
|
57
|
-
{
|
|
58
|
-
if (@available(iOS 11.0, *)) {
|
|
59
|
-
[UIApplication.sharedApplication.keyWindow.rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
36
|
+
[RCTKeyWindow().rootViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
|
|
62
37
|
#endif
|
|
63
38
|
}
|
|
64
39
|
|
|
@@ -134,21 +109,10 @@
|
|
|
134
109
|
|
|
135
110
|
+ (void)enforceDesiredDeviceOrientation
|
|
136
111
|
{
|
|
137
|
-
#if !TARGET_OS_TV
|
|
112
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
138
113
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
139
|
-
UIInterfaceOrientationMask orientationMask =
|
|
140
|
-
|
|
141
|
-
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
142
|
-
if (@available(iOS 13, *)) {
|
|
143
|
-
UIWindow *firstWindow = [[[UIApplication sharedApplication] windows] firstObject];
|
|
144
|
-
if (firstWindow != nil) {
|
|
145
|
-
orientationMask = [firstWindow rootViewController].supportedInterfaceOrientations;
|
|
146
|
-
}
|
|
147
|
-
} else
|
|
148
|
-
#endif
|
|
149
|
-
{
|
|
150
|
-
orientationMask = UIApplication.sharedApplication.keyWindow.rootViewController.supportedInterfaceOrientations;
|
|
151
|
-
}
|
|
114
|
+
UIInterfaceOrientationMask orientationMask = [RCTKeyWindow().rootViewController supportedInterfaceOrientations];
|
|
115
|
+
|
|
152
116
|
UIInterfaceOrientation currentDeviceOrientation =
|
|
153
117
|
[RNSScreenWindowTraits interfaceOrientationFromDeviceOrientation:[[UIDevice currentDevice] orientation]];
|
|
154
118
|
UIInterfaceOrientation currentInterfaceOrientation = [RNSScreenWindowTraits interfaceOrientation];
|
|
@@ -178,7 +142,21 @@
|
|
|
178
142
|
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_16_0
|
|
179
143
|
if (@available(iOS 16.0, *)) {
|
|
180
144
|
NSArray *array = [[[UIApplication sharedApplication] connectedScenes] allObjects];
|
|
181
|
-
|
|
145
|
+
|
|
146
|
+
// when an app supports multiple scenes (e.g. CarPlay), it is possible that
|
|
147
|
+
// UIWindowScene is not the first scene, or it may not be present at all
|
|
148
|
+
UIWindowScene *scene = nil;
|
|
149
|
+
for (id connectedScene in array) {
|
|
150
|
+
if ([connectedScene isKindOfClass:[UIWindowScene class]]) {
|
|
151
|
+
scene = connectedScene;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (scene == nil) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
182
160
|
UIWindowSceneGeometryPreferencesIOS *geometryPreferences =
|
|
183
161
|
[[UIWindowSceneGeometryPreferencesIOS alloc] initWithInterfaceOrientations:orientationMask];
|
|
184
162
|
[scene requestGeometryUpdateWithPreferences:geometryPreferences
|
|
@@ -211,7 +189,7 @@
|
|
|
211
189
|
[RNSScreenWindowTraits updateHomeIndicatorAutoHidden];
|
|
212
190
|
}
|
|
213
191
|
|
|
214
|
-
#if !TARGET_OS_TV
|
|
192
|
+
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
215
193
|
// based on
|
|
216
194
|
// https://stackoverflow.com/questions/57965701/statusbarorientation-was-deprecated-in-ios-13-0-when-attempting-to-get-app-ori/61249908#61249908
|
|
217
195
|
+ (UIInterfaceOrientation)interfaceOrientation
|
|
@@ -219,11 +197,7 @@
|
|
|
219
197
|
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
|
|
220
198
|
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
|
|
221
199
|
if (@available(iOS 13.0, *)) {
|
|
222
|
-
|
|
223
|
-
if (firstWindow == nil) {
|
|
224
|
-
return UIInterfaceOrientationUnknown;
|
|
225
|
-
}
|
|
226
|
-
UIWindowScene *windowScene = firstWindow.windowScene;
|
|
200
|
+
UIWindowScene *windowScene = RCTKeyWindow().windowScene;
|
|
227
201
|
if (windowScene == nil) {
|
|
228
202
|
return UIInterfaceOrientationUnknown;
|
|
229
203
|
}
|
package/ios/RNSSearchBar.h
CHANGED
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
|
|
30
30
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
31
31
|
#else
|
|
32
|
-
@property (nonatomic, copy)
|
|
33
|
-
@property (nonatomic, copy)
|
|
34
|
-
@property (nonatomic, copy)
|
|
35
|
-
@property (nonatomic, copy)
|
|
36
|
-
@property (nonatomic, copy)
|
|
32
|
+
@property (nonatomic, copy) RCTDirectEventBlock onChangeText;
|
|
33
|
+
@property (nonatomic, copy) RCTDirectEventBlock onCancelButtonPress;
|
|
34
|
+
@property (nonatomic, copy) RCTDirectEventBlock onSearchButtonPress;
|
|
35
|
+
@property (nonatomic, copy) RCTDirectEventBlock onSearchFocus;
|
|
36
|
+
@property (nonatomic, copy) RCTDirectEventBlock onSearchBlur;
|
|
37
37
|
#endif
|
|
38
38
|
|
|
39
39
|
@end
|
package/ios/RNSSearchBar.mm
CHANGED
|
@@ -37,6 +37,13 @@ namespace react = facebook::react;
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
40
|
+
|
|
41
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
42
|
+
+ (void)load
|
|
43
|
+
{
|
|
44
|
+
[super load];
|
|
45
|
+
}
|
|
46
|
+
|
|
40
47
|
- (instancetype)init
|
|
41
48
|
{
|
|
42
49
|
if (self = [super init]) {
|
|
@@ -50,7 +57,13 @@ namespace react = facebook::react;
|
|
|
50
57
|
|
|
51
58
|
- (void)initCommonProps
|
|
52
59
|
{
|
|
60
|
+
#if !TARGET_OS_TV
|
|
53
61
|
_controller = [[UISearchController alloc] initWithSearchResultsController:nil];
|
|
62
|
+
#else
|
|
63
|
+
// on TVOS UISearchController must contain searchResultsController.
|
|
64
|
+
_controller = [[UISearchController alloc] initWithSearchResultsController:[UIViewController new]];
|
|
65
|
+
#endif
|
|
66
|
+
|
|
54
67
|
_controller.searchBar.delegate = self;
|
|
55
68
|
_hideWhenScrolling = YES;
|
|
56
69
|
_placement = RNSSearchBarPlacementStacked;
|
|
@@ -61,11 +74,11 @@ namespace react = facebook::react;
|
|
|
61
74
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
62
75
|
if (_eventEmitter != nullptr) {
|
|
63
76
|
std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
|
|
64
|
-
->
|
|
77
|
+
->onSearchFocus(react::RNSSearchBarEventEmitter::OnSearchFocus{});
|
|
65
78
|
}
|
|
66
79
|
#else
|
|
67
|
-
if (self.
|
|
68
|
-
self.
|
|
80
|
+
if (self.onSearchFocus) {
|
|
81
|
+
self.onSearchFocus(@{});
|
|
69
82
|
}
|
|
70
83
|
#endif
|
|
71
84
|
}
|
|
@@ -75,11 +88,11 @@ namespace react = facebook::react;
|
|
|
75
88
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
76
89
|
if (_eventEmitter != nullptr) {
|
|
77
90
|
std::dynamic_pointer_cast<const react::RNSSearchBarEventEmitter>(_eventEmitter)
|
|
78
|
-
->
|
|
91
|
+
->onSearchBlur(react::RNSSearchBarEventEmitter::OnSearchBlur{});
|
|
79
92
|
}
|
|
80
93
|
#else
|
|
81
|
-
if (self.
|
|
82
|
-
self.
|
|
94
|
+
if (self.onSearchBlur) {
|
|
95
|
+
self.onSearchBlur(@{});
|
|
83
96
|
}
|
|
84
97
|
#endif
|
|
85
98
|
}
|
|
@@ -304,6 +317,14 @@ namespace react = facebook::react;
|
|
|
304
317
|
[_controller.searchBar setText:text];
|
|
305
318
|
}
|
|
306
319
|
|
|
320
|
+
- (void)cancelSearch
|
|
321
|
+
{
|
|
322
|
+
#if !TARGET_OS_TV
|
|
323
|
+
[self searchBarCancelButtonClicked:_controller.searchBar];
|
|
324
|
+
_controller.active = NO;
|
|
325
|
+
#endif
|
|
326
|
+
}
|
|
327
|
+
|
|
307
328
|
#pragma mark-- Fabric specific
|
|
308
329
|
|
|
309
330
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
@@ -330,9 +351,11 @@ namespace react = facebook::react;
|
|
|
330
351
|
[self setPlaceholder:RCTNSStringFromStringNilIfEmpty(newScreenProps.placeholder)];
|
|
331
352
|
}
|
|
332
353
|
|
|
354
|
+
#if !TARGET_OS_VISION
|
|
333
355
|
if (oldScreenProps.autoCapitalize != newScreenProps.autoCapitalize) {
|
|
334
356
|
[self setAutoCapitalize:[RNSConvert UITextAutocapitalizationTypeFromCppEquivalent:newScreenProps.autoCapitalize]];
|
|
335
357
|
}
|
|
358
|
+
#endif
|
|
336
359
|
|
|
337
360
|
if (oldScreenProps.tintColor != newScreenProps.tintColor) {
|
|
338
361
|
[self setTintColor:RCTUIColorFromSharedColor(newScreenProps.tintColor)];
|
|
@@ -398,11 +421,11 @@ RCT_EXPORT_VIEW_PROPERTY(textColor, UIColor)
|
|
|
398
421
|
RCT_EXPORT_VIEW_PROPERTY(cancelButtonText, NSString)
|
|
399
422
|
RCT_EXPORT_VIEW_PROPERTY(placement, RNSSearchBarPlacement)
|
|
400
423
|
|
|
401
|
-
RCT_EXPORT_VIEW_PROPERTY(onChangeText,
|
|
402
|
-
RCT_EXPORT_VIEW_PROPERTY(onCancelButtonPress,
|
|
403
|
-
RCT_EXPORT_VIEW_PROPERTY(onSearchButtonPress,
|
|
404
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
405
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
424
|
+
RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTDirectEventBlock)
|
|
425
|
+
RCT_EXPORT_VIEW_PROPERTY(onCancelButtonPress, RCTDirectEventBlock)
|
|
426
|
+
RCT_EXPORT_VIEW_PROPERTY(onSearchButtonPress, RCTDirectEventBlock)
|
|
427
|
+
RCT_EXPORT_VIEW_PROPERTY(onSearchFocus, RCTDirectEventBlock)
|
|
428
|
+
RCT_EXPORT_VIEW_PROPERTY(onSearchBlur, RCTDirectEventBlock)
|
|
406
429
|
|
|
407
430
|
#ifndef RCT_NEW_ARCH_ENABLED
|
|
408
431
|
|
|
@@ -446,6 +469,14 @@ RCT_EXPORT_METHOD(setText : (NSNumber *_Nonnull)reactTag text : (NSString *)text
|
|
|
446
469
|
}];
|
|
447
470
|
}
|
|
448
471
|
|
|
472
|
+
RCT_EXPORT_METHOD(cancelSearch : (NSNumber *_Nonnull)reactTag)
|
|
473
|
+
{
|
|
474
|
+
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) {
|
|
475
|
+
RNSSearchBar *searchBar = viewRegistry[reactTag];
|
|
476
|
+
[searchBar cancelSearch];
|
|
477
|
+
}];
|
|
478
|
+
}
|
|
479
|
+
|
|
449
480
|
#endif /* !RCT_NEW_ARCH_ENABLED */
|
|
450
481
|
|
|
451
482
|
@end
|
|
@@ -31,6 +31,21 @@ RCT_NOT_IMPLEMENTED(-(instancetype)init)
|
|
|
31
31
|
return body;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
- (BOOL)canCoalesce
|
|
35
|
+
{
|
|
36
|
+
return YES;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
- (uint16_t)coalescingKey
|
|
40
|
+
{
|
|
41
|
+
return _headerHeight;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (id<RCTEvent>)coalesceWithEvent:(id<RCTEvent>)newEvent
|
|
45
|
+
{
|
|
46
|
+
return newEvent;
|
|
47
|
+
}
|
|
48
|
+
|
|
34
49
|
+ (NSString *)moduleDotMethod
|
|
35
50
|
{
|
|
36
51
|
return @"RCTEventEmitter.receiveEvent";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <React/RCTSurfaceTouchHandler.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@interface RCTSurfaceTouchHandler (RNSUtility)
|
|
8
|
+
|
|
9
|
+
- (void)rnscreens_cancelTouches;
|
|
10
|
+
|
|
11
|
+
@end
|
|
12
|
+
|
|
13
|
+
NS_ASSUME_NONNULL_END
|
|
14
|
+
|
|
15
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
#import "RCTSurfaceTouchHandler+RNSUtility.h"
|
|
3
|
+
|
|
4
|
+
@implementation RCTSurfaceTouchHandler (RNSUtility)
|
|
5
|
+
|
|
6
|
+
- (void)rnscreens_cancelTouches
|
|
7
|
+
{
|
|
8
|
+
[self setEnabled:NO];
|
|
9
|
+
[self setEnabled:YES];
|
|
10
|
+
[self reset];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifndef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <React/RCTTouchHandler.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@interface RCTTouchHandler (RNSUtility)
|
|
8
|
+
|
|
9
|
+
- (void)rnscreens_cancelTouches;
|
|
10
|
+
|
|
11
|
+
@end
|
|
12
|
+
|
|
13
|
+
NS_ASSUME_NONNULL_END
|
|
14
|
+
|
|
15
|
+
#endif // !RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifndef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
#import "RCTTouchHandler+RNSUtility.h"
|
|
3
|
+
|
|
4
|
+
@implementation RCTTouchHandler (RNSUtility)
|
|
5
|
+
|
|
6
|
+
- (void)rnscreens_cancelTouches
|
|
7
|
+
{
|
|
8
|
+
[self setEnabled:NO];
|
|
9
|
+
[self setEnabled:YES];
|
|
10
|
+
[self reset];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
|
|
15
|
+
#endif // !RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#import <UIKit/UIKit.h>
|
|
2
|
+
|
|
3
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
4
|
+
|
|
5
|
+
@interface UINavigationBar (RNSUtility)
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Aims to find main content view of the `UINavigationBar`.
|
|
9
|
+
*
|
|
10
|
+
* This method relies on internal iOS implementation details (see the implementation)
|
|
11
|
+
* and might need patches specific to future iOS versions, in case the view hierarchy inside
|
|
12
|
+
* the navigation bar changes.
|
|
13
|
+
*
|
|
14
|
+
* Tested to work reliably on iOS 18.0, 17.5, 15.5.
|
|
15
|
+
*
|
|
16
|
+
* @returns `_UINavigationBarContentView` view mounted directly under the navigation bar itself
|
|
17
|
+
*/
|
|
18
|
+
- (nullable UIView *)rnscreens_findContentView;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Aims to find the back button wrapper view of the `UINavigationBar`. This is the view that contains
|
|
22
|
+
* the back button itself alongside all the margin / padding used to position the back button by the system.
|
|
23
|
+
*
|
|
24
|
+
* This method relies on internal iOS implementation details (see the implementation)
|
|
25
|
+
* and might need patches specific to future iOS versions, in case the view hierarchy inside
|
|
26
|
+
* the navigation bar changes.
|
|
27
|
+
*
|
|
28
|
+
* Tested to work reliably on iOS 18.0, 17.5, 15.5.
|
|
29
|
+
*
|
|
30
|
+
* @returns `_UIButtonBarButton` view, if present and mounted in anticipated place;
|
|
31
|
+
* if the back button is not present, this method returns `nil`.
|
|
32
|
+
*/
|
|
33
|
+
- (nullable UIView *)rnscreens_findBackButtonWrapperView;
|
|
34
|
+
|
|
35
|
+
@end
|
|
36
|
+
|
|
37
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#import "UINavigationBar+RNSUtility.h"
|
|
2
|
+
|
|
3
|
+
@implementation UINavigationBar (RNSUtility)
|
|
4
|
+
|
|
5
|
+
- (nullable UIView *)rnscreens_findContentView
|
|
6
|
+
{
|
|
7
|
+
// Class names taken from iOS 17.5, tested on iPhone 15 Pro
|
|
8
|
+
static Class ContentViewClass = NSClassFromString(@"_UINavigationBarContentView");
|
|
9
|
+
|
|
10
|
+
// Fast path
|
|
11
|
+
if (self.subviews.count > 1 && [self.subviews[1] isKindOfClass:ContentViewClass]) {
|
|
12
|
+
return self.subviews[1];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
for (UIView *subview in self.subviews) {
|
|
16
|
+
if ([subview isKindOfClass:ContentViewClass]) {
|
|
17
|
+
return subview;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return nil;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
- (nullable UIView *)rnscreens_findBackButtonWrapperView
|
|
25
|
+
{
|
|
26
|
+
// Class names taken from iOS 17.5, tested on iPhone 15 Pro
|
|
27
|
+
static Class BarButtonViewClass = NSClassFromString(@"_UIButtonBarButton");
|
|
28
|
+
|
|
29
|
+
UIView *contentView = self.rnscreens_findContentView;
|
|
30
|
+
|
|
31
|
+
if (contentView == nil) {
|
|
32
|
+
return nil;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
for (UIView *subview in contentView.subviews) {
|
|
36
|
+
if ([subview isKindOfClass:BarButtonViewClass]) {
|
|
37
|
+
return subview;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return nil;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
4
|
+
#import <React/RCTSurfaceTouchHandler.h>
|
|
5
|
+
#else
|
|
6
|
+
#import <React/RCTTouchHandler.h>
|
|
7
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
8
|
+
|
|
9
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
+
#define RNS_TOUCH_HANDLER_ARCH_TYPE RCTSurfaceTouchHandler
|
|
11
|
+
#else
|
|
12
|
+
#define RNS_TOUCH_HANDLER_ARCH_TYPE RCTTouchHandler
|
|
13
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
16
|
+
|
|
17
|
+
@interface UIView (RNSUtility)
|
|
18
|
+
|
|
19
|
+
- (nullable RNS_TOUCH_HANDLER_ARCH_TYPE *)rnscreens_findTouchHandlerInAncestorChain;
|
|
20
|
+
|
|
21
|
+
@end
|
|
22
|
+
|
|
23
|
+
NS_ASSUME_NONNULL_END
|