react-native-screens 5.0.0-alpha.1 → 5.0.0-alpha.3
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/Package.swift +87 -0
- package/README.md +0 -8
- package/RNScreens.podspec +2 -6
- package/android/build.gradle +26 -1
- package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +5 -0
- package/android/src/main/cpp/NativeProxy.cpp +30 -6
- package/android/src/main/cpp/NativeProxy.h +7 -1
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +8 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/container/ContainerItem.kt +13 -1
- package/android/src/main/java/com/swmansion/rnscreens/common/text/ReactTextAppearance.kt +62 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearance.kt +20 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearanceDefaults.kt +65 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
- package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +25 -7
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackFragment.kt +39 -10
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenViewManager.kt +5 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAppearanceCoordinator.kt → native/coordinator/FormSheetAppearanceCoordinator.kt} +2 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetBehaviorController.kt → native/coordinator/FormSheetBehaviorController.kt} +74 -19
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +159 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetNativeDismissCoordinator.kt +44 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetAvailableHeightProvider.kt +44 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContainer.kt → native/core/FormSheetContainer.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialog.kt +115 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +89 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeDelegate.kt → native/interfaces/FormSheetContentSizeChangeDelegate.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeProvider.kt → native/interfaces/FormSheetContentSizeChangeProvider.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDialogEventEmitter.kt → native/interfaces/FormSheetDialogEventEmitter.kt} +5 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetConfig.kt → native/model/FormSheetConfig.kt} +5 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +152 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAnimatorFactory.kt → native/presentation/FormSheetAnimatorFactory.kt} +9 -10
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDimmingManager.kt +115 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDismissalOrigin.kt +22 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentation.kt +173 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +290 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetPresentationState.kt → native/presentation/FormSheetPresentationState.kt} +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetStackRegistry.kt +28 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapper.kt → react/contentwrapper/FormSheetContentWrapper.kt} +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapperViewManager.kt → react/contentwrapper/FormSheetContentWrapperViewManager.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDetentChangedEvent.kt → react/event/FormSheetDetentChangedEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidAppearEvent.kt → react/event/FormSheetDidAppearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidDisappearEvent.kt → react/event/FormSheetDidDisappearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetDismissEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetNativeDismissEvent.kt → react/event/FormSheetNativeDismissEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetNativeDismissPreventedEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetSyncFlushEvent.kt → react/event/FormSheetSyncFlushEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillAppearEvent.kt → react/event/FormSheetWillAppearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillDisappearEvent.kt → react/event/FormSheetWillDisappearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentView.kt → react/host/FormSheetContentView.kt} +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHost.kt → react/host/FormSheetHost.kt} +6 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostEventEmitter.kt → react/host/FormSheetHostEventEmitter.kt} +23 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostViewManager.kt → react/host/FormSheetHostViewManager.kt} +13 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +380 -457
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderBackPressHandler.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +150 -182
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderFrameSynchronizer.kt +63 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +240 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderAppBarLayoutBehavior.kt → appbar/StackHeaderAppBarLayoutBehavior.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderContentScrimDrawable.kt +36 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderScrollingViewBehavior.kt → appbar/StackHeaderScrollingViewBehavior.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +192 -167
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +393 -13
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +0 -4
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +33 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderDelegate.kt +0 -7
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +9 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +195 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuController.kt +448 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuDelegate.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuMapper.kt +43 -21
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +8 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuElementConfig.kt → model/StackHeaderToolbarMenuElementConfig.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuGroupConfig.kt → model/StackHeaderToolbarMenuGroupConfig.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemConfig.kt → model/StackHeaderToolbarMenuItemConfig.kt} +2 -4
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemDefaults.kt → model/StackHeaderToolbarMenuItemDefaults.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemIconSource.kt → model/StackHeaderToolbarMenuItemIconSource.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemShowAsAction.kt → model/StackHeaderToolbarMenuItemShowAsAction.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemType.kt → model/StackHeaderToolbarMenuItemType.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuModel.kt +180 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarFieldUpdate.kt → update/StackHeaderToolbarFieldUpdate.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementOptions.kt +84 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +15 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +18 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuUpdateQueue.kt → update/StackHeaderToolbarMenuUpdateQueue.kt} +24 -52
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueueDelegate.kt +9 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +103 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +13 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +5 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +20 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +2 -4
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/MenuHelpers.kt +5 -23
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +46 -25
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHostA11yCoordinator.kt +23 -2
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/StyleUtils.kt +22 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_available_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_entire_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_available_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_entire_space.xml +8 -0
- package/common/cpp/react/renderer/components/rnscreens/legacy/RNSScreenShadowNode.cpp +10 -5
- package/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
- package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
- package/ios/RNSEnums.h +2 -2
- package/ios/RNSOrientationProviding.h +0 -2
- package/ios/RNSReactMountingTransactionObserving.h +15 -0
- package/ios/conversion/RNSConversions.h +7 -108
- package/ios/legacy/RNSBarButtonItem.mm +12 -5
- package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
- package/ios/legacy/RNSModalScreen.mm +1 -1
- package/ios/legacy/RNSScreen.h +8 -1
- package/ios/legacy/RNSScreen.mm +47 -36
- package/ios/legacy/RNSScreenContentWrapper.mm +9 -0
- package/ios/legacy/RNSScreenFooter.mm +2 -0
- package/ios/legacy/RNSScreenStack.mm +9 -4
- package/ios/legacy/RNSScreenStackHeaderConfig.mm +3 -1
- package/ios/legacy/RNSScreenStackHeaderSubview.mm +1 -1
- package/ios/legacy/RNSScreenWindowTraits.mm +5 -13
- package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.h +1 -3
- package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.mm +11 -22
- package/ios/modals/form-sheet/RNSFormSheetContentController.h +1 -1
- package/ios/modals/form-sheet/RNSFormSheetContentController.mm +7 -18
- package/ios/modals/form-sheet/RNSFormSheetContentWrapperComponentView.mm +9 -0
- package/ios/modals/form-sheet/RNSFormSheetHostComponentView.mm +4 -4
- package/ios/modals/form-sheet/RNSFormSheetHostShadowStateProxy.mm +2 -2
- package/ios/modals/form-sheet/RNSFormSheetUpdateFlags.h +3 -0
- package/ios/safe-area/RNSSafeAreaViewComponentView.mm +2 -2
- package/ios/scroll-to-top-guard/RNSScrollToTopGuard.h +17 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuard.mm +57 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.h +28 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.mm +64 -0
- package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
- package/ios/split/RNSSplitAppearanceApplicator.h +36 -0
- package/ios/split/RNSSplitAppearanceApplicator.mm +182 -0
- package/ios/split/RNSSplitAppearanceCoordinator.h +26 -0
- package/ios/split/RNSSplitAppearanceCoordinator.mm +27 -0
- package/ios/split/RNSSplitAppearanceUpdateFlags.h +14 -0
- package/ios/split/RNSSplitHostComponentEventEmitter.h +1 -0
- package/ios/split/RNSSplitHostComponentEventEmitter.mm +1 -1
- package/ios/split/RNSSplitHostComponentView.h +5 -15
- package/ios/split/RNSSplitHostComponentView.mm +56 -7
- package/ios/split/RNSSplitHostController.h +105 -0
- package/ios/split/RNSSplitHostController.mm +492 -0
- package/ios/split/RNSSplitHostProviders.h +67 -0
- package/ios/split/RNSSplitNavigationController.h +31 -0
- package/ios/split/RNSSplitNavigationController.mm +44 -0
- package/ios/split/RNSSplitNavigationControllerFrameObserver.h +32 -0
- package/ios/split/RNSSplitNavigationControllerFrameObserver.mm +80 -0
- package/ios/split/RNSSplitNavigationControllerFrameOriginChangeDelegate.h +15 -0
- package/ios/split/RNSSplitScreenComponentView.h +0 -39
- package/ios/split/RNSSplitScreenComponentView.mm +35 -19
- package/ios/split/RNSSplitScreenController.h +68 -0
- package/ios/split/RNSSplitScreenController.mm +113 -0
- package/ios/split/RNSSplitScreenShadowStateProxy.h +1 -40
- package/ios/split/RNSSplitScreenShadowStateProxy.mm +1 -26
- package/ios/split/conversion/RNSConversions-SplitView.h +56 -0
- package/ios/{conversion → split/conversion}/RNSConversions-SplitView.mm +4 -1
- package/ios/stack/conversion/RNSConversions-Stack.h +32 -0
- package/ios/stack/conversion/RNSConversions-Stack.mm +55 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.h +11 -1
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +108 -38
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +9 -0
- package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
- package/ios/stack/header/RNSStackHeaderItemComponentView.h +3 -1
- package/ios/stack/header/RNSStackHeaderItemComponentView.mm +15 -2
- package/ios/stack/header/RNSStackHeaderItemDataProviding.h +2 -0
- package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +9 -0
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +15 -0
- package/ios/stack/header/RNSStackHeaderMenuFinder.h +18 -3
- package/ios/stack/header/RNSStackHeaderMenuFinder.mm +21 -3
- package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
- package/ios/stack/host/RNSStackHostComponentView.mm +3 -1
- package/ios/stack/host/RNSStackNavigationBar.h +25 -0
- package/ios/stack/host/RNSStackNavigationBar.mm +80 -0
- package/ios/stack/host/RNSStackNavigationBarCoordinator.h +8 -0
- package/ios/stack/host/RNSStackNavigationBarCoordinator.mm +11 -0
- package/ios/stack/host/RNSStackNavigationController.mm +14 -6
- package/ios/stack/host/RNSStackOperation.h +0 -2
- package/ios/stack/screen/RNSStackScreenComponentView.mm +9 -4
- package/ios/stack/screen/RNSStackScreenController.mm +12 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +14 -1
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +159 -28
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +40 -9
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +4 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +5 -2
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
- package/ios/tabs/conversion/RNSConversions-Tabs.h +78 -0
- package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +8 -71
- package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
- package/ios/tabs/host/RNSTabBarController.h +5 -12
- package/ios/tabs/host/RNSTabBarController.mm +1 -1
- package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
- package/ios/tabs/host/RNSTabsHostComponentView.mm +10 -3
- package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
- package/ios/tabs/screen/RNSTabsScreenComponentView.mm +20 -5
- package/ios/utils/RNSDefines.h +3 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +25 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js +24 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
- package/lib/commonjs/components/scroll-to-top-guard/index.js +13 -0
- package/lib/commonjs/components/scroll-to-top-guard/index.js.map +1 -0
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +34 -19
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +44 -13
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js +33 -2
- package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/utils.js +6 -9
- package/lib/commonjs/components/stack/header/utils.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.js +9 -6
- package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
- package/lib/commonjs/components/stack/index.js.map +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js +1 -0
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/commonjs/experimental/index.js +11 -0
- package/lib/commonjs/experimental/index.js.map +1 -1
- package/lib/commonjs/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +12 -0
- package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/split/SplitHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/split/SplitScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/flags.js +22 -1
- package/lib/commonjs/flags.js.map +1 -1
- package/lib/commonjs/legacy/components/Screen.js +6 -1
- package/lib/commonjs/legacy/components/Screen.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js +5 -0
- package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/commonjs/legacy/components/SearchBar.js +16 -16
- package/lib/commonjs/legacy/components/SearchBar.js.map +1 -1
- package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js +3 -0
- package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
- package/lib/commonjs/legacy/gesture-handler/fabricUtils.js.map +1 -1
- package/lib/commonjs/legacy/useTransitionProgress.js.map +1 -1
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +20 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js +18 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
- package/lib/module/components/scroll-to-top-guard/index.js +2 -0
- package/lib/module/components/scroll-to-top-guard/index.js.map +1 -0
- package/lib/module/components/stack/header/StackHeaderConfig.android.js +35 -20
- package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js +48 -17
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/module/components/stack/header/ios/iconUtils.ios.js +31 -2
- package/lib/module/components/stack/header/ios/iconUtils.ios.js.map +1 -1
- package/lib/module/components/stack/header/utils.js +5 -8
- package/lib/module/components/stack/header/utils.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.js +9 -6
- package/lib/module/components/stack/host/StackHost.js.map +1 -1
- package/lib/module/components/stack/index.js.map +1 -1
- package/lib/module/components/tabs/host/TabsHost.ios.js +1 -0
- package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/module/experimental/index.js +1 -0
- package/lib/module/experimental/index.js.map +1 -1
- package/lib/module/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
- package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +7 -0
- package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
- package/lib/module/fabric/split/SplitHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/split/SplitScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/module/flags.js +22 -1
- package/lib/module/flags.js.map +1 -1
- package/lib/module/legacy/components/Screen.js +6 -1
- package/lib/module/legacy/components/Screen.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackHeaderConfig.js +5 -0
- package/lib/module/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/module/legacy/components/SearchBar.js +17 -17
- package/lib/module/legacy/components/SearchBar.js.map +1 -1
- package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js +4 -0
- package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
- package/lib/module/legacy/gesture-handler/fabricUtils.js.map +1 -1
- package/lib/module/legacy/useTransitionProgress.js.map +1 -1
- package/lib/module/private/hooks/useRenderDebugInfo.js.map +1 -1
- package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +3 -3
- package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts +5 -2
- package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts.map +1 -1
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts +15 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts.map +1 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts +12 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts.map +1 -0
- package/lib/typescript/components/scroll-to-top-guard/index.d.ts +2 -0
- package/lib/typescript/components/scroll-to-top-guard/index.d.ts.map +1 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +639 -20
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +239 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts +2 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +5 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts +2 -0
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts +3 -0
- package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/utils.d.ts +1 -2
- package/lib/typescript/components/stack/header/utils.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.d.ts +1 -1
- package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.types.d.ts +26 -2
- package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.web.d.ts +6 -2
- package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/index.d.ts +2 -2
- package/lib/typescript/components/stack/index.d.ts.map +1 -1
- package/lib/typescript/components/stack/screen/StackScreen.web.d.ts +5 -2
- package/lib/typescript/components/stack/screen/StackScreen.web.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +16 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +3 -0
- package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +5 -2
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts +7 -3
- package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +5 -2
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +1 -1
- package/lib/typescript/experimental/index.d.ts +1 -0
- package/lib/typescript/experimental/index.d.ts.map +1 -1
- package/lib/typescript/fabric/NativeScreensModule.d.ts +1 -1
- package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts +3 -3
- package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts +6 -6
- package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +53 -0
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +27 -2
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +4 -2
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +4 -2
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/flags.d.ts +13 -0
- package/lib/typescript/flags.d.ts.map +1 -1
- package/lib/typescript/legacy/TransitionProgressContext.d.ts +1 -1
- package/lib/typescript/legacy/TransitionProgressContext.d.ts.map +1 -1
- package/lib/typescript/legacy/components/Screen.d.ts +5 -3
- package/lib/typescript/legacy/components/Screen.d.ts.map +1 -1
- package/lib/typescript/legacy/components/Screen.web.d.ts +10 -2
- package/lib/typescript/legacy/components/Screen.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContainer.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContainer.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenFooter.web.d.ts +10 -3
- package/lib/typescript/legacy/components/ScreenFooter.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts +10 -3
- package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStack.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenStack.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts +3 -1
- package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts +3 -2
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
- package/lib/typescript/legacy/components/SearchBar.d.ts +3 -3
- package/lib/typescript/legacy/components/SearchBar.d.ts.map +1 -1
- package/lib/typescript/legacy/components/SearchBar.web.d.ts +5 -2
- package/lib/typescript/legacy/components/SearchBar.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +15 -12
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
- package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts +3 -2
- package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts.map +1 -1
- package/lib/typescript/legacy/types.d.ts +25 -5
- package/lib/typescript/legacy/types.d.ts.map +1 -1
- package/lib/typescript/legacy/useTransitionProgress.d.ts +2 -5
- package/lib/typescript/legacy/useTransitionProgress.d.ts.map +1 -1
- package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts +2 -2
- package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts.map +1 -1
- package/package.json +18 -17
- package/react-native.config.js +3 -0
- package/src/components/modals/form-sheet/FormSheet.types.ts +3 -3
- package/src/components/scroll-to-top-guard/ScrollToTopGuard.ios.tsx +17 -0
- package/src/components/scroll-to-top-guard/ScrollToTopGuard.tsx +18 -0
- package/src/components/scroll-to-top-guard/index.ts +1 -0
- package/src/components/stack/header/StackHeaderConfig.android.tsx +48 -23
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +660 -20
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +77 -23
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +251 -2
- package/src/components/stack/header/StackHeaderConfig.types.ts +2 -2
- package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +1 -23
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +2 -0
- package/src/components/stack/header/ios/iconUtils.ios.ts +38 -2
- package/src/components/stack/header/utils.ts +6 -11
- package/src/components/stack/host/StackHost.tsx +4 -2
- package/src/components/stack/host/StackHost.types.ts +28 -4
- package/src/components/stack/index.ts +6 -1
- package/src/components/tabs/host/TabsHost.ios.tsx +1 -0
- package/src/components/tabs/host/TabsHost.ios.types.ts +16 -0
- package/src/components/tabs/host/TabsHost.types.ts +3 -0
- package/src/components/tabs/screen/TabsScreen.types.ts +7 -3
- package/src/experimental/index.ts +1 -0
- package/src/fabric/ScrollViewMarkerNativeComponent.ts +8 -2
- package/src/fabric/legacy/FullWindowOverlayNativeComponent.ts +6 -2
- package/src/fabric/legacy/ModalScreenNativeComponent.ts +8 -2
- package/src/fabric/legacy/ScreenContainerNativeComponent.ts +5 -2
- package/src/fabric/legacy/ScreenContentWrapperNativeComponent.ts +2 -2
- package/src/fabric/legacy/ScreenFooterNativeComponent.ts +5 -2
- package/src/fabric/legacy/ScreenNativeComponent.ts +8 -2
- package/src/fabric/legacy/ScreenNavigationContainerNativeComponent.ts +2 -2
- package/src/fabric/legacy/ScreenStackHeaderConfigNativeComponent.ts +8 -3
- package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -2
- package/src/fabric/legacy/ScreenStackNativeComponent.ts +10 -2
- package/src/fabric/legacy/SearchBarNativeComponent.ts +10 -7
- package/src/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.ts +2 -2
- package/src/fabric/modals/form-sheet/FormSheetHostNativeComponent.ts +7 -2
- package/src/fabric/safe-area/SafeAreaViewNativeComponent.ts +6 -2
- package/src/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.ts +10 -0
- package/src/fabric/split/SplitHostNativeComponent.ts +5 -2
- package/src/fabric/split/SplitScreenNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +81 -1
- package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +39 -2
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +4 -1
- package/src/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHeaderSubviewAndroidNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHostNativeComponent.ts +15 -3
- package/src/fabric/stack/StackScreenNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsBottomAccessoryContentNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsBottomAccessoryNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsHostAndroidNativeComponent.ts +7 -2
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +8 -2
- package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +2 -1
- package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +2 -1
- package/src/flags.ts +26 -0
- package/src/legacy/TransitionProgressContext.tsx +1 -1
- package/src/legacy/components/Screen.tsx +14 -6
- package/src/legacy/components/ScreenStackHeaderConfig.tsx +7 -1
- package/src/legacy/components/ScreenStackItem.tsx +3 -4
- package/src/legacy/components/SearchBar.tsx +34 -44
- package/src/legacy/components/helpers/prepareHeaderBarButtonItems.ts +7 -1
- package/src/legacy/gesture-handler/fabricUtils.ts +5 -2
- package/src/legacy/types.ts +28 -5
- package/src/legacy/useTransitionProgress.tsx +4 -2
- package/src/private/hooks/useRenderDebugInfo.tsx +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingView.kt +0 -83
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewManager.kt +0 -89
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewPointerEvents.kt +0 -18
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDetents.kt +0 -106
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialog.kt +0 -60
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialogManager.kt +0 -138
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDimensionsCoordinator.kt +0 -131
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetNativeDismissCoordinator.kt +0 -25
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetPresentationManager.kt +0 -207
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderAppBarLayout.kt +0 -113
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuConfig.kt +0 -60
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuElementOptions.kt +0 -32
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuGroupMetadata.kt +0 -16
- package/ios/ReactMountingTransactionObserving.swift +0 -7
- package/ios/bridging/Swift-Bridging.h +0 -7
- package/ios/conversion/RNSConversions-Stack.h +0 -32
- package/ios/conversion/RNSConversions-Stack.mm +0 -41
- package/ios/conversion/always_false.h +0 -31
- package/ios/orientation/RNSOrientationProviding.swift +0 -6
- package/ios/orientation/RNSOrientationSwift.swift +0 -14
- package/ios/split/RNSSplitAppearanceApplicator.swift +0 -199
- package/ios/split/RNSSplitAppearanceCoordinator.swift +0 -26
- package/ios/split/RNSSplitAppearanceUpdateFlags.swift +0 -11
- package/ios/split/RNSSplitHostController.swift +0 -570
- package/ios/split/RNSSplitNavigationController.swift +0 -46
- package/ios/split/RNSSplitScreenController.swift +0 -133
- package/ios/utils/RNSLog.swift +0 -6
- /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
|
@@ -161,6 +161,16 @@ class TabsHost(
|
|
|
161
161
|
refreshLayout()
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
// On window configuration changes ViewRootImpl calls forceLayout() recursively on every view
|
|
165
|
+
// in the hierarchy, bypassing requestLayout(). React views never lay out their children during
|
|
166
|
+
// framework traversals, so nothing would clear the force-layout flags in our subtree — and once
|
|
167
|
+
// they are set, any subsequent requestLayout() from a descendant short-circuits before reaching
|
|
168
|
+
// the override above, permanently disabling the manual pass. Schedule it from here as well.
|
|
169
|
+
override fun forceLayout() {
|
|
170
|
+
super.forceLayout()
|
|
171
|
+
refreshLayout()
|
|
172
|
+
}
|
|
173
|
+
|
|
164
174
|
private fun forceSubtreeMeasureAndLayoutPass() {
|
|
165
175
|
measure(
|
|
166
176
|
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
|
|
@@ -3,6 +3,9 @@ package com.swmansion.rnscreens.tabs.host
|
|
|
3
3
|
import android.os.Build
|
|
4
4
|
import android.view.MenuItem
|
|
5
5
|
import android.view.View
|
|
6
|
+
import androidx.core.view.AccessibilityDelegateCompat
|
|
7
|
+
import androidx.core.view.ViewCompat
|
|
8
|
+
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
|
|
6
9
|
import androidx.core.view.children
|
|
7
10
|
import androidx.core.view.get
|
|
8
11
|
import com.google.android.material.bottomnavigation.BottomNavigationView
|
|
@@ -23,8 +26,26 @@ class TabsHostA11yCoordinator(
|
|
|
23
26
|
menuItem.contentDescription = tabsScreen.tabBarItemAccessibilityLabel
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
findTabItemView(menuItem.itemId)?.let { tabItemView ->
|
|
30
|
+
// when matching view by id, espresso driver seems to look for tag property
|
|
31
|
+
tabItemView.tag = tabsScreen.tabBarItemTestID
|
|
32
|
+
|
|
33
|
+
// UiAutomator-based drivers (Maestro, Appium) read the node's viewIdResourceName instead,
|
|
34
|
+
// so expose the testID there as well — this is what React Native's ReactAccessibilityDelegate
|
|
35
|
+
// does for every other view. Read through to the screen so a prop update is reflected.
|
|
36
|
+
ViewCompat.setAccessibilityDelegate(
|
|
37
|
+
tabItemView,
|
|
38
|
+
object : AccessibilityDelegateCompat() {
|
|
39
|
+
override fun onInitializeAccessibilityNodeInfo(
|
|
40
|
+
host: View,
|
|
41
|
+
info: AccessibilityNodeInfoCompat,
|
|
42
|
+
) {
|
|
43
|
+
super.onInitializeAccessibilityNodeInfo(host, info)
|
|
44
|
+
info.viewIdResourceName = tabsScreen.tabBarItemTestID
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
)
|
|
48
|
+
}
|
|
28
49
|
}
|
|
29
50
|
|
|
30
51
|
// Third-party SDKs can freely assign their own ids to id-less views in CustomBottomNavigationView's subtree and there is no way to
|
|
@@ -2,6 +2,8 @@ package com.swmansion.rnscreens.tabs.screen
|
|
|
2
2
|
|
|
3
3
|
import android.content.res.Configuration
|
|
4
4
|
import android.graphics.drawable.Drawable
|
|
5
|
+
import android.os.Parcelable
|
|
6
|
+
import android.util.SparseArray
|
|
5
7
|
import android.view.ViewGroup
|
|
6
8
|
import androidx.fragment.app.Fragment
|
|
7
9
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
@@ -127,6 +129,17 @@ class TabsScreen(
|
|
|
127
129
|
b: Int,
|
|
128
130
|
) = Unit
|
|
129
131
|
|
|
132
|
+
override fun dispatchSaveInstanceState(container: SparseArray<Parcelable>) {
|
|
133
|
+
// Do nothing. React Native owns this view hierarchy and keeps it alive, so there is no
|
|
134
|
+
// need to serialize/deserialize native view state. View ids in this subtree are react
|
|
135
|
+
// tags, which are not stable identities - restoring state by id can apply state saved
|
|
136
|
+
// by one view type to a different one, crashing e.g. in CompoundButton (see #4523).
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
override fun dispatchRestoreInstanceState(container: SparseArray<Parcelable>) {
|
|
140
|
+
// Ignore restoring instance state too, as we are not saving anything anyways.
|
|
141
|
+
}
|
|
142
|
+
|
|
130
143
|
internal fun setTabsScreenDelegate(delegate: TabsScreenDelegate?) {
|
|
131
144
|
tabsScreenDelegate = WeakReference(delegate)
|
|
132
145
|
}
|
|
@@ -176,6 +189,10 @@ class TabsScreen(
|
|
|
176
189
|
|
|
177
190
|
override fun findContentScrollView(): ViewGroup? = containerItemSupport.findContentScrollView(this)
|
|
178
191
|
|
|
192
|
+
// TabsScreen has no `preventNativeDismiss` flag of its own - it only forwards
|
|
193
|
+
// the question to its nested container.
|
|
194
|
+
override fun wantsToPreventStackNativeDismiss(): ContainerItem? = resolveNestedContainer()?.wantsToPreventStackNativeDismiss()
|
|
195
|
+
|
|
179
196
|
// endregion
|
|
180
197
|
|
|
181
198
|
companion object {
|
|
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
|
|
|
6
6
|
import android.view.View
|
|
7
7
|
import android.view.ViewGroup
|
|
8
8
|
import androidx.fragment.app.Fragment
|
|
9
|
+
import com.swmansion.rnscreens.helpers.ViewIdGenerator
|
|
9
10
|
|
|
10
11
|
class TabsScreenFragment(
|
|
11
12
|
internal val tabsScreen: TabsScreen,
|
|
@@ -13,6 +14,8 @@ class TabsScreenFragment(
|
|
|
13
14
|
internal val requireScreenKey: String by tabsScreen::requireScreenKey
|
|
14
15
|
internal val isPreventNativeSelectionEnabled: Boolean by tabsScreen::preventNativeSelection
|
|
15
16
|
|
|
17
|
+
internal val menuItemId: Int = ViewIdGenerator.generateViewId()
|
|
18
|
+
|
|
16
19
|
override fun onCreateView(
|
|
17
20
|
inflater: LayoutInflater,
|
|
18
21
|
container: ViewGroup?,
|
|
@@ -49,6 +49,13 @@ internal fun dpToPx(
|
|
|
49
49
|
*/
|
|
50
50
|
internal fun View.dpToPx(dp: Float): Float = dpToPx(dp, resources.displayMetrics.density)
|
|
51
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Converts an SP value to pixels using the density of the display this [View] is
|
|
54
|
+
* attached to (including the current font scale). Uses the view's own resources
|
|
55
|
+
* rather than the process-global density read by [PixelUtil]. See [pxToDp].
|
|
56
|
+
*/
|
|
57
|
+
internal fun View.spToPx(sp: Float): Float = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, resources.displayMetrics)
|
|
58
|
+
|
|
52
59
|
internal fun resolveDimensionAttr(
|
|
53
60
|
context: Context,
|
|
54
61
|
attrId: Int,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.utils
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.TypedValue
|
|
5
|
+
import androidx.annotation.StyleRes
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Resolves a theme attribute pointing at a style (e.g. `?attr/textAppearanceTitleLarge`)
|
|
9
|
+
* to its concrete style resource id. Used to recover Material's default text
|
|
10
|
+
* appearances so they can be re-applied at runtime.
|
|
11
|
+
*/
|
|
12
|
+
@StyleRes
|
|
13
|
+
internal fun resolveStyleResAttr(
|
|
14
|
+
context: Context,
|
|
15
|
+
attr: Int,
|
|
16
|
+
): Int {
|
|
17
|
+
val typedValue = TypedValue()
|
|
18
|
+
require(context.theme.resolveAttribute(attr, typedValue, true)) {
|
|
19
|
+
"[RNScreens] Unable to resolve Material theme style attribute."
|
|
20
|
+
}
|
|
21
|
+
return typedValue.resourceId
|
|
22
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<com.google.android.material.appbar.CollapsingToolbarLayout
|
|
3
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
4
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
5
|
+
style="?attr/collapsingToolbarLayoutLargeStyle"
|
|
6
|
+
android:layout_width="match_parent"
|
|
7
|
+
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
|
|
8
|
+
app:collapsedTitleGravityMode="availableSpace" />
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<com.google.android.material.appbar.CollapsingToolbarLayout
|
|
3
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
4
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
5
|
+
style="?attr/collapsingToolbarLayoutLargeStyle"
|
|
6
|
+
android:layout_width="match_parent"
|
|
7
|
+
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
|
|
8
|
+
app:collapsedTitleGravityMode="entireSpace" />
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<com.google.android.material.appbar.CollapsingToolbarLayout
|
|
3
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
4
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
5
|
+
style="?attr/collapsingToolbarLayoutMediumStyle"
|
|
6
|
+
android:layout_width="match_parent"
|
|
7
|
+
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
|
|
8
|
+
app:collapsedTitleGravityMode="availableSpace" />
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<com.google.android.material.appbar.CollapsingToolbarLayout
|
|
3
|
+
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
4
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
5
|
+
style="?attr/collapsingToolbarLayoutMediumStyle"
|
|
6
|
+
android:layout_width="match_parent"
|
|
7
|
+
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
|
|
8
|
+
app:collapsedTitleGravityMode="entireSpace" />
|
|
@@ -77,7 +77,11 @@ std::optional<float> findHeaderHeight(
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
jfloat headerHeight = env->CallFloatMethod(
|
|
80
|
-
packageInstance,
|
|
80
|
+
packageInstance,
|
|
81
|
+
computeDummyLayoutID,
|
|
82
|
+
fontSize,
|
|
83
|
+
isTitleEmpty,
|
|
84
|
+
applyTopInset);
|
|
81
85
|
|
|
82
86
|
return {headerHeight};
|
|
83
87
|
}
|
|
@@ -103,10 +107,11 @@ void RNSScreenShadowNode::appendChild(
|
|
|
103
107
|
headerConfigChild->getProps());
|
|
104
108
|
|
|
105
109
|
// The native CustomToolbar only pads itself with the top inset when
|
|
106
|
-
// `legacyTopInsetBehavior || consumeTopInset` holds (see
|
|
107
|
-
// The dummy measurement must mirror that condition,
|
|
108
|
-
// height is over-reported by the top inset whenever
|
|
109
|
-
// `disableTopInsetApplication` (consumeTopInset ==
|
|
110
|
+
// `legacyTopInsetBehavior || consumeTopInset` holds (see
|
|
111
|
+
// CustomToolbar.kt). The dummy measurement must mirror that condition,
|
|
112
|
+
// otherwise the header height is over-reported by the top inset whenever
|
|
113
|
+
// a header opts out via `disableTopInsetApplication` (consumeTopInset ==
|
|
114
|
+
// false).
|
|
110
115
|
const bool applyTopInset =
|
|
111
116
|
headerProps.legacyTopInsetBehavior || headerProps.consumeTopInset;
|
|
112
117
|
|
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
#include "RNSScreenRemovalListener.h"
|
|
2
2
|
#include <react/renderer/mounting/ShadowViewMutation.h>
|
|
3
|
+
#include <utility>
|
|
3
4
|
using namespace facebook::react;
|
|
4
5
|
|
|
6
|
+
uint64_t RNSScreenRemovalListener::setListener(
|
|
7
|
+
std::function<void(int)> &&listenerFunction) {
|
|
8
|
+
std::lock_guard<std::mutex> lock(listenerMutex_);
|
|
9
|
+
listenerFunction_ = std::move(listenerFunction);
|
|
10
|
+
return ++currentToken_;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
void RNSScreenRemovalListener::clearListener(uint64_t token) {
|
|
14
|
+
std::lock_guard<std::mutex> lock(listenerMutex_);
|
|
15
|
+
if (token == currentToken_) {
|
|
16
|
+
listenerFunction_ = nullptr;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
5
20
|
std::optional<MountingTransaction> RNSScreenRemovalListener::pullTransaction(
|
|
6
21
|
SurfaceId surfaceId,
|
|
7
22
|
MountingTransaction::Number transactionNumber,
|
|
8
23
|
const TransactionTelemetry &telemetry,
|
|
9
24
|
ShadowViewMutationList mutations) const {
|
|
25
|
+
// Copy under the lock, invoke outside it: the callback makes a JNI call and
|
|
26
|
+
// must not run while holding a lock the module thread also takes.
|
|
27
|
+
std::function<void(int)> listener;
|
|
28
|
+
{
|
|
29
|
+
std::lock_guard<std::mutex> lock(listenerMutex_);
|
|
30
|
+
listener = listenerFunction_;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (!listener) {
|
|
34
|
+
// Orphaned between module teardown and the next install: pass the
|
|
35
|
+
// transaction through untouched.
|
|
36
|
+
return MountingTransaction{
|
|
37
|
+
surfaceId, transactionNumber, std::move(mutations), telemetry};
|
|
38
|
+
}
|
|
39
|
+
|
|
10
40
|
for (const ShadowViewMutation &mutation : mutations) {
|
|
11
41
|
// When using RNSModalScreen on Android it should be added here.
|
|
12
42
|
if (mutation.type == ShadowViewMutation::Type::Remove &&
|
|
@@ -16,7 +46,7 @@ std::optional<MountingTransaction> RNSScreenRemovalListener::pullTransaction(
|
|
|
16
46
|
// We call the listener function even if this screen has not been owned
|
|
17
47
|
// by RNSScreenStack as since RN 0.78 we do not have enough information
|
|
18
48
|
// here. This final filter is applied later in NativeProxy.
|
|
19
|
-
|
|
49
|
+
listener(mutation.oldChildShadowView.tag);
|
|
20
50
|
}
|
|
21
51
|
}
|
|
22
52
|
|
|
@@ -4,12 +4,22 @@
|
|
|
4
4
|
#include <react/renderer/mounting/MountingOverrideDelegate.h>
|
|
5
5
|
#include <react/renderer/mounting/ShadowView.h>
|
|
6
6
|
|
|
7
|
+
#include <cstdint>
|
|
8
|
+
#include <functional>
|
|
9
|
+
#include <mutex>
|
|
10
|
+
|
|
7
11
|
using namespace facebook::react;
|
|
8
12
|
|
|
9
13
|
struct RNSScreenRemovalListener : public MountingOverrideDelegate {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
RNSScreenRemovalListener() = default;
|
|
15
|
+
|
|
16
|
+
// RN core lacks a `removeMountingOverrideDelegate` API, so this instance is
|
|
17
|
+
// process-immortal and swaps its callback instead of being replaced. The
|
|
18
|
+
// ownership token keeps a stale proxy's teardown from clearing a newer
|
|
19
|
+
// proxy's listener.
|
|
20
|
+
// See https://github.com/software-mansion/react-native-screens/pull/4413
|
|
21
|
+
uint64_t setListener(std::function<void(int)> &&listenerFunction);
|
|
22
|
+
void clearListener(uint64_t token);
|
|
13
23
|
|
|
14
24
|
bool shouldOverridePullTransaction() const override;
|
|
15
25
|
std::optional<MountingTransaction> pullTransaction(
|
|
@@ -17,4 +27,9 @@ struct RNSScreenRemovalListener : public MountingOverrideDelegate {
|
|
|
17
27
|
MountingTransaction::Number number,
|
|
18
28
|
const TransactionTelemetry &telemetry,
|
|
19
29
|
ShadowViewMutationList mutations) const override;
|
|
30
|
+
|
|
31
|
+
private:
|
|
32
|
+
mutable std::mutex listenerMutex_;
|
|
33
|
+
std::function<void(int)> listenerFunction_;
|
|
34
|
+
uint64_t currentToken_{0};
|
|
20
35
|
};
|
package/ios/RNSEnums.h
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
3
5
|
typedef NS_ENUM(NSInteger, RNSScrollEdgeEffect) {
|
|
4
6
|
RNSScrollEdgeEffectAutomatic,
|
|
5
7
|
RNSScrollEdgeEffectHard,
|
|
@@ -54,8 +56,6 @@ typedef NS_ENUM(NSInteger, RNSTabsIconType) {
|
|
|
54
56
|
RNSTabsIconTypeXcasset,
|
|
55
57
|
};
|
|
56
58
|
|
|
57
|
-
// TODO: investigate objc - swift interop and deduplicate this code
|
|
58
|
-
// This enum needs to be compatible with the RNSOrientationSwift enum.
|
|
59
59
|
typedef NS_ENUM(NSInteger, RNSOrientation) {
|
|
60
60
|
RNSOrientationInherit,
|
|
61
61
|
RNSOrientationAll,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import <Foundation/Foundation.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@protocol RNSReactMountingTransactionObserving
|
|
8
|
+
|
|
9
|
+
- (void)reactMountingTransactionWillMount;
|
|
10
|
+
|
|
11
|
+
- (void)reactMountingTransactionDidMount;
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -1,125 +1,24 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#if defined(__cplusplus)
|
|
4
|
-
#import <
|
|
5
|
-
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
6
|
-
#import <react/renderer/components/rnscreens/Props.h>
|
|
7
|
-
#import <optional>
|
|
8
|
-
#import "RNSDefines.h"
|
|
9
|
-
#import "RNSEnums.h"
|
|
10
|
-
#import "RNSTabsNavigationState.h"
|
|
11
|
-
|
|
4
|
+
#import <UIKit/UIKit.h>
|
|
12
5
|
#import <folly/dynamic.h>
|
|
6
|
+
#import "RNSEnums.h"
|
|
13
7
|
|
|
14
8
|
namespace rnscreens::conversion {
|
|
15
9
|
|
|
16
|
-
namespace react = facebook::react;
|
|
17
|
-
|
|
18
10
|
// copied from FollyConvert.mm
|
|
19
11
|
id RNSConvertFollyDynamicToId(const folly::dynamic &dyn);
|
|
20
12
|
|
|
21
|
-
std::optional<UIBlurEffectStyle> RNSMaybeUIBlurEffectStyleFromString(NSString *blurEffectString);
|
|
22
|
-
|
|
23
|
-
UIBlurEffect *RNSUIBlurEffectFromString(NSString *blurEffectString);
|
|
24
|
-
|
|
25
|
-
std::optional<UIBlurEffectStyle> RNSMaybeUIBlurEffectStyleFromRNSBlurEffectStyle(RNSBlurEffectStyle blurEffect);
|
|
26
|
-
|
|
27
|
-
UIBlurEffect *RNSUIBlurEffectFromRNSBlurEffectStyle(RNSBlurEffectStyle blurEffect);
|
|
28
|
-
|
|
29
|
-
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
30
|
-
|
|
31
|
-
API_AVAILABLE(ios(26.0))
|
|
32
|
-
UITabBarMinimizeBehavior UITabBarMinimizeBehaviorFromRNSTabsHostTabBarMinimizeBehavior(
|
|
33
|
-
react::RNSTabsHostIOSTabBarMinimizeBehavior tabBarMinimizeBehavior);
|
|
34
|
-
|
|
35
|
-
#endif // Check for iOS >= 26
|
|
36
|
-
|
|
37
|
-
#if RNS_IPHONE_OS_VERSION_AVAILABLE(18_0)
|
|
38
|
-
|
|
39
|
-
API_AVAILABLE(ios(18.0))
|
|
40
|
-
UITabBarControllerMode UITabBarControllerModeFromRNSTabsHostTabBarControllerMode(
|
|
41
|
-
react::RNSTabsHostIOSTabBarControllerMode tabBarControllerMode);
|
|
42
|
-
|
|
43
|
-
#endif // Check for iOS >= 18
|
|
44
|
-
|
|
45
|
-
react::RNSTabsHostIOSEventEmitter::OnTabSelectionRejectedRejectionReason
|
|
46
|
-
RNSOnTabSelectionRejectedRejectionReasonFromRNSTabsNavigationStateRejectionReason(
|
|
47
|
-
RNSTabsNavigationStateRejectionReason reason);
|
|
48
|
-
|
|
49
|
-
react::RNSTabsHostIOSEventEmitter::OnTabSelectedActionOrigin RNSOnTabSelectedActionOriginFromRNSTabsActionOrigin(
|
|
50
|
-
RNSTabsActionOrigin actionOrigin);
|
|
51
|
-
|
|
52
|
-
RNSTabsIconType RNSTabsIconTypeFromIcon(react::RNSTabsScreenIOSIconType iconType);
|
|
53
|
-
|
|
54
|
-
RNSTabsScreenSystemItem RNSTabsScreenSystemItemFromReactRNSTabsScreenSystemItem(
|
|
55
|
-
react::RNSTabsScreenIOSSystemItem systemItem);
|
|
56
|
-
|
|
57
|
-
UITabBarSystemItem RNSTabsScreenSystemItemToUITabBarSystemItem(RNSTabsScreenSystemItem systemItem);
|
|
58
|
-
|
|
59
|
-
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
60
|
-
|
|
61
|
-
API_AVAILABLE(ios(26.0))
|
|
62
|
-
std::optional<react::RNSTabsBottomAccessoryEventEmitter::OnEnvironmentChangeEnvironment>
|
|
63
|
-
RNSTabsBottomAccessoryOnEnvironmentChangePayloadFromUITabAccessoryEnvironment(UITabAccessoryEnvironment environment);
|
|
64
|
-
|
|
65
|
-
RNSTabsBottomAccessoryEnvironment RNSTabsBottomAccessoryEnvironmentFromCppEquivalent(
|
|
66
|
-
react::RNSTabsBottomAccessoryContentEnvironment environment);
|
|
67
|
-
|
|
68
|
-
#endif // RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
69
|
-
|
|
70
|
-
UIUserInterfaceStyle UIUserInterfaceStyleFromTabsScreenCppEquivalent(
|
|
71
|
-
react::RNSTabsScreenIOSUserInterfaceStyle userInterfaceStyle);
|
|
72
|
-
|
|
73
|
-
RCTImageSource *RCTImageSourceFromImageSourceAndIconType(const facebook::react::ImageSource *imageSource,
|
|
74
|
-
RNSTabsIconType iconType);
|
|
75
|
-
|
|
76
|
-
RNSOrientation RNSOrientationFromRNSTabsScreenOrientation(react::RNSTabsScreenIOSOrientation orientation);
|
|
77
|
-
|
|
78
13
|
#if !TARGET_OS_TV
|
|
79
|
-
UIInterfaceOrientationMask UIInterfaceOrientationMaskFromRNSOrientation(
|
|
14
|
+
UIInterfaceOrientationMask UIInterfaceOrientationMaskFromRNSOrientation(
|
|
15
|
+
RNSOrientation orientation);
|
|
80
16
|
|
|
81
|
-
|
|
17
|
+
// Currently unused in stack v5. Maybe remove after stopping support for v4.
|
|
18
|
+
RNSOrientation RNSOrientationFromUIInterfaceOrientationMask(
|
|
19
|
+
UIInterfaceOrientationMask orientationMask);
|
|
82
20
|
#endif // !TARGET_OS_TV
|
|
83
21
|
|
|
84
|
-
UITraitEnvironmentLayoutDirection UITraitEnvironmentLayoutDirectionFromTabsHostCppEquivalent(
|
|
85
|
-
react::RNSTabsHostIOSLayoutDirection layoutDirection);
|
|
86
|
-
|
|
87
|
-
UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(react::RNSTabsHostIOSColorScheme colorScheme);
|
|
88
|
-
|
|
89
|
-
#pragma mark SplitHost props
|
|
90
|
-
|
|
91
|
-
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
|
|
92
|
-
react::RNSSplitHostPreferredSplitBehavior behavior);
|
|
93
|
-
|
|
94
|
-
UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(react::RNSSplitHostPrimaryEdge primaryEdge);
|
|
95
|
-
|
|
96
|
-
UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
|
|
97
|
-
react::RNSSplitHostPreferredDisplayMode displayMode);
|
|
98
|
-
|
|
99
|
-
#if !TARGET_OS_TV
|
|
100
|
-
UISplitViewControllerBackgroundStyle SplitViewPrimaryBackgroundStyleFromHostProp(
|
|
101
|
-
react::RNSSplitHostPrimaryBackgroundStyle primaryBackgroundStyle);
|
|
102
|
-
#endif // !TARGET_OS_TV
|
|
103
|
-
|
|
104
|
-
UISplitViewControllerDisplayModeButtonVisibility SplitViewDisplayModeButtonVisibilityFromHostProp(
|
|
105
|
-
react::RNSSplitHostDisplayModeButtonVisibility displayModeButtonVisibility);
|
|
106
|
-
|
|
107
|
-
std::string UISplitViewControllerDisplayModeToString(UISplitViewControllerDisplayMode displayMode);
|
|
108
|
-
|
|
109
|
-
std::optional<UISplitViewControllerColumn> SplitViewTopColumnForCollapsingFromHostProp(
|
|
110
|
-
react::RNSSplitHostTopColumnForCollapsing topColumnForCollapsing);
|
|
111
|
-
|
|
112
|
-
RNSOrientation RNSOrientationFromRNSSplitHostOrientation(react::RNSSplitHostOrientation orientation);
|
|
113
|
-
|
|
114
|
-
UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(react::RNSSplitHostColorScheme colorScheme);
|
|
115
|
-
|
|
116
|
-
#pragma mark SplitScreen props
|
|
117
|
-
|
|
118
|
-
RNSSplitScreenColumnType RNSSplitScreenColumnTypeFromScreenProp(react::RNSSplitScreenColumnType columnType);
|
|
119
|
-
|
|
120
22
|
}; // namespace rnscreens::conversion
|
|
121
23
|
|
|
122
|
-
#import "RNSConversions-ScrollViewMarker.h"
|
|
123
|
-
#import "RNSConversions-Stack.h"
|
|
124
|
-
|
|
125
24
|
#endif // defined(__cplusplus)
|
|
@@ -188,11 +188,18 @@ static UIMenuOptions RNSMakeUIMenuOptionsFromConfig(NSDictionary *config);
|
|
|
188
188
|
image = img;
|
|
189
189
|
}];
|
|
190
190
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
UIMenu *menu = [UIMenu menuWithTitle:dict[@"title"]
|
|
192
|
+
image:image
|
|
193
|
+
identifier:nil
|
|
194
|
+
options:RNSMakeUIMenuOptionsFromConfig(dict)
|
|
195
|
+
children:elements];
|
|
196
|
+
|
|
197
|
+
NSString *subtitle = dict[@"subtitle"];
|
|
198
|
+
if (subtitle != nil) {
|
|
199
|
+
menu.subtitle = subtitle;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return menu;
|
|
196
203
|
}
|
|
197
204
|
|
|
198
205
|
+ (UIAction *)createActionItemFromConfig:(NSDictionary *)dict
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
10
10
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
11
11
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
12
|
-
#import <rnscreens/RNSFullWindowOverlayComponentDescriptor.h>
|
|
12
|
+
#import <react/renderer/components/rnscreens/legacy/RNSFullWindowOverlayComponentDescriptor.h>
|
|
13
13
|
|
|
14
14
|
@implementation RNSFullWindowOverlayContainer
|
|
15
15
|
|
package/ios/legacy/RNSScreen.h
CHANGED
|
@@ -50,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
50
50
|
- (void)calculateAndNotifyHeaderHeightChangeIsModal:(BOOL)isModal;
|
|
51
51
|
- (void)notifyFinishTransitioning;
|
|
52
52
|
- (RNSScreenView *)screenView;
|
|
53
|
-
- (void)
|
|
53
|
+
- (void)addSnapshotToView;
|
|
54
54
|
- (CGFloat)calculateHeaderHeightIsModal:(BOOL)isModal;
|
|
55
55
|
- (BOOL)isRemovedFromParent;
|
|
56
56
|
- (void)notifyPresentedControllerDismissed;
|
|
@@ -87,9 +87,16 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
87
87
|
@property (nonatomic) RNSScrollEdgeEffect rightScrollEdgeEffect;
|
|
88
88
|
@property (nonatomic) RNSScrollEdgeEffect topScrollEdgeEffect;
|
|
89
89
|
@property (nonatomic, readwrite) BOOL synchronousShadowStateUpdatesEnabled;
|
|
90
|
+
@property (nonatomic, readwrite) BOOL iosOrientationInheritanceFixEnabled;
|
|
90
91
|
|
|
91
92
|
@property (nonatomic, retain) NSNumber *transitionDuration;
|
|
92
93
|
@property (nonatomic, readonly) BOOL dismissed;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Whether React has already deleted this component. The view may still be part of the view
|
|
97
|
+
* hierarchy at that point, backing the remainder of an ongoing native transition.
|
|
98
|
+
*/
|
|
99
|
+
@property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;
|
|
93
100
|
@property (nonatomic) BOOL hideKeyboardOnSwipe;
|
|
94
101
|
@property (nonatomic) BOOL customAnimationOnSwipe;
|
|
95
102
|
@property (nonatomic) BOOL preventNativeDismiss;
|