react-native-screens 5.0.0-alpha.2 → 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 -7
- 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/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 +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetBehaviorController.kt +49 -18
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +65 -40
- 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 +0 -6
- 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/native/core/FormSheetDialog.kt +35 -3
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +33 -106
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/interfaces/FormSheetDialogEventEmitter.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +61 -15
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetAnimatorFactory.kt +8 -9
- 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 +141 -49
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationState.kt +1 -1
- 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/react/event/FormSheetDismissEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/host/FormSheetHostEventEmitter.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/host/FormSheetHostViewManager.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +369 -58
- 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 +143 -98
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +155 -23
- 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/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +170 -167
- 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 +0 -4
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +32 -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 +7 -2
- 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/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 +4 -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/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
- package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
- package/ios/RNSEnums.h +2 -0
- package/ios/conversion/RNSConversions.h +7 -108
- package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
- package/ios/legacy/RNSModalScreen.mm +1 -1
- package/ios/legacy/RNSScreen.mm +8 -19
- 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/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/{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 +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 +10 -1
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +67 -35
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +6 -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/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.mm +9 -2
- package/ios/stack/screen/RNSStackScreenController.mm +12 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +8 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +98 -16
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +40 -9
- 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/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/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/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 +33 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.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/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/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 +34 -2
- package/lib/module/components/stack/header/StackHeaderConfig.ios.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/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/typescript/components/modals/form-sheet/FormSheet.types.d.ts +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +616 -21
- 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 +226 -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/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/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 +24 -0
- package/lib/typescript/components/stack/host/StackHost.types.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/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/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 +25 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +2 -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 +1 -0
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
- package/package.json +8 -7
- 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 +48 -23
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +637 -21
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +45 -1
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +238 -2
- package/src/components/stack/header/StackHeaderConfig.types.ts +2 -2
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +2 -0
- package/src/components/stack/host/StackHost.tsx +4 -2
- package/src/components/stack/host/StackHost.types.ts +26 -0
- 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/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +78 -0
- package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +32 -0
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +2 -0
- package/src/fabric/stack/StackHostNativeComponent.ts +11 -2
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +1 -0
- 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/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/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
|
@@ -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)
|
|
@@ -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.mm
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
16
16
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
17
|
-
#import <rnscreens/RNSScreenComponentDescriptor.h>
|
|
17
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenComponentDescriptor.h>
|
|
18
18
|
#import "RNSConvert.h"
|
|
19
19
|
#import "RNSHeaderHeightChangeEvent.h"
|
|
20
20
|
#import "RNSScreenViewEvent.h"
|
|
@@ -178,6 +178,13 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
178
178
|
|
|
179
179
|
- (void)applyFrameCorrectionForDescendantScrollView
|
|
180
180
|
{
|
|
181
|
+
// A dismissed sheet can still receive a layout pass after React has deleted it. By then Fabric
|
|
182
|
+
// may have recycled its scroll view into the screen that replaced the sheet, and sizing that
|
|
183
|
+
// scroll view to the sheet would clip the new screen. See #4651.
|
|
184
|
+
if (_invalidated) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
181
188
|
RCTScrollViewComponentView *scrollView = [self tryFindDescendantScrollView];
|
|
182
189
|
if (_sheetsScrollView != scrollView) {
|
|
183
190
|
[_sheetsScrollView removeObserver:self forKeyPath:@"bounds" context:nil];
|
|
@@ -1582,24 +1589,6 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1582
1589
|
return NO;
|
|
1583
1590
|
}
|
|
1584
1591
|
|
|
1585
|
-
- (CGSize)getStatusBarHeightIsModal:(BOOL)isModal
|
|
1586
|
-
{
|
|
1587
|
-
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
1588
|
-
CGSize fallbackStatusBarSize = [[UIApplication sharedApplication] statusBarFrame].size;
|
|
1589
|
-
|
|
1590
|
-
CGSize primaryStatusBarSize = self.view.window.windowScene.statusBarManager.statusBarFrame.size;
|
|
1591
|
-
if (primaryStatusBarSize.height == 0 || primaryStatusBarSize.width == 0) {
|
|
1592
|
-
return fallbackStatusBarSize;
|
|
1593
|
-
}
|
|
1594
|
-
|
|
1595
|
-
return primaryStatusBarSize;
|
|
1596
|
-
|
|
1597
|
-
#else
|
|
1598
|
-
// TVOS does not have status bar.
|
|
1599
|
-
return CGSizeMake(0, 0);
|
|
1600
|
-
#endif // !TARGET_OS_TV
|
|
1601
|
-
}
|
|
1602
|
-
|
|
1603
1592
|
- (UINavigationController *)getVisibleNavigationControllerIsModal:(BOOL)isModal
|
|
1604
1593
|
{
|
|
1605
1594
|
UINavigationController *navctr = self.navigationController;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
16
16
|
#import <react/utils/ManagedObjectWrapper.h>
|
|
17
|
-
#import <rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
17
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
18
18
|
#import "RCTImageComponentView+RNSScreenStackHeaderConfig.h"
|
|
19
19
|
#import "RNSBackBarButtonItem.h"
|
|
20
20
|
#import "RNSBarButtonItem.h"
|
|
@@ -947,6 +947,7 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
947
947
|
}
|
|
948
948
|
}
|
|
949
949
|
|
|
950
|
+
#ifndef NDEBUG
|
|
950
951
|
static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
951
952
|
{
|
|
952
953
|
switch (resizeMode) {
|
|
@@ -965,6 +966,7 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
965
966
|
return RCTResizeModeStretch;
|
|
966
967
|
}
|
|
967
968
|
}
|
|
969
|
+
#endif // !NDEBUG
|
|
968
970
|
|
|
969
971
|
+ (RCTImageSource *)imageSourceFromImageView:(RCTImageComponentView *)view
|
|
970
972
|
{
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#import <React/RCTConversions.h>
|
|
11
11
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
12
12
|
|
|
13
|
-
#import <rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
13
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
14
14
|
|
|
15
15
|
namespace react = facebook::react;
|
|
16
16
|
|
|
@@ -101,7 +101,8 @@
|
|
|
101
101
|
{
|
|
102
102
|
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
103
103
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
104
|
-
|
|
104
|
+
UIWindow *window = RCTKeyWindow();
|
|
105
|
+
UIInterfaceOrientationMask orientationMask = [window.rootViewController supportedInterfaceOrientations];
|
|
105
106
|
|
|
106
107
|
UIInterfaceOrientation currentDeviceOrientation =
|
|
107
108
|
[RNSScreenWindowTraits interfaceOrientationFromDeviceOrientation:[[UIDevice currentDevice] orientation]];
|
|
@@ -130,17 +131,7 @@
|
|
|
130
131
|
if (newOrientation != UIInterfaceOrientationUnknown) {
|
|
131
132
|
#if RNS_IPHONE_OS_VERSION_AVAILABLE(16_0)
|
|
132
133
|
if (@available(iOS 16.0, *)) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
// when an app supports multiple scenes (e.g. CarPlay), it is possible that
|
|
136
|
-
// UIWindowScene is not the first scene, or it may not be present at all
|
|
137
|
-
UIWindowScene *scene = nil;
|
|
138
|
-
for (id connectedScene in array) {
|
|
139
|
-
if ([connectedScene isKindOfClass:[UIWindowScene class]]) {
|
|
140
|
-
scene = connectedScene;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
134
|
+
UIWindowScene *scene = window.windowScene;
|
|
144
135
|
|
|
145
136
|
if (scene == nil) {
|
|
146
137
|
return;
|
|
@@ -154,7 +145,8 @@
|
|
|
154
145
|
|
|
155
146
|
// `attemptRotationToDeviceOrientation` is deprecated for modern OS versions
|
|
156
147
|
// so we need to use `setNeedsUpdateOfSupportedInterfaceOrientations`
|
|
157
|
-
|
|
148
|
+
|
|
149
|
+
UIViewController *topController = window.rootViewController;
|
|
158
150
|
while (topController.presentedViewController) {
|
|
159
151
|
topController = topController.presentedViewController;
|
|
160
152
|
}
|
|
@@ -10,13 +10,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
10
10
|
|
|
11
11
|
@interface RNSFormSheetConfigurationApplicator : NSObject
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
+ (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
14
14
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
15
15
|
controller:(RNSFormSheetContentController *)controller
|
|
16
16
|
coordinator:(RNSFormSheetUpdateCoordinator *)coordinator;
|
|
17
17
|
|
|
18
|
-
- (void)resetInitialDetent;
|
|
19
|
-
|
|
20
18
|
@end
|
|
21
19
|
|
|
22
20
|
NS_ASSUME_NONNULL_END
|
|
@@ -7,43 +7,33 @@
|
|
|
7
7
|
#import "RNSFormSheetUpdateCoordinator.h"
|
|
8
8
|
#import "RNSFormSheetUpdateFlags.h"
|
|
9
9
|
|
|
10
|
-
@implementation RNSFormSheetConfigurationApplicator
|
|
11
|
-
BOOL _initialDetentApplied;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
- (instancetype)init
|
|
15
|
-
{
|
|
16
|
-
if (self = [super init]) {
|
|
17
|
-
_initialDetentApplied = NO;
|
|
18
|
-
}
|
|
19
|
-
return self;
|
|
20
|
-
}
|
|
10
|
+
@implementation RNSFormSheetConfigurationApplicator
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
{
|
|
24
|
-
_initialDetentApplied = NO;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
- (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
12
|
+
+ (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
28
13
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
29
14
|
controller:(RNSFormSheetContentController *)controller
|
|
30
15
|
coordinator:(RNSFormSheetUpdateCoordinator *)coordinator
|
|
31
16
|
{
|
|
32
|
-
RNSFormSheetUpdateFlags configFlags =
|
|
17
|
+
RNSFormSheetUpdateFlags configFlags =
|
|
18
|
+
RNSFormSheetUpdateFlagsAppearance | RNSFormSheetUpdateFlagsBehavior | RNSFormSheetUpdateFlagsInitialDetent;
|
|
19
|
+
|
|
20
|
+
BOOL shouldSelectInitialDetent = [coordinator needsAny:RNSFormSheetUpdateFlagsInitialDetent];
|
|
33
21
|
|
|
34
22
|
[coordinator updateIfAnyNeeded:configFlags
|
|
35
23
|
performOperations:^{
|
|
36
24
|
[self applyConfigurationWithAppearanceProvider:appearanceProvider
|
|
37
25
|
behaviorProvider:behaviorProvider
|
|
38
|
-
controller:controller
|
|
26
|
+
controller:controller
|
|
27
|
+
selectInitialDetent:shouldSelectInitialDetent];
|
|
39
28
|
}];
|
|
40
29
|
}
|
|
41
30
|
|
|
42
31
|
#pragma mark - Updaters
|
|
43
32
|
|
|
44
|
-
|
|
33
|
+
+ (void)applyConfigurationWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
45
34
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
46
35
|
controller:(RNSFormSheetContentController *)controller
|
|
36
|
+
selectInitialDetent:(BOOL)selectInitialDetent
|
|
47
37
|
{
|
|
48
38
|
#if !TARGET_OS_TV
|
|
49
39
|
UISheetPresentationController *sheet = controller.sheetPresentationController;
|
|
@@ -57,11 +47,10 @@
|
|
|
57
47
|
[RNSFormSheetDetentResolver buildSheetDetentsWithBehaviorProvider:behaviorProvider];
|
|
58
48
|
|
|
59
49
|
UISheetPresentationControllerDetentIdentifier initialDetentIdentifier = nil;
|
|
60
|
-
if (
|
|
50
|
+
if (selectInitialDetent) {
|
|
61
51
|
initialDetentIdentifier =
|
|
62
52
|
[RNSFormSheetDetentResolver initialDetentIdentifierForDetents:nativeDetents
|
|
63
53
|
atRequestedIndex:behaviorProvider.initialDetentIndex];
|
|
64
|
-
_initialDetentApplied = YES;
|
|
65
54
|
}
|
|
66
55
|
|
|
67
56
|
BOOL prefersScrollingExpands = behaviorProvider.prefersScrollingExpandsWhenScrolledToEdge;
|
|
@@ -20,12 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
@implementation RNSFormSheetContentController {
|
|
22
22
|
RNSFormSheetUpdateCoordinator *_Nonnull _updateCoordinator;
|
|
23
|
-
RNSFormSheetConfigurationApplicator *_Nonnull _configurationApplicator;
|
|
24
23
|
RNSFormSheetPresentationManager *_Nonnull _presentationManager;
|
|
25
24
|
|
|
26
25
|
UITapGestureRecognizer *_Nullable _backdropTapGestureRecognizer;
|
|
27
|
-
|
|
28
|
-
BOOL _needsInitialDetentReset;
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
- (instancetype)init
|
|
@@ -34,10 +31,7 @@
|
|
|
34
31
|
self.modalPresentationStyle = UIModalPresentationFormSheet;
|
|
35
32
|
|
|
36
33
|
_updateCoordinator = [RNSFormSheetUpdateCoordinator new];
|
|
37
|
-
_configurationApplicator = [RNSFormSheetConfigurationApplicator new];
|
|
38
34
|
_presentationManager = [RNSFormSheetPresentationManager new];
|
|
39
|
-
|
|
40
|
-
_needsInitialDetentReset = NO;
|
|
41
35
|
}
|
|
42
36
|
return self;
|
|
43
37
|
}
|
|
@@ -142,7 +136,7 @@
|
|
|
142
136
|
// We must force a full configuration update for this new instance.
|
|
143
137
|
[self setNeedsAppearanceUpdate];
|
|
144
138
|
[self setNeedsBehaviorUpdate];
|
|
145
|
-
[self
|
|
139
|
+
[self setNeedsInitialDetentUpdate];
|
|
146
140
|
[self updateConfigurationIfNeeded];
|
|
147
141
|
}
|
|
148
142
|
|
|
@@ -160,15 +154,10 @@
|
|
|
160
154
|
return;
|
|
161
155
|
}
|
|
162
156
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
[_configurationApplicator applyConfigurationIfNeededWithAppearanceProvider:appearanceProvider
|
|
169
|
-
behaviorProvider:behaviorProvider
|
|
170
|
-
controller:self
|
|
171
|
-
coordinator:_updateCoordinator];
|
|
157
|
+
[RNSFormSheetConfigurationApplicator applyConfigurationIfNeededWithAppearanceProvider:appearanceProvider
|
|
158
|
+
behaviorProvider:behaviorProvider
|
|
159
|
+
controller:self
|
|
160
|
+
coordinator:_updateCoordinator];
|
|
172
161
|
}
|
|
173
162
|
|
|
174
163
|
#pragma mark - Signals
|
|
@@ -188,9 +177,9 @@
|
|
|
188
177
|
[_updateCoordinator setNeeds:RNSFormSheetUpdateFlagsBehavior];
|
|
189
178
|
}
|
|
190
179
|
|
|
191
|
-
- (void)
|
|
180
|
+
- (void)setNeedsInitialDetentUpdate
|
|
192
181
|
{
|
|
193
|
-
|
|
182
|
+
[_updateCoordinator setNeeds:RNSFormSheetUpdateFlagsInitialDetent];
|
|
194
183
|
}
|
|
195
184
|
|
|
196
185
|
#pragma mark - Updates
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#import <React/RCTSurfaceTouchHandler.h>
|
|
14
14
|
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
16
|
-
#import <rnscreens/RNSFormSheetHostComponentDescriptor.h>
|
|
16
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostComponentDescriptor.h>
|
|
17
17
|
|
|
18
18
|
namespace react = facebook::react;
|
|
19
19
|
|
|
@@ -246,9 +246,9 @@ namespace react = facebook::react;
|
|
|
246
246
|
// because UIKit destroys the presentationController after the modal is dismissed.
|
|
247
247
|
[_controller setNeedsAppearanceUpdate];
|
|
248
248
|
[_controller setNeedsBehaviorUpdate];
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
[_controller
|
|
249
|
+
// Request the configured initialDetentIndex to be selected
|
|
250
|
+
// again on the fresh presentation controller.
|
|
251
|
+
[_controller setNeedsInitialDetentUpdate];
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#import "RNSFormSheetHostShadowStateProxy.h"
|
|
2
2
|
|
|
3
3
|
#import <React/RCTConversions.h>
|
|
4
|
-
#import <rnscreens/RNSFormSheetHostShadowNode.h>
|
|
5
|
-
#import <rnscreens/RNSFormSheetHostState.h>
|
|
4
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostShadowNode.h>
|
|
5
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostState.h>
|
|
6
6
|
|
|
7
7
|
namespace react = facebook::react;
|
|
8
8
|
|
|
@@ -10,4 +10,7 @@ typedef NS_OPTIONS(NSUInteger, RNSFormSheetUpdateFlags) {
|
|
|
10
10
|
RNSFormSheetUpdateFlagsAppearance = 1 << 1,
|
|
11
11
|
// The sheet's behavioral layout (detents, scrolling config) needs to be re-applied.
|
|
12
12
|
RNSFormSheetUpdateFlagsBehavior = 1 << 2,
|
|
13
|
+
// The sheet's selected detent needs to be (re)set to the configured `initialDetentIndex`.
|
|
14
|
+
// Requested once per presentation cycle, since UIKit recreates the presentation controller on every present.
|
|
15
|
+
RNSFormSheetUpdateFlagsInitialDetent = 1 << 3,
|
|
13
16
|
};
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
11
11
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
12
|
-
#import <rnscreens/RNSSafeAreaViewComponentDescriptor.h>
|
|
13
|
-
#import <rnscreens/RNSSafeAreaViewState.h>
|
|
12
|
+
#import <react/renderer/components/rnscreens/RNSSafeAreaViewComponentDescriptor.h>
|
|
13
|
+
#import <react/renderer/components/rnscreens/RNSSafeAreaViewState.h>
|
|
14
14
|
|
|
15
15
|
namespace react = facebook::react;
|
|
16
16
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
#import "RNSConversions-ScrollViewMarker.h"
|
|
2
|
-
|
|
3
2
|
#import <React/RCTLog.h>
|
|
4
3
|
|
|
5
|
-
namespace react = facebook::react;
|
|
6
|
-
|
|
7
4
|
#define SWITCH_EDGE_EFFECT(X) \
|
|
8
5
|
switch (edgeEffect) { \
|
|
9
6
|
using enum react::X; \
|
|
@@ -29,6 +26,8 @@ namespace react = facebook::react;
|
|
|
29
26
|
|
|
30
27
|
namespace rnscreens::conversion {
|
|
31
28
|
|
|
29
|
+
namespace react = facebook::react;
|
|
30
|
+
|
|
32
31
|
EDGE_EFFECT_CONV_FUNC_IMPL(Left);
|
|
33
32
|
EDGE_EFFECT_CONV_FUNC_IMPL(Top);
|
|
34
33
|
EDGE_EFFECT_CONV_FUNC_IMPL(Right);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
#import <Foundation/Foundation.h>
|
|
4
4
|
#import "RNSSplitAppearanceCoordinator.h"
|
|
5
|
+
#import "RNSSplitHostProviders.h"
|
|
5
6
|
|
|
6
|
-
@class RNSSplitHostComponentView;
|
|
7
7
|
@class RNSSplitHostController;
|
|
8
8
|
|
|
9
9
|
NS_ASSUME_NONNULL_BEGIN
|
|
@@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
12
12
|
* @brief - Class responsible for applying all upcoming updates to SplitView.
|
|
13
13
|
*
|
|
14
14
|
* This class is synchronizing UISplitViewController configuration props which are affecting the SplitView appearance
|
|
15
|
-
* with
|
|
15
|
+
* with the configuration exposed by the appearance provider.
|
|
16
16
|
*/
|
|
17
17
|
@interface RNSSplitAppearanceApplicator : NSObject
|
|
18
18
|
|
|
@@ -21,13 +21,13 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
21
21
|
*
|
|
22
22
|
* It requests calling proper callbacks with batched SplitView updates on the AppearanceCoordinator object
|
|
23
23
|
*
|
|
24
|
-
* @param
|
|
24
|
+
* @param provider The provider of the appearance configuration.
|
|
25
25
|
* @param splitHostController The controller associated with the SplitView component which receives updates and
|
|
26
26
|
* manages the native layer.
|
|
27
27
|
* @param appearanceCoordinator The coordinator which is checking whether the update needs to be applied and if so, it
|
|
28
28
|
* executes the callback passed by this class.
|
|
29
29
|
*/
|
|
30
|
-
- (void)updateAppearanceIfNeeded:(
|
|
30
|
+
- (void)updateAppearanceIfNeeded:(id<RNSSplitHostAppearanceProvider>)provider
|
|
31
31
|
splitHostController:(RNSSplitHostController *)splitHostController
|
|
32
32
|
appearanceCoordinator:(RNSSplitAppearanceCoordinator *)appearanceCoordinator;
|
|
33
33
|
|