react-native-screens 5.0.0-alpha.2 → 5.0.0-alpha.4
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 -11
- package/android/build.gradle +1 -0
- package/android/consumer-rules.pro +3 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderConfigViewGroup.kt +2 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderSubviewViewGroup.kt +2 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledViewGroup.kt +18 -3
- 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/ScreensModule.kt +7 -3
- package/android/src/main/java/com/swmansion/rnscreens/common/colorscheme/ColorSchemeCoordinator.kt +11 -1
- package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +17 -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/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetAppearanceCoordinator.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetBehaviorController.kt +51 -20
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/coordinator/FormSheetDimensionsCoordinator.kt +159 -0
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetNativeDismissCoordinator.kt +2 -8
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/dialog/FormSheetAvailableHeightProvider.kt +44 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetContainer.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetDialog.kt +36 -4
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/dialog/FormSheetDialogManager.kt +107 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeDelegate.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeProvider.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetDialogEventEmitter.kt +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/model/FormSheetConfig.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/model/FormSheetDetents.kt +152 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetAnimatorFactory.kt +9 -10
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetDimmingManager.kt +103 -0
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetDismissalOrigin.kt +22 -0
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetPresentation.kt +173 -0
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetPresentationManager.kt +290 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationState.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/core/modals/formsheet/presentation/FormSheetStackRegistry.kt +28 -0
- package/android/src/main/java/com/swmansion/rnscreens/ext/FragmentManagerExt.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/FragmentManagerHelper.kt +0 -3
- package/android/src/main/java/com/swmansion/rnscreens/helpers/NoTintDrawable.kt +31 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
- package/android/src/main/java/com/swmansion/rnscreens/helpers/ViewFinder.kt +0 -17
- package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +32 -3
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenContainer.kt +35 -3
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +15 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderConfig.kt +7 -1
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderSubviewManager.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackViewManager.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/DimmingView.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/stack/views/ScreensCoordinatorLayout.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapper.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapperViewManager.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDetentChangedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidAppearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidDisappearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/react/modals/formsheet/event/FormSheetDismissEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissPreventedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetSyncFlushEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillAppearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillDisappearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetContentView.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHost.kt +5 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostEventEmitter.kt +17 -10
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostViewManager.kt +11 -9
- package/android/src/main/java/com/swmansion/rnscreens/safearea/OnInterfaceInsetsChangeListener.kt +15 -0
- package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaProvider.kt +8 -8
- package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaView.kt +3 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +360 -101
- 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 +211 -113
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +156 -24
- 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/appbar/StackHeaderToolbar.kt +74 -0
- 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 +162 -228
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +385 -12
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +5 -6
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +29 -6
- 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 +8 -7
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +27 -280
- 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 +28 -20
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +3 -55
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +1 -10
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuItemConfig.kt +1 -3
- 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/update/StackHeaderToolbarMenuElementOptions.kt +57 -6
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +1 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +4 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueue.kt +23 -9
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperation.kt +1 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperationExecutor.kt +2 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +159 -21
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerDelegate.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerUpdateCoordinator.kt +5 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +27 -5
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackUpdateBatchStateProviding.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/PreventNativeDismissCallback.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +4 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +50 -10
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceApplicator.kt +106 -10
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +46 -7
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceModel.kt +3 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/CustomBottomNavigationView.kt +21 -1
- 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 +72 -36
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainerDelegate.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +22 -2
- 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 +58 -17
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenDelegate.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIcon.kt +82 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIconTinting.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenViewManager.kt +26 -19
- package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +20 -6
- package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +22 -6
- 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/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
- package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
- package/ios/RNSEnums.h +16 -1
- package/ios/conversion/RNSConversions.h +7 -108
- package/ios/helpers/image/RNSImageLoadingHelper.h +7 -0
- package/ios/helpers/image/RNSImageLoadingHelper.mm +9 -0
- package/ios/legacy/RNSBarButtonItem.mm +15 -0
- package/ios/legacy/RNSConvert.h +6 -0
- package/ios/legacy/RNSConvert.mm +17 -0
- package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
- package/ios/legacy/RNSModalScreen.mm +1 -1
- package/ios/legacy/RNSNavigationBar.h +31 -0
- package/ios/legacy/RNSNavigationBar.mm +15 -0
- package/ios/legacy/RNSScreen.mm +130 -31
- package/ios/legacy/RNSScreenContentWrapper.mm +4 -1
- package/ios/legacy/RNSScreenStack.mm +202 -15
- package/ios/legacy/RNSScreenStackHeaderConfig.h +30 -0
- package/ios/legacy/RNSScreenStackHeaderConfig.mm +72 -17
- package/ios/legacy/RNSScreenStackHeaderSubview.mm +34 -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/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 +3 -14
- package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
- package/ios/split/RNSSplitAppearanceApplicator.h +4 -4
- package/ios/split/RNSSplitAppearanceApplicator.mm +53 -56
- 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 +55 -6
- package/ios/split/RNSSplitHostController.h +25 -6
- package/ios/split/RNSSplitHostController.mm +24 -92
- package/ios/split/RNSSplitHostProviders.h +67 -0
- package/ios/split/RNSSplitScreenComponentView.h +0 -39
- package/ios/split/RNSSplitScreenComponentView.mm +27 -10
- package/ios/split/RNSSplitScreenController.h +26 -3
- package/ios/split/RNSSplitScreenController.mm +13 -30
- 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 +62 -0
- package/ios/stack/conversion/RNSConversions-Stack.mm +134 -0
- package/ios/stack/header/RNSHeaderItemVisibilityPriority.h +9 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.h +14 -1
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +103 -37
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +11 -0
- package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderContentFactory.mm +3 -0
- package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
- package/ios/stack/header/RNSStackHeaderItemComponentView.h +12 -3
- package/ios/stack/header/RNSStackHeaderItemComponentView.mm +72 -5
- package/ios/stack/header/RNSStackHeaderItemDataProviding.h +7 -0
- package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +13 -0
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +24 -0
- package/ios/stack/header/RNSStackHeaderMenuFinder.h +8 -1
- package/ios/stack/header/RNSStackHeaderMenuFinder.mm +26 -9
- package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
- 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 +13 -5
- package/ios/stack/host/RNSStackOperation.h +0 -2
- package/ios/stack/screen/RNSStackScreenComponentView.h +2 -1
- package/ios/stack/screen/RNSStackScreenComponentView.mm +32 -2
- package/ios/stack/screen/RNSStackScreenController.mm +12 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +8 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +179 -24
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +110 -16
- package/ios/tabs/RNSTabBarItemCoordinator.h +16 -0
- package/ios/tabs/RNSTabBarItemCoordinator.mm +143 -0
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.h +24 -0
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.mm +22 -0
- package/ios/tabs/conversion/RNSConversions-Tabs.h +100 -0
- package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +105 -74
- package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
- package/ios/tabs/host/RNSTabBarController.h +16 -0
- package/ios/tabs/host/RNSTabBarController.mm +516 -107
- package/ios/tabs/host/RNSTabsHostComponentView.h +4 -0
- package/ios/tabs/host/RNSTabsHostComponentView.mm +41 -4
- package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
- package/ios/tabs/screen/RNSTabsScreenComponentView.h +21 -0
- package/ios/tabs/screen/RNSTabsScreenComponentView.mm +56 -56
- package/ios/tabs/screen/RNSTabsScreenViewController.mm +1 -0
- package/ios/utils/RNSDefines.h +15 -7
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +37 -21
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +41 -4
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.js +17 -0
- package/lib/commonjs/components/stack/header/StackHeaderConfig.js.map +1 -0
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.js +17 -7
- package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.web.js +0 -2
- package/lib/commonjs/components/stack/host/StackHost.web.js.map +1 -1
- package/lib/commonjs/components/stack/index.js.map +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js +3 -0
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/commonjs/components/tabs/host/{TabsHost.web.js → TabsHost.js} +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.js.map +1 -0
- package/lib/commonjs/components/tabs/index.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.android.js +3 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.android.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js +10 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/{TabsScreen.web.js → TabsScreen.js} +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.js.map +1 -0
- package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js → tabs/screen/TabsScreenIcon.types.js} +1 -1
- package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.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/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/StackHostNativeComponent.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 +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackItem.js +31 -11
- package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.android.js +39 -23
- package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js +43 -6
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.js +10 -0
- package/lib/module/components/stack/header/StackHeaderConfig.js.map +1 -0
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.js +18 -8
- package/lib/module/components/stack/host/StackHost.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.web.js +0 -3
- package/lib/module/components/stack/host/StackHost.web.js.map +1 -1
- package/lib/module/components/stack/index.js.map +1 -1
- package/lib/module/components/tabs/host/TabsHost.ios.js +3 -0
- package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/{src/components/tabs/host/TabsHost.web.tsx → lib/module/components/tabs/host/TabsHost.js} +1 -2
- package/lib/module/components/tabs/host/TabsHost.js.map +1 -0
- package/lib/module/components/tabs/index.js.map +1 -1
- package/lib/module/components/tabs/screen/TabsScreen.android.js +3 -1
- package/lib/module/components/tabs/screen/TabsScreen.android.js.map +1 -1
- package/lib/module/components/tabs/screen/TabsScreen.ios.js +10 -1
- package/lib/module/components/tabs/screen/TabsScreen.ios.js.map +1 -1
- package/{src/components/tabs/screen/TabsScreen.web.tsx → lib/module/components/tabs/screen/TabsScreen.js} +1 -2
- package/lib/module/components/tabs/screen/TabsScreen.js.map +1 -0
- package/lib/module/components/tabs/screen/TabsScreenIcon.types.js +2 -0
- package/lib/module/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.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/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/StackHostNativeComponent.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 +1 -1
- package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackItem.js +31 -11
- package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts +6 -3
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +620 -24
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts +8 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts.map +1 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts +6 -3
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +361 -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 +4 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.types.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 +7 -0
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.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 +47 -0
- package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.web.d.ts +1 -3
- package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/index.d.ts +4 -3
- package/lib/typescript/components/stack/index.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.d.ts +5 -0
- package/lib/typescript/components/tabs/host/TabsHost.d.ts.map +1 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +72 -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/index.d.ts +4 -6
- package/lib/typescript/components/tabs/index.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts +42 -7
- package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.d.ts +5 -0
- package/lib/typescript/components/tabs/screen/TabsScreen.d.ts.map +1 -0
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts +78 -13
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts +91 -0
- package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts.map +1 -0
- package/lib/typescript/components/tabs/screen/index.d.ts +1 -0
- package/lib/typescript/components/tabs/screen/index.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -0
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +52 -0
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +29 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +8 -0
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +3 -1
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +4 -0
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +10 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts +25 -0
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +4 -0
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
- package/lib/typescript/legacy/types.d.ts +30 -0
- package/lib/typescript/legacy/types.d.ts.map +1 -1
- package/package.json +11 -8
- package/react-native.config.js +3 -0
- package/src/components/modals/form-sheet/FormSheet.types.ts +1 -1
- package/src/components/stack/header/StackHeaderConfig.android.tsx +54 -43
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +641 -24
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +55 -17
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +384 -2
- package/src/components/stack/header/StackHeaderConfig.tsx +12 -0
- package/src/components/stack/header/StackHeaderConfig.types.ts +4 -2
- package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +9 -1
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +7 -0
- package/src/components/stack/host/StackHost.tsx +12 -3
- package/src/components/stack/host/StackHost.types.ts +50 -0
- package/src/components/stack/host/StackHost.web.tsx +1 -4
- package/src/components/stack/index.ts +14 -1
- package/src/components/tabs/host/TabsHost.ios.tsx +3 -0
- package/src/components/tabs/host/TabsHost.ios.types.ts +76 -0
- package/src/components/tabs/host/TabsHost.tsx +7 -0
- package/src/components/tabs/host/TabsHost.types.ts +3 -0
- package/src/components/tabs/index.ts +9 -0
- package/src/components/tabs/screen/TabsScreen.android.tsx +8 -3
- package/src/components/tabs/screen/TabsScreen.android.types.ts +42 -7
- package/src/components/tabs/screen/TabsScreen.ios.tsx +22 -5
- package/src/components/tabs/screen/TabsScreen.ios.types.ts +79 -17
- package/src/components/tabs/screen/TabsScreen.tsx +7 -0
- package/src/components/tabs/screen/TabsScreenIcon.types.ts +117 -0
- package/src/components/tabs/screen/index.ts +1 -0
- package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -0
- package/src/fabric/legacy/ScreenStackNativeComponent.ts +2 -0
- package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +78 -0
- package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +43 -0
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +13 -0
- package/src/fabric/stack/StackHostNativeComponent.ts +11 -2
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +8 -0
- package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +9 -0
- package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +20 -2
- package/src/legacy/components/ScreenStackItem.tsx +59 -12
- package/src/legacy/types.ts +31 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenModalFragment.kt +0 -281
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogRootView.kt +0 -104
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogScreen.kt +0 -26
- 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/native/coordinator/FormSheetDimensionsCoordinator.kt +0 -134
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +0 -162
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +0 -106
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +0 -198
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuSelectionController.kt +0 -83
- 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/lib/commonjs/components/stack/header/StackHeaderConfig.web.js +0 -10
- package/lib/commonjs/components/stack/header/StackHeaderConfig.web.js.map +0 -1
- package/lib/commonjs/components/tabs/host/TabsHost.d.js +0 -2
- package/lib/commonjs/components/tabs/host/TabsHost.d.js.map +0 -1
- package/lib/commonjs/components/tabs/host/TabsHost.web.js.map +0 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.d.js +0 -2
- package/lib/commonjs/components/tabs/screen/TabsScreen.d.js.map +0 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.web.js.map +0 -1
- package/lib/module/components/stack/header/StackHeaderConfig.d.js +0 -2
- package/lib/module/components/stack/header/StackHeaderConfig.web.js +0 -4
- package/lib/module/components/stack/header/StackHeaderConfig.web.js.map +0 -1
- package/lib/module/components/tabs/host/TabsHost.d.js +0 -2
- package/lib/module/components/tabs/host/TabsHost.d.js.map +0 -1
- package/lib/module/components/tabs/host/TabsHost.web.js +0 -4
- package/lib/module/components/tabs/host/TabsHost.web.js.map +0 -1
- package/lib/module/components/tabs/screen/TabsScreen.d.js +0 -2
- package/lib/module/components/tabs/screen/TabsScreen.d.js.map +0 -1
- package/lib/module/components/tabs/screen/TabsScreen.web.js +0 -4
- package/lib/module/components/tabs/screen/TabsScreen.web.js.map +0 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +0 -7
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +0 -1
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +0 -7
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +0 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +0 -7
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +0 -1
- package/src/components/stack/header/StackHeaderConfig.d.ts +0 -22
- package/src/components/stack/header/StackHeaderConfig.web.tsx +0 -5
- package/src/components/tabs/host/TabsHost.d.ts +0 -12
- package/src/components/tabs/screen/TabsScreen.d.ts +0 -12
- /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#import <Foundation/Foundation.h>
|
|
4
|
+
#import <UIKit/UIKit.h>
|
|
4
5
|
|
|
5
6
|
#if defined(__cplusplus)
|
|
6
7
|
#import <react/renderer/core/State.h>
|
|
@@ -10,8 +11,6 @@ namespace react = facebook::react;
|
|
|
10
11
|
|
|
11
12
|
NS_ASSUME_NONNULL_BEGIN
|
|
12
13
|
|
|
13
|
-
@class RNSSplitScreenComponentView;
|
|
14
|
-
|
|
15
14
|
/**
|
|
16
15
|
* @class RNSSplitScreenShadowStateProxy
|
|
17
16
|
* @brief Manages communication between native UIView layout and associated React Native ShadowNode state.
|
|
@@ -21,44 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
21
20
|
*/
|
|
22
21
|
@interface RNSSplitScreenShadowStateProxy : NSObject
|
|
23
22
|
|
|
24
|
-
/**
|
|
25
|
-
* @brief Triggers a shadow state update for the given SplitScreen component.
|
|
26
|
-
*
|
|
27
|
-
* Internally uses the component’s frame in UIWindow coordinates to update the Shadow Tree state.
|
|
28
|
-
*
|
|
29
|
-
* @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
|
|
30
|
-
*/
|
|
31
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @brief Triggers a shadow state update for the given SplitScreen component in the context of a given ancestor
|
|
35
|
-
* view.
|
|
36
|
-
*
|
|
37
|
-
* Converts the split view screen's local frame to coordinates of the specified ancestor view
|
|
38
|
-
* before applying the update to the Shadow Tree. If the ancestor haven't been defined frame is calculated relatively to
|
|
39
|
-
* the UIWindow.
|
|
40
|
-
*
|
|
41
|
-
* @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
|
|
42
|
-
* @param ancestorView An optional UIView in whose coordinate space the frame should be computed.
|
|
43
|
-
*/
|
|
44
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
45
|
-
inContextOfAncestorView:(UIView *_Nullable)ancestorView;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @brief Send an update to ShadowNode state with given frame if needed.
|
|
49
|
-
*
|
|
50
|
-
* Converts the frame to coordinates of the specified ancestor view,
|
|
51
|
-
* before applying the update to the Shadow Tree.
|
|
52
|
-
*
|
|
53
|
-
* @param screenComponentView an instance of RNSSplitScreenComponentView whose state should be updated,
|
|
54
|
-
* @param frame frame to update the shadow state with; it must be in coordinate system of `screenComponentView`,
|
|
55
|
-
* @param ancestorView coordinate-system provider view, relative to which the frame should be converted before sending
|
|
56
|
-
* the update.
|
|
57
|
-
*/
|
|
58
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
59
|
-
withFrame:(CGRect)frame
|
|
60
|
-
inContextOfAncestorView:(nonnull UIView *)ancestorView;
|
|
61
|
-
|
|
62
23
|
/**
|
|
63
24
|
* @brief Send an update to ShadowNode state with given layout metrics.
|
|
64
25
|
*
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#import "RNSSplitScreenShadowStateProxy.h"
|
|
2
|
-
#import "RNSSplitScreenComponentView.h"
|
|
3
2
|
|
|
4
3
|
#import <React/RCTAssert.h>
|
|
5
4
|
#import <React/RCTConversions.h>
|
|
6
|
-
#import <rnscreens/RNSSplitScreenShadowNode.h>
|
|
5
|
+
#import <react/renderer/components/rnscreens/RNSSplitScreenShadowNode.h>
|
|
7
6
|
|
|
8
7
|
namespace react = facebook::react;
|
|
9
8
|
|
|
@@ -21,21 +20,6 @@ namespace react = facebook::react;
|
|
|
21
20
|
return self;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
25
|
-
{
|
|
26
|
-
[self updateShadowStateOfComponent:screenComponentView inContextOfAncestorView:nil];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
30
|
-
inContextOfAncestorView:(UIView *_Nullable)ancestorView
|
|
31
|
-
{
|
|
32
|
-
CGRect frame = screenComponentView.frame;
|
|
33
|
-
if (ancestorView != nil) {
|
|
34
|
-
frame = [screenComponentView convertRect:frame toView:ancestorView];
|
|
35
|
-
}
|
|
36
|
-
[self updateShadowStateWithFrame:frame];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
23
|
- (void)updateShadowStateWithFrame:(CGRect)frame
|
|
40
24
|
{
|
|
41
25
|
if (_state == nullptr) {
|
|
@@ -50,15 +34,6 @@ namespace react = facebook::react;
|
|
|
50
34
|
}
|
|
51
35
|
}
|
|
52
36
|
|
|
53
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
54
|
-
withFrame:(CGRect)frame
|
|
55
|
-
inContextOfAncestorView:(nonnull UIView *)ancestorView
|
|
56
|
-
{
|
|
57
|
-
RCTAssert(ancestorView != nil, @"[RNScreens] ancestorView must not be nil");
|
|
58
|
-
CGRect convertedFrame = [screenComponentView convertRect:frame toView:ancestorView];
|
|
59
|
-
[self updateShadowStateWithFrame:convertedFrame];
|
|
60
|
-
}
|
|
61
|
-
|
|
62
37
|
- (void)updateState:(react::State::Shared const &)state oldState:(react::State::Shared const &)oldState
|
|
63
38
|
{
|
|
64
39
|
_state = std::static_pointer_cast<const react::RNSSplitScreenShadowNode::ConcreteState>(state);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(__cplusplus)
|
|
4
|
+
|
|
5
|
+
#import <UIKit/UIKit.h>
|
|
6
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
7
|
+
#import <optional>
|
|
8
|
+
#import <string>
|
|
9
|
+
#import "RNSEnums.h"
|
|
10
|
+
|
|
11
|
+
namespace rnscreens::conversion {
|
|
12
|
+
|
|
13
|
+
namespace react = facebook::react;
|
|
14
|
+
|
|
15
|
+
#pragma mark SplitHost props
|
|
16
|
+
|
|
17
|
+
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
|
|
18
|
+
react::RNSSplitHostPreferredSplitBehavior behavior);
|
|
19
|
+
|
|
20
|
+
UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(
|
|
21
|
+
react::RNSSplitHostPrimaryEdge primaryEdge);
|
|
22
|
+
|
|
23
|
+
UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
|
|
24
|
+
react::RNSSplitHostPreferredDisplayMode displayMode);
|
|
25
|
+
|
|
26
|
+
#if !TARGET_OS_TV
|
|
27
|
+
UISplitViewControllerBackgroundStyle
|
|
28
|
+
SplitViewPrimaryBackgroundStyleFromHostProp(
|
|
29
|
+
react::RNSSplitHostPrimaryBackgroundStyle primaryBackgroundStyle);
|
|
30
|
+
#endif // !TARGET_OS_TV
|
|
31
|
+
|
|
32
|
+
UISplitViewControllerDisplayModeButtonVisibility
|
|
33
|
+
SplitViewDisplayModeButtonVisibilityFromHostProp(
|
|
34
|
+
react::RNSSplitHostDisplayModeButtonVisibility displayModeButtonVisibility);
|
|
35
|
+
|
|
36
|
+
std::string UISplitViewControllerDisplayModeToString(
|
|
37
|
+
UISplitViewControllerDisplayMode displayMode);
|
|
38
|
+
|
|
39
|
+
std::optional<UISplitViewControllerColumn>
|
|
40
|
+
SplitViewTopColumnForCollapsingFromHostProp(
|
|
41
|
+
react::RNSSplitHostTopColumnForCollapsing topColumnForCollapsing);
|
|
42
|
+
|
|
43
|
+
RNSOrientation RNSOrientationFromRNSSplitHostOrientation(
|
|
44
|
+
react::RNSSplitHostOrientation orientation);
|
|
45
|
+
|
|
46
|
+
UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(
|
|
47
|
+
react::RNSSplitHostColorScheme colorScheme);
|
|
48
|
+
|
|
49
|
+
#pragma mark SplitScreen props
|
|
50
|
+
|
|
51
|
+
RNSSplitScreenColumnType RNSSplitScreenColumnTypeFromScreenProp(
|
|
52
|
+
react::RNSSplitScreenColumnType columnType);
|
|
53
|
+
|
|
54
|
+
}; // namespace rnscreens::conversion
|
|
55
|
+
|
|
56
|
+
#endif // defined(__cplusplus)
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
#import "RNSConversions.h"
|
|
1
|
+
#import "RNSConversions-SplitView.h"
|
|
2
|
+
#import <React/RCTLog.h>
|
|
2
3
|
|
|
3
4
|
namespace rnscreens::conversion {
|
|
4
5
|
|
|
6
|
+
namespace react = facebook::react;
|
|
7
|
+
|
|
5
8
|
#pragma mark SplitHost props
|
|
6
9
|
|
|
7
10
|
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(__cplusplus)
|
|
4
|
+
|
|
5
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
6
|
+
#import "RNSDefines.h"
|
|
7
|
+
#import "RNSHeaderItemPlacement.h"
|
|
8
|
+
#import "RNSHeaderItemSpacerPlacement.h"
|
|
9
|
+
#import "RNSHeaderItemVisibilityPriority.h"
|
|
10
|
+
#import "RNSStackScreenComponentView.h"
|
|
11
|
+
|
|
12
|
+
namespace rnscreens::conversion {
|
|
13
|
+
|
|
14
|
+
namespace react = facebook::react;
|
|
15
|
+
|
|
16
|
+
RNSStackScreenActivityMode
|
|
17
|
+
RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
|
|
18
|
+
react::RNSStackScreenActivityMode mode);
|
|
19
|
+
|
|
20
|
+
RNSHeaderItemPlacement
|
|
21
|
+
RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
|
|
22
|
+
react::RNSStackHeaderItemIOSPlacement placement);
|
|
23
|
+
|
|
24
|
+
RNSHeaderItemSpacerPlacement
|
|
25
|
+
RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
|
|
26
|
+
react::RNSStackHeaderItemSpacerIOSPlacement placement);
|
|
27
|
+
|
|
28
|
+
UIBarButtonItemStyle UIBarButtonItemStyleFromReactRNSStackHeaderItemIOSVariant(
|
|
29
|
+
react::RNSStackHeaderItemIOSVariant variant);
|
|
30
|
+
|
|
31
|
+
UINavigationItemBackButtonDisplayMode
|
|
32
|
+
UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
|
|
33
|
+
react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode);
|
|
34
|
+
|
|
35
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
|
|
36
|
+
|
|
37
|
+
API_AVAILABLE(ios(27.0))
|
|
38
|
+
UIBarMinimizationBehavior
|
|
39
|
+
UIBarMinimizationBehaviorFromReactRNSStackHeaderConfigIOSMinimizationBehavior(
|
|
40
|
+
react::RNSStackHeaderConfigIOSMinimizationBehavior minimizationBehavior);
|
|
41
|
+
|
|
42
|
+
API_AVAILABLE(ios(27.0))
|
|
43
|
+
UIBarMinimizationRestorationBehavior
|
|
44
|
+
UIBarMinimizationRestorationBehaviorFromReactRNSStackHeaderConfigIOSRestorationBehavior(
|
|
45
|
+
react::RNSStackHeaderConfigIOSRestorationBehavior restorationBehavior);
|
|
46
|
+
|
|
47
|
+
#endif // Check for iOS >= 27
|
|
48
|
+
|
|
49
|
+
RNSHeaderItemVisibilityPriority
|
|
50
|
+
RNSHeaderItemVisibilityPriorityFromReactRNSStackHeaderItemIOSVisibilityPriority(
|
|
51
|
+
react::RNSStackHeaderItemIOSVisibilityPriority visibilityPriority);
|
|
52
|
+
|
|
53
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
|
|
54
|
+
API_AVAILABLE(ios(27.0))
|
|
55
|
+
UIBarButtonItemVisibilityPriority
|
|
56
|
+
UIBarButtonItemVisibilityPriorityFromRNSHeaderItemVisibilityPriority(
|
|
57
|
+
RNSHeaderItemVisibilityPriority visibilityPriority);
|
|
58
|
+
#endif // Check for iOS >= 27 && !TARGET_OS_TV && !TARGET_OS_VISION
|
|
59
|
+
|
|
60
|
+
}; // namespace rnscreens::conversion
|
|
61
|
+
|
|
62
|
+
#endif // defined(__cplusplus)
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#import "RNSConversions-Stack.h"
|
|
2
|
+
#import "RNSDefines.h"
|
|
3
|
+
|
|
4
|
+
namespace rnscreens::conversion {
|
|
5
|
+
|
|
6
|
+
namespace react = facebook::react;
|
|
7
|
+
|
|
8
|
+
RNSStackScreenActivityMode RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
|
|
9
|
+
react::RNSStackScreenActivityMode mode)
|
|
10
|
+
{
|
|
11
|
+
return static_cast<RNSStackScreenActivityMode>(mode);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
RNSHeaderItemPlacement RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
|
|
15
|
+
react::RNSStackHeaderItemIOSPlacement placement)
|
|
16
|
+
{
|
|
17
|
+
switch (placement) {
|
|
18
|
+
case react::RNSStackHeaderItemIOSPlacement::Leading:
|
|
19
|
+
return RNSHeaderItemPlacementLeading;
|
|
20
|
+
case react::RNSStackHeaderItemIOSPlacement::Trailing:
|
|
21
|
+
return RNSHeaderItemPlacementTrailing;
|
|
22
|
+
case react::RNSStackHeaderItemIOSPlacement::Title:
|
|
23
|
+
return RNSHeaderItemPlacementTitle;
|
|
24
|
+
case react::RNSStackHeaderItemIOSPlacement::Subtitle:
|
|
25
|
+
return RNSHeaderItemPlacementSubtitle;
|
|
26
|
+
case react::RNSStackHeaderItemIOSPlacement::LargeSubtitle:
|
|
27
|
+
return RNSHeaderItemPlacementLargeSubtitle;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
UIBarButtonItemStyle UIBarButtonItemStyleFromReactRNSStackHeaderItemIOSVariant(
|
|
32
|
+
react::RNSStackHeaderItemIOSVariant variant)
|
|
33
|
+
{
|
|
34
|
+
switch (variant) {
|
|
35
|
+
case react::RNSStackHeaderItemIOSVariant::Plain:
|
|
36
|
+
return UIBarButtonItemStylePlain;
|
|
37
|
+
case react::RNSStackHeaderItemIOSVariant::Prominent:
|
|
38
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
39
|
+
if (@available(iOS 26.0, *)) {
|
|
40
|
+
return UIBarButtonItemStyleProminent;
|
|
41
|
+
}
|
|
42
|
+
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
43
|
+
// Bold text look, closest counterpart of prominent style before iOS 26
|
|
44
|
+
return UIBarButtonItemStyleDone;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
RNSHeaderItemSpacerPlacement RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
|
|
49
|
+
react::RNSStackHeaderItemSpacerIOSPlacement placement)
|
|
50
|
+
{
|
|
51
|
+
switch (placement) {
|
|
52
|
+
case react::RNSStackHeaderItemSpacerIOSPlacement::Leading:
|
|
53
|
+
return RNSHeaderItemSpacerPlacementLeading;
|
|
54
|
+
case react::RNSStackHeaderItemSpacerIOSPlacement::Trailing:
|
|
55
|
+
return RNSHeaderItemSpacerPlacementTrailing;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
UINavigationItemBackButtonDisplayMode
|
|
60
|
+
UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
|
|
61
|
+
react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode)
|
|
62
|
+
{
|
|
63
|
+
switch (displayMode) {
|
|
64
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Default:
|
|
65
|
+
return UINavigationItemBackButtonDisplayModeDefault;
|
|
66
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Generic:
|
|
67
|
+
return UINavigationItemBackButtonDisplayModeGeneric;
|
|
68
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Minimal:
|
|
69
|
+
return UINavigationItemBackButtonDisplayModeMinimal;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
|
|
75
|
+
|
|
76
|
+
UIBarMinimizationBehavior UIBarMinimizationBehaviorFromReactRNSStackHeaderConfigIOSMinimizationBehavior(
|
|
77
|
+
react::RNSStackHeaderConfigIOSMinimizationBehavior minimizationBehavior)
|
|
78
|
+
{
|
|
79
|
+
switch (minimizationBehavior) {
|
|
80
|
+
case react::RNSStackHeaderConfigIOSMinimizationBehavior::Automatic:
|
|
81
|
+
return UIBarMinimizationBehaviorAutomatic;
|
|
82
|
+
case react::RNSStackHeaderConfigIOSMinimizationBehavior::Never:
|
|
83
|
+
return UIBarMinimizationBehaviorNever;
|
|
84
|
+
case react::RNSStackHeaderConfigIOSMinimizationBehavior::OnScrollDown:
|
|
85
|
+
return UIBarMinimizationBehaviorOnScrollDown;
|
|
86
|
+
case react::RNSStackHeaderConfigIOSMinimizationBehavior::OnScrollUp:
|
|
87
|
+
return UIBarMinimizationBehaviorOnScrollUp;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
UIBarMinimizationRestorationBehavior
|
|
92
|
+
UIBarMinimizationRestorationBehaviorFromReactRNSStackHeaderConfigIOSRestorationBehavior(
|
|
93
|
+
react::RNSStackHeaderConfigIOSRestorationBehavior restorationBehavior)
|
|
94
|
+
{
|
|
95
|
+
switch (restorationBehavior) {
|
|
96
|
+
case react::RNSStackHeaderConfigIOSRestorationBehavior::Automatic:
|
|
97
|
+
return UIBarMinimizationRestorationBehaviorAutomatic;
|
|
98
|
+
case react::RNSStackHeaderConfigIOSRestorationBehavior::AtScrollEdge:
|
|
99
|
+
return UIBarMinimizationRestorationBehaviorAtScrollEdge;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
#endif // Check for iOS >= 27
|
|
104
|
+
|
|
105
|
+
RNSHeaderItemVisibilityPriority RNSHeaderItemVisibilityPriorityFromReactRNSStackHeaderItemIOSVisibilityPriority(
|
|
106
|
+
react::RNSStackHeaderItemIOSVisibilityPriority visibilityPriority)
|
|
107
|
+
{
|
|
108
|
+
switch (visibilityPriority) {
|
|
109
|
+
case react::RNSStackHeaderItemIOSVisibilityPriority::Low:
|
|
110
|
+
return RNSHeaderItemVisibilityPriorityLow;
|
|
111
|
+
case react::RNSStackHeaderItemIOSVisibilityPriority::Standard:
|
|
112
|
+
return RNSHeaderItemVisibilityPriorityStandard;
|
|
113
|
+
case react::RNSStackHeaderItemIOSVisibilityPriority::High:
|
|
114
|
+
return RNSHeaderItemVisibilityPriorityHigh;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
|
|
119
|
+
API_AVAILABLE(ios(27.0))
|
|
120
|
+
UIBarButtonItemVisibilityPriority UIBarButtonItemVisibilityPriorityFromRNSHeaderItemVisibilityPriority(
|
|
121
|
+
RNSHeaderItemVisibilityPriority visibilityPriority)
|
|
122
|
+
{
|
|
123
|
+
switch (visibilityPriority) {
|
|
124
|
+
case RNSHeaderItemVisibilityPriorityLow:
|
|
125
|
+
return UIBarButtonItemVisibilityPriorityLow;
|
|
126
|
+
case RNSHeaderItemVisibilityPriorityStandard:
|
|
127
|
+
return UIBarButtonItemVisibilityPriorityStandard;
|
|
128
|
+
case RNSHeaderItemVisibilityPriorityHigh:
|
|
129
|
+
return UIBarButtonItemVisibilityPriorityHigh;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(27_0) && !TARGET_OS_TV && !TARGET_OS_VISION
|
|
133
|
+
|
|
134
|
+
}; // namespace rnscreens::conversion
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@interface RNSStackHeaderAppearanceMapper : NSObject
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Maps appearance props to a UINavigationBarAppearance object.
|
|
11
|
+
* `appearanceDict` should be an NSDictionary with a flat structure, where entries correspond
|
|
12
|
+
* to UIKit attributes, e.g. `titleFontFamily`, `subtitleFontColor`, or empty, for UIKit defaults.
|
|
13
|
+
*/
|
|
14
|
+
+ (nullable UINavigationBarAppearance *)appearanceFromDictionary:(nullable NSDictionary *)appearanceDict;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Maps scroll edge appearance props to a UINavigationBarAppearance object.
|
|
18
|
+
* `appearanceDict` should be an NSDictionary with a flat structure, where entries correspond
|
|
19
|
+
* to UIKit attributes, e.g. `titleFontFamily`, `subtitleFontColor`, or empty, for UIKit defaults.
|
|
20
|
+
* The appearance object is built with transparent background configured by default, matching UIKit.
|
|
21
|
+
*/
|
|
22
|
+
+ (nullable UINavigationBarAppearance *)scrollEdgeAppearanceFromDictionary:(nullable NSDictionary *)appearanceDict;
|
|
23
|
+
|
|
24
|
+
@end
|
|
25
|
+
|
|
26
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#import "RNSStackHeaderAppearanceMapper.h"
|
|
2
|
+
#import "RNSDefines.h"
|
|
3
|
+
|
|
4
|
+
#import <React/RCTConvert.h>
|
|
5
|
+
#import <React/RCTFont.h>
|
|
6
|
+
|
|
7
|
+
@implementation RNSStackHeaderAppearanceMapper
|
|
8
|
+
|
|
9
|
+
+ (nullable UINavigationBarAppearance *)appearanceFromDictionary:(nullable NSDictionary *)appearanceDict
|
|
10
|
+
{
|
|
11
|
+
if (appearanceDict.count == 0) {
|
|
12
|
+
return nil;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
|
|
16
|
+
[self applyTextAttributesFromDictionary:appearanceDict toAppearance:appearance];
|
|
17
|
+
return appearance;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
+ (nullable UINavigationBarAppearance *)scrollEdgeAppearanceFromDictionary:(nullable NSDictionary *)appearanceDict
|
|
21
|
+
{
|
|
22
|
+
if (appearanceDict.count == 0) {
|
|
23
|
+
return nil;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
|
|
27
|
+
|
|
28
|
+
// A nil navigationItem.scrollEdgeAppearance natively resolves to the item's (or bar's)
|
|
29
|
+
// standard appearance with a transparent background. Start the explicit scroll edge
|
|
30
|
+
// appearance from the same transparent base so that a text-only appearance prop does
|
|
31
|
+
// not suddenly bring back the default bar background at the scroll edge.
|
|
32
|
+
[appearance configureWithTransparentBackground];
|
|
33
|
+
|
|
34
|
+
[self applyTextAttributesFromDictionary:appearanceDict toAppearance:appearance];
|
|
35
|
+
return appearance;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
+ (void)applyTextAttributesFromDictionary:(nullable NSDictionary *)appearanceDict
|
|
39
|
+
toAppearance:(nonnull UINavigationBarAppearance *)appearance
|
|
40
|
+
{
|
|
41
|
+
appearance.titleTextAttributes = [self textAttributes:appearance.titleTextAttributes
|
|
42
|
+
updatedWithDictionary:appearanceDict
|
|
43
|
+
keyPrefix:@"title"];
|
|
44
|
+
appearance.largeTitleTextAttributes = [self textAttributes:appearance.largeTitleTextAttributes
|
|
45
|
+
updatedWithDictionary:appearanceDict
|
|
46
|
+
keyPrefix:@"largeTitle"];
|
|
47
|
+
|
|
48
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
49
|
+
if (@available(iOS 26.0, *)) {
|
|
50
|
+
// UIKit derives both the regular and the large subtitle appearance from
|
|
51
|
+
// subtitleTextAttributes; largeSubtitleTextAttributes is ignored.
|
|
52
|
+
appearance.subtitleTextAttributes = [self textAttributes:appearance.subtitleTextAttributes
|
|
53
|
+
updatedWithDictionary:appearanceDict
|
|
54
|
+
keyPrefix:@"subtitle"];
|
|
55
|
+
}
|
|
56
|
+
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
+ (nonnull NSDictionary *)textAttributes:(nullable NSDictionary *)baseAttributes
|
|
60
|
+
updatedWithDictionary:(nullable NSDictionary *)appearanceDict
|
|
61
|
+
keyPrefix:(nonnull NSString *)keyPrefix
|
|
62
|
+
{
|
|
63
|
+
id fontFamily = appearanceDict[[keyPrefix stringByAppendingString:@"FontFamily"]];
|
|
64
|
+
id fontSize = appearanceDict[[keyPrefix stringByAppendingString:@"FontSize"]];
|
|
65
|
+
id fontWeight = appearanceDict[[keyPrefix stringByAppendingString:@"FontWeight"]];
|
|
66
|
+
id fontStyle = appearanceDict[[keyPrefix stringByAppendingString:@"FontStyle"]];
|
|
67
|
+
id fontColor = appearanceDict[[keyPrefix stringByAppendingString:@"FontColor"]];
|
|
68
|
+
|
|
69
|
+
NSMutableDictionary *textAttributes = [baseAttributes mutableCopy] ?: [NSMutableDictionary new];
|
|
70
|
+
|
|
71
|
+
if (fontFamily != nil || fontSize != nil || fontWeight != nil || fontStyle != nil) {
|
|
72
|
+
textAttributes[NSFontAttributeName] = [RCTFont updateFont:baseAttributes[NSFontAttributeName]
|
|
73
|
+
withFamily:fontFamily
|
|
74
|
+
size:fontSize
|
|
75
|
+
weight:fontWeight
|
|
76
|
+
style:fontStyle
|
|
77
|
+
variant:nil
|
|
78
|
+
scaleMultiplier:1.0];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (fontColor != nil) {
|
|
82
|
+
textAttributes[NSForegroundColorAttributeName] = [RCTConvert UIColor:fontColor];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return textAttributes;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@end
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#import "RNSStackHeaderConfigDataProviding.h"
|
|
6
6
|
#import "RNSStackHeaderEventsDelegate.h"
|
|
7
7
|
#import "RNSStackHeaderItemInvalidationDelegate.h"
|
|
8
|
+
#import "RNSStackScreenHeaderCoordinator.h"
|
|
8
9
|
#import "RNSViewFrameChangeDelegate.h"
|
|
9
10
|
|
|
10
11
|
NS_ASSUME_NONNULL_BEGIN
|
|
@@ -21,9 +22,21 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
21
22
|
@property (nonatomic, readonly, nullable) NSString *largeTitle;
|
|
22
23
|
@property (nonatomic, readonly, nullable) NSString *largeSubtitle;
|
|
23
24
|
@property (nonatomic, readonly) BOOL largeTitleEnabled;
|
|
25
|
+
@property (nonatomic, readonly, nullable) NSString *prompt;
|
|
26
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(27_0)
|
|
27
|
+
@property (nonatomic, readonly) UIBarMinimizationBehavior minimizationBehavior API_AVAILABLE(ios(27.0));
|
|
28
|
+
@property (nonatomic, readonly) UIBarMinimizationRestorationBehavior restorationBehavior API_AVAILABLE(ios(27.0));
|
|
29
|
+
#endif // Check for iOS >= 27
|
|
30
|
+
@property (nonatomic, readonly, nullable) NSString *backButtonTitle;
|
|
31
|
+
@property (nonatomic, readonly) UINavigationItemBackButtonDisplayMode backButtonDisplayMode;
|
|
32
|
+
@property (nonatomic, readonly) BOOL backButtonMenuEnabled;
|
|
24
33
|
@property (nonatomic, readonly, nullable) RNSStackHeaderMenuData *titleMenu;
|
|
34
|
+
@property (nonatomic, readonly, nullable) UINavigationBarAppearance *standardAppearance;
|
|
35
|
+
@property (nonatomic, readonly, nullable) UINavigationBarAppearance *scrollEdgeAppearance;
|
|
25
36
|
@property (nonatomic, readonly) NSArray<id> *children;
|
|
26
37
|
|
|
38
|
+
@property (nonatomic, weak, nullable) RNSStackScreenHeaderCoordinator *headerCoordinator;
|
|
39
|
+
|
|
27
40
|
- (void)resetProps;
|
|
28
41
|
|
|
29
42
|
@end
|
|
@@ -34,7 +47,7 @@ NS_ASSUME_NONNULL_END
|
|
|
34
47
|
|
|
35
48
|
#if defined(__cplusplus)
|
|
36
49
|
|
|
37
|
-
#import <rnscreens/RNSStackHeaderConfigComponentDescriptor.h>
|
|
50
|
+
#import <react/renderer/components/rnscreens/RNSStackHeaderConfigComponentDescriptor.h>
|
|
38
51
|
|
|
39
52
|
@interface RNSStackHeaderConfigComponentView ()
|
|
40
53
|
|