react-native-screens 5.0.0-alpha.3 → 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/README.md +0 -4
- 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/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 +9 -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 +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetDimensionsCoordinator.kt +6 -6
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetKeyboardCoordinator.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetNativeDismissCoordinator.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetAvailableHeightProvider.kt +1 -1
- 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 +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetDialogManager.kt +26 -8
- 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 +1 -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/{modals/formsheet/native → core/modals/formsheet}/model/FormSheetDetents.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetAnimatorFactory.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetDimmingManager.kt +6 -18
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetDismissalOrigin.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentation.kt +10 -10
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationManager.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationState.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetStackRegistry.kt +1 -1
- 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/ViewFinder.kt +0 -17
- package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +29 -2
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenContainer.kt +35 -3
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +13 -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/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDismissEvent.kt +1 -1
- 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 +11 -11
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostViewManager.kt +10 -10
- 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 +0 -52
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +112 -59
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +1 -1
- 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/StackHeaderConfig.kt +4 -73
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +5 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +0 -6
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +3 -7
- 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 +57 -19
- 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 +14 -5
- 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/StackScreenFragment.kt +33 -12
- 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 +44 -3
- 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/TabsContainer.kt +28 -13
- 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 +12 -2
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +41 -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/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 +14 -7
- package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +22 -6
- package/ios/RNSEnums.h +14 -1
- 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/RNSNavigationBar.h +31 -0
- package/ios/legacy/RNSNavigationBar.mm +15 -0
- package/ios/legacy/RNSScreen.mm +122 -12
- 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 +70 -17
- package/ios/legacy/RNSScreenStackHeaderSubview.mm +33 -0
- package/ios/safe-area/RNSSafeAreaViewComponentView.mm +1 -12
- package/ios/stack/conversion/RNSConversions-Stack.h +30 -0
- package/ios/stack/conversion/RNSConversions-Stack.mm +79 -0
- package/ios/stack/header/RNSHeaderItemVisibilityPriority.h +9 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.h +4 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +40 -6
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +5 -0
- package/ios/stack/header/RNSStackHeaderContentFactory.mm +3 -0
- package/ios/stack/header/RNSStackHeaderItemComponentView.h +9 -2
- package/ios/stack/header/RNSStackHeaderItemComponentView.mm +57 -3
- package/ios/stack/header/RNSStackHeaderItemDataProviding.h +5 -0
- 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/screen/RNSStackScreenComponentView.h +2 -1
- package/ios/stack/screen/RNSStackScreenComponentView.mm +23 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +81 -8
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +79 -16
- package/ios/tabs/RNSTabBarItemCoordinator.h +16 -0
- package/ios/tabs/RNSTabBarItemCoordinator.mm +143 -0
- 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 +22 -0
- package/ios/tabs/conversion/RNSConversions-Tabs.mm +97 -3
- package/ios/tabs/host/RNSTabBarController.h +16 -0
- package/ios/tabs/host/RNSTabBarController.mm +516 -107
- package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
- package/ios/tabs/host/RNSTabsHostComponentView.mm +32 -2
- package/ios/tabs/screen/RNSTabsScreenComponentView.h +21 -0
- package/ios/tabs/screen/RNSTabsScreenComponentView.mm +54 -69
- package/ios/tabs/screen/RNSTabsScreenViewController.mm +1 -0
- package/ios/utils/RNSDefines.h +12 -7
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +3 -2
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +8 -3
- 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 +8 -1
- 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 +2 -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/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.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 +4 -3
- package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js +9 -4
- 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 +9 -2
- 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 +2 -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/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.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/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 +4 -3
- 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 +137 -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 -0
- 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 +5 -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.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.types.d.ts +24 -1
- 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 +56 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.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/StackHeaderConfigIOSNativeComponent.d.ts +4 -0
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +3 -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 +4 -2
- package/src/components/stack/header/StackHeaderConfig.android.tsx +6 -20
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +4 -3
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +10 -16
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +148 -2
- package/src/components/stack/header/StackHeaderConfig.tsx +12 -0
- package/src/components/stack/header/StackHeaderConfig.types.ts +2 -0
- package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +9 -1
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +5 -0
- package/src/components/stack/host/StackHost.tsx +10 -3
- package/src/components/stack/host/StackHost.types.ts +25 -1
- package/src/components/stack/host/StackHost.web.tsx +1 -4
- package/src/components/stack/index.ts +9 -1
- package/src/components/tabs/host/TabsHost.ios.tsx +2 -0
- package/src/components/tabs/host/TabsHost.ios.types.ts +60 -0
- package/src/components/tabs/host/TabsHost.tsx +7 -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/StackHeaderConfigIOSNativeComponent.ts +11 -0
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +11 -0
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +7 -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/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
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
package com.swmansion.rnscreens.legacy
|
|
2
|
-
|
|
3
|
-
import android.app.Activity
|
|
4
|
-
import android.app.Dialog
|
|
5
|
-
import android.content.Context
|
|
6
|
-
import android.os.Build
|
|
7
|
-
import android.os.Bundle
|
|
8
|
-
import android.view.LayoutInflater
|
|
9
|
-
import android.view.View
|
|
10
|
-
import android.view.ViewGroup
|
|
11
|
-
import android.view.ViewParent
|
|
12
|
-
import android.view.WindowManager
|
|
13
|
-
import androidx.fragment.app.Fragment
|
|
14
|
-
import com.facebook.react.bridge.ReactContext
|
|
15
|
-
import com.facebook.react.uimanager.UIManagerHelper
|
|
16
|
-
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
17
|
-
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
18
|
-
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
19
|
-
import com.swmansion.rnscreens.ext.parentAsView
|
|
20
|
-
import com.swmansion.rnscreens.ext.recycle
|
|
21
|
-
import com.swmansion.rnscreens.legacy.bottomsheet.BottomSheetDialogRootView
|
|
22
|
-
import com.swmansion.rnscreens.legacy.bottomsheet.BottomSheetDialogScreen
|
|
23
|
-
import com.swmansion.rnscreens.legacy.events.ScreenDismissedEvent
|
|
24
|
-
|
|
25
|
-
class ScreenModalFragment :
|
|
26
|
-
BottomSheetDialogFragment,
|
|
27
|
-
ScreenStackFragmentWrapper {
|
|
28
|
-
override lateinit var screen: Screen
|
|
29
|
-
|
|
30
|
-
// Nested containers
|
|
31
|
-
override val childScreenContainers = ArrayList<ScreenContainer>()
|
|
32
|
-
|
|
33
|
-
private val container: ScreenStack?
|
|
34
|
-
get() = screen.container as? ScreenStack
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Dialog instance. Note that we are responsible for creating the dialog.
|
|
38
|
-
* This member is valid after `onCreateDialog` method runs.
|
|
39
|
-
*/
|
|
40
|
-
private lateinit var sheetDialog: BottomSheetDialog
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Behaviour attached to bottom sheet dialog.
|
|
44
|
-
* This member is valid after `onCreateDialog` method runs.
|
|
45
|
-
*/
|
|
46
|
-
private val behavior
|
|
47
|
-
get() = sheetDialog.behavior
|
|
48
|
-
|
|
49
|
-
override val fragment: Fragment
|
|
50
|
-
get() = this
|
|
51
|
-
|
|
52
|
-
constructor() {
|
|
53
|
-
throw IllegalStateException(
|
|
54
|
-
"Screen fragments should never be restored. Follow instructions from https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067 to properly configure your main activity.",
|
|
55
|
-
)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
constructor(screen: Screen) : super() {
|
|
59
|
-
this.screen = screen
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
|
63
|
-
super.onCreate(savedInstanceState)
|
|
64
|
-
// Right now whole purpose of this Fragment is to be displayed as a dialog.
|
|
65
|
-
// I've experimented with setting false here, but could not get it to work.
|
|
66
|
-
showsDialog = true
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// We override this method to provide our custom dialog type instead of the default Dialog.
|
|
70
|
-
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
71
|
-
configureDialogAndBehaviour()
|
|
72
|
-
|
|
73
|
-
val reactEventDispatcher =
|
|
74
|
-
checkNotNull(
|
|
75
|
-
screen.reactEventDispatcher,
|
|
76
|
-
) { "[RNScreens] No ReactEventDispatcher attached to screen while creating modal fragment" }
|
|
77
|
-
val rootView = BottomSheetDialogRootView(screen.reactContext, reactEventDispatcher)
|
|
78
|
-
|
|
79
|
-
rootView.addView(screen.recycle())
|
|
80
|
-
sheetDialog.setContentView(rootView)
|
|
81
|
-
|
|
82
|
-
rootView.parentAsView()?.clipToOutline = true
|
|
83
|
-
|
|
84
|
-
return sheetDialog
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
override fun onCreateView(
|
|
88
|
-
inflater: LayoutInflater,
|
|
89
|
-
container: ViewGroup?,
|
|
90
|
-
savedInstanceState: Bundle?,
|
|
91
|
-
): View? = null
|
|
92
|
-
|
|
93
|
-
override fun isTranslucent(): Boolean = true
|
|
94
|
-
|
|
95
|
-
override fun dismissFromContainer() {
|
|
96
|
-
check(container is ScreenStack)
|
|
97
|
-
val container = container as ScreenStack
|
|
98
|
-
container.dismiss(this)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Modal can never be first on the stack
|
|
102
|
-
override fun canNavigateBack(): Boolean = true
|
|
103
|
-
|
|
104
|
-
override fun addChildScreenContainer(container: ScreenContainer) {
|
|
105
|
-
childScreenContainers.add(container)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
override fun removeChildScreenContainer(container: ScreenContainer) {
|
|
109
|
-
childScreenContainers.remove(container)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
override fun onContainerUpdate() {
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
override fun onViewAnimationStart() {
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
override fun onViewAnimationEnd() {
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
override fun tryGetActivity(): Activity? = requireActivity()
|
|
122
|
-
|
|
123
|
-
override fun tryGetContext(): ReactContext? {
|
|
124
|
-
if (context is ReactContext) {
|
|
125
|
-
return context as ReactContext
|
|
126
|
-
}
|
|
127
|
-
if (screen.context is ReactContext) {
|
|
128
|
-
return screen.context as ReactContext
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
var parent: ViewParent? = screen.container
|
|
132
|
-
while (parent != null) {
|
|
133
|
-
if (parent is Screen && parent.context is ReactContext) {
|
|
134
|
-
return parent.context as ReactContext
|
|
135
|
-
}
|
|
136
|
-
parent = parent.parent
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return null
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
override fun canDispatchLifecycleEvent(event: ScreenFragment.ScreenLifecycleEvent): Boolean {
|
|
143
|
-
TODO("Not yet implemented")
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
override fun updateLastEventDispatched(event: ScreenFragment.ScreenLifecycleEvent) {
|
|
147
|
-
TODO("Not yet implemented")
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
override fun dispatchLifecycleEvent(
|
|
151
|
-
event: ScreenFragment.ScreenLifecycleEvent,
|
|
152
|
-
fragmentWrapper: ScreenFragmentWrapper,
|
|
153
|
-
) {
|
|
154
|
-
TODO("Not yet implemented")
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
override fun dispatchLifecycleEventInChildContainers(event: ScreenFragment.ScreenLifecycleEvent) {
|
|
158
|
-
TODO("Not yet implemented")
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
override fun dispatchHeaderBackButtonClickedEvent() {
|
|
162
|
-
TODO("Not yet implemented")
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
override fun dispatchTransitionProgressEvent(
|
|
166
|
-
alpha: Float,
|
|
167
|
-
closing: Boolean,
|
|
168
|
-
) {
|
|
169
|
-
TODO("Not yet implemented")
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
override fun onDestroy() {
|
|
173
|
-
super.onDestroy()
|
|
174
|
-
val container = container
|
|
175
|
-
if (container == null || !container.hasScreen(this)) {
|
|
176
|
-
val screenContext = screen.context
|
|
177
|
-
if (screenContext is ReactContext) {
|
|
178
|
-
val surfaceId = UIManagerHelper.getSurfaceId(screenContext)
|
|
179
|
-
UIManagerHelper
|
|
180
|
-
.getEventDispatcherForReactTag(screenContext, screen.id)
|
|
181
|
-
?.dispatchEvent(ScreenDismissedEvent(surfaceId, screen.id))
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
childScreenContainers.clear()
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
override fun removeToolbar(): Unit = throw IllegalStateException("[RNScreens] Modal screens on Android do not support header right now")
|
|
188
|
-
|
|
189
|
-
override fun setToolbar(toolbar: CustomToolbar): Unit =
|
|
190
|
-
throw IllegalStateException("[RNScreens] Modal screens on Android do not support header right now")
|
|
191
|
-
|
|
192
|
-
override fun setToolbarShadowHidden(hidden: Boolean): Unit =
|
|
193
|
-
throw IllegalStateException("[RNScreens] Modal screens on Android do not support header right now")
|
|
194
|
-
|
|
195
|
-
override fun setToolbarTranslucent(translucent: Boolean): Unit =
|
|
196
|
-
throw IllegalStateException("[RNScreens] Modal screens on Android do not support header right now")
|
|
197
|
-
|
|
198
|
-
private fun configureDialogAndBehaviour(): BottomSheetDialog {
|
|
199
|
-
sheetDialog = BottomSheetDialogScreen(requireContext(), this)
|
|
200
|
-
sheetDialog.dismissWithAnimation = true
|
|
201
|
-
sheetDialog.setCanceledOnTouchOutside(screen.sheetClosesOnTouchOutside)
|
|
202
|
-
|
|
203
|
-
configureBehaviour()
|
|
204
|
-
|
|
205
|
-
return sheetDialog
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* This method might return slightly different values depending on code path,
|
|
210
|
-
* but during testing I've found this effect negligible. For practical purposes
|
|
211
|
-
* this is acceptable.
|
|
212
|
-
*/
|
|
213
|
-
private fun tryResolveContainerHeight(): Int? {
|
|
214
|
-
screen.container?.height?.let { return it }
|
|
215
|
-
context
|
|
216
|
-
?.resources
|
|
217
|
-
?.displayMetrics
|
|
218
|
-
?.heightPixels
|
|
219
|
-
?.let { return it }
|
|
220
|
-
|
|
221
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
|
222
|
-
(context?.getSystemService(Context.WINDOW_SERVICE) as? WindowManager)
|
|
223
|
-
?.currentWindowMetrics
|
|
224
|
-
?.bounds
|
|
225
|
-
?.height()
|
|
226
|
-
?.let { return it }
|
|
227
|
-
}
|
|
228
|
-
return null
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
private fun configureBehaviour() {
|
|
232
|
-
val containerHeight = tryResolveContainerHeight()
|
|
233
|
-
check(containerHeight != null) { "[RNScreens] Failed to find window height during bottom sheet behaviour configuration" }
|
|
234
|
-
|
|
235
|
-
behavior.apply {
|
|
236
|
-
isHideable = true
|
|
237
|
-
isDraggable = true
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
when (screen.sheetDetents.count) {
|
|
241
|
-
1 ->
|
|
242
|
-
behavior.apply {
|
|
243
|
-
state = BottomSheetBehavior.STATE_EXPANDED
|
|
244
|
-
skipCollapsed = true
|
|
245
|
-
isFitToContents = true
|
|
246
|
-
maxHeight = screen.sheetDetents.maxAllowedHeight(containerHeight)
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
2 ->
|
|
250
|
-
behavior.apply {
|
|
251
|
-
state =
|
|
252
|
-
screen.sheetDetents.sheetStateFromIndex(
|
|
253
|
-
screen.sheetInitialDetentIndex,
|
|
254
|
-
)
|
|
255
|
-
skipCollapsed = false
|
|
256
|
-
isFitToContents = true
|
|
257
|
-
peekHeight = screen.sheetDetents.peekHeight(containerHeight)
|
|
258
|
-
maxHeight = screen.sheetDetents.maxAllowedHeight(containerHeight)
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
3 ->
|
|
262
|
-
behavior.apply {
|
|
263
|
-
state =
|
|
264
|
-
screen.sheetDetents.sheetStateFromIndex(
|
|
265
|
-
screen.sheetInitialDetentIndex,
|
|
266
|
-
)
|
|
267
|
-
skipCollapsed = false
|
|
268
|
-
isFitToContents = false
|
|
269
|
-
peekHeight = screen.sheetDetents.peekHeight(containerHeight)
|
|
270
|
-
expandedOffset = screen.sheetDetents.expandedOffsetFromTop(containerHeight)
|
|
271
|
-
halfExpandedRatio = screen.sheetDetents.halfExpandedRatio()
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
else -> throw IllegalStateException("[RNScreens] Invalid detent count ${screen.sheetDetents.count}. Expected at most 3.")
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
companion object {
|
|
279
|
-
const val TAG = "ScreenModalFragment"
|
|
280
|
-
}
|
|
281
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
package com.swmansion.rnscreens.legacy.bottomsheet
|
|
2
|
-
|
|
3
|
-
import android.annotation.SuppressLint
|
|
4
|
-
import android.view.MotionEvent
|
|
5
|
-
import android.view.View
|
|
6
|
-
import com.facebook.react.bridge.ReactContext
|
|
7
|
-
import com.facebook.react.config.ReactFeatureFlags
|
|
8
|
-
import com.facebook.react.uimanager.JSPointerDispatcher
|
|
9
|
-
import com.facebook.react.uimanager.JSTouchDispatcher
|
|
10
|
-
import com.facebook.react.uimanager.RootView
|
|
11
|
-
import com.facebook.react.uimanager.events.EventDispatcher
|
|
12
|
-
import com.facebook.react.views.view.ReactViewGroup
|
|
13
|
-
|
|
14
|
-
@SuppressLint("ViewConstructor")
|
|
15
|
-
class BottomSheetDialogRootView(
|
|
16
|
-
val reactContext: ReactContext?,
|
|
17
|
-
private val eventDispatcher: EventDispatcher,
|
|
18
|
-
) : ReactViewGroup(reactContext),
|
|
19
|
-
RootView {
|
|
20
|
-
private val jsTouchDispatcher: JSTouchDispatcher = JSTouchDispatcher(this)
|
|
21
|
-
private var jsPointerDispatcher: JSPointerDispatcher? = null
|
|
22
|
-
|
|
23
|
-
init {
|
|
24
|
-
// Can we safely use ReactFeatureFlags?
|
|
25
|
-
if (ReactFeatureFlags.dispatchPointerEvents) {
|
|
26
|
-
jsPointerDispatcher = JSPointerDispatcher(this)
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
override fun onLayout(
|
|
31
|
-
changed: Boolean,
|
|
32
|
-
l: Int,
|
|
33
|
-
t: Int,
|
|
34
|
-
r: Int,
|
|
35
|
-
b: Int,
|
|
36
|
-
) {
|
|
37
|
-
if (changed) {
|
|
38
|
-
// This view is used right now only in ScreenModalFragment, where it is injected
|
|
39
|
-
// to view hierarchy as a parent of a Screen.
|
|
40
|
-
assert(childCount == 1) { "[RNScreens] Expected only a single child view under $TAG, received: $childCount" }
|
|
41
|
-
getChildAt(0).layout(l, t, r, b)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
|
|
46
|
-
jsTouchDispatcher.handleTouchEvent(event, eventDispatcher)
|
|
47
|
-
jsPointerDispatcher?.handleMotionEvent(event, eventDispatcher, true)
|
|
48
|
-
return super.onInterceptTouchEvent(event)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
override fun onTouchEvent(event: MotionEvent): Boolean {
|
|
52
|
-
jsTouchDispatcher.handleTouchEvent(event, eventDispatcher)
|
|
53
|
-
jsPointerDispatcher?.handleMotionEvent(event, eventDispatcher, false)
|
|
54
|
-
super.onTouchEvent(event)
|
|
55
|
-
return true
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
override fun onInterceptHoverEvent(event: MotionEvent): Boolean {
|
|
59
|
-
jsPointerDispatcher?.handleMotionEvent(event, eventDispatcher, true)
|
|
60
|
-
// This is how DialogRootViewGroup implements this, it might be a copy-paste mistake
|
|
61
|
-
// on their side.
|
|
62
|
-
return super.onHoverEvent(event)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
override fun onHoverEvent(event: MotionEvent): Boolean {
|
|
66
|
-
jsPointerDispatcher?.handleMotionEvent(event, eventDispatcher, false)
|
|
67
|
-
return super.onHoverEvent(event)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
override fun onChildStartedNativeGesture(
|
|
71
|
-
view: View?,
|
|
72
|
-
event: MotionEvent,
|
|
73
|
-
) {
|
|
74
|
-
jsTouchDispatcher.onChildStartedNativeGesture(event, eventDispatcher)
|
|
75
|
-
jsPointerDispatcher?.onChildStartedNativeGesture(view, event, eventDispatcher)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@Deprecated("Deprecated by React Native")
|
|
79
|
-
override fun onChildStartedNativeGesture(event: MotionEvent): Unit =
|
|
80
|
-
throw IllegalStateException("Deprecated onChildStartedNativeGesture was called")
|
|
81
|
-
|
|
82
|
-
override fun onChildEndedNativeGesture(
|
|
83
|
-
view: View,
|
|
84
|
-
event: MotionEvent,
|
|
85
|
-
) {
|
|
86
|
-
jsTouchDispatcher.onChildEndedNativeGesture(event, eventDispatcher)
|
|
87
|
-
jsPointerDispatcher?.onChildEndedNativeGesture()
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
override fun requestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
|
|
91
|
-
// We do not pass through request of our child up the view hierarchy, as we
|
|
92
|
-
// need to keep receiving events.
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
override fun handleException(throwable: Throwable) {
|
|
96
|
-
// TODO: I need ThemedReactContext here.
|
|
97
|
-
// TODO: Determine where it is initially created & verify its lifecycle
|
|
98
|
-
// reactContext?.reactApplicationContext?.handleException(RuntimeException(throwable))
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
companion object {
|
|
102
|
-
const val TAG = "BottomSheetDialogRootView"
|
|
103
|
-
}
|
|
104
|
-
}
|
package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogScreen.kt
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
package com.swmansion.rnscreens.legacy.bottomsheet
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
5
|
-
import com.swmansion.rnscreens.legacy.ScreenModalFragment
|
|
6
|
-
import java.lang.ref.WeakReference
|
|
7
|
-
|
|
8
|
-
class BottomSheetDialogScreen(
|
|
9
|
-
context: Context,
|
|
10
|
-
fragment: ScreenModalFragment,
|
|
11
|
-
) : BottomSheetDialog(context) {
|
|
12
|
-
private val fragmentRef: WeakReference<ScreenModalFragment> = WeakReference(fragment)
|
|
13
|
-
|
|
14
|
-
// There are various code paths leading to this method, however the one I'm concerned with
|
|
15
|
-
// is dismissal via swipe-down. If the sheet is dismissed we don't want the native dismiss logic
|
|
16
|
-
// to run, as this will lead to inconsistencies in ScreenStack state. Instead we intercept
|
|
17
|
-
// dismiss intention and run our logic.
|
|
18
|
-
override fun cancel() {
|
|
19
|
-
fragmentRef.get()!!.dismissFromContainer()
|
|
20
|
-
this.show()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
companion object {
|
|
24
|
-
val TAG = BottomSheetDialogScreen::class.simpleName
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
const StackHeaderConfig = _reactNative.View;
|
|
9
|
-
var _default = exports.default = StackHeaderConfig;
|
|
10
|
-
//# sourceMappingURL=StackHeaderConfig.web.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","StackHeaderConfig","View","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/stack/header/StackHeaderConfig.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAGC,iBAAI;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEhBJ,iBAAiB","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/tabs/host/TabsHost.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","TabsHost","View","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/tabs/host/TabsHost.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAGC,iBAAI;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEPJ,QAAQ","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/tabs/screen/TabsScreen.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","TabsScreen","View","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["components/tabs/screen/TabsScreen.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,UAAU,GAAGC,iBAAI;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAETJ,UAAU","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["View","StackHeaderConfig"],"sourceRoot":"../../../../../src","sources":["components/stack/header/StackHeaderConfig.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,iBAAiB,GAAGD,IAAI;AAE9B,eAAeC,iBAAiB","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/tabs/host/TabsHost.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["View","TabsHost"],"sourceRoot":"../../../../../src","sources":["components/tabs/host/TabsHost.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,QAAQ,GAAGD,IAAI;AAErB,eAAeC,QAAQ","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/tabs/screen/TabsScreen.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["View","TabsScreen"],"sourceRoot":"../../../../../src","sources":["components/tabs/screen/TabsScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,UAAU,GAAGD,IAAI;AAEvB,eAAeC,UAAU","ignoreList":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
declare const StackHeaderConfig: (props: Omit<import("react-native").ViewProps, keyof {
|
|
2
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
3
|
-
}> & {
|
|
4
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
5
|
-
}) => React.ReactNode;
|
|
6
|
-
export default StackHeaderConfig;
|
|
7
|
-
//# sourceMappingURL=StackHeaderConfig.web.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StackHeaderConfig.web.d.ts","sourceRoot":"","sources":["../../../../../src/components/stack/header/StackHeaderConfig.web.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,iBAAiB;OAG+hB,CAAC;;OAAmD,CAAC;qBAH7kB,CAAC;AAE/B,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
declare const TabsHost: (props: Omit<import("react-native").ViewProps, keyof {
|
|
2
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
3
|
-
}> & {
|
|
4
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
5
|
-
}) => React.ReactNode;
|
|
6
|
-
export default TabsHost;
|
|
7
|
-
//# sourceMappingURL=TabsHost.web.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabsHost.web.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/host/TabsHost.web.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,QAAQ;OAG0jB,CAAC;;OAAmD,CAAC;qBAHxmB,CAAC;AAEtB,eAAe,QAAQ,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
declare const TabsScreen: (props: Omit<import("react-native").ViewProps, keyof {
|
|
2
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
3
|
-
}> & {
|
|
4
|
-
ref?: React.Ref<import("react-native").ViewInstance> | undefined;
|
|
5
|
-
}) => React.ReactNode;
|
|
6
|
-
export default TabsScreen;
|
|
7
|
-
//# sourceMappingURL=TabsScreen.web.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabsScreen.web.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/screen/TabsScreen.web.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU;OAGojB,CAAC;;OAAmD,CAAC;qBAHlmB,CAAC;AAExB,eAAe,UAAU,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TS module resolution does not support this RN platform extension pattern out of the box.
|
|
3
|
-
* Without a base .tsx file, TS will throw a "Cannot find module" error.
|
|
4
|
-
*
|
|
5
|
-
* This file satisfies the TS compiler by providing the correct type signatures,
|
|
6
|
-
* whereas Metro will handle the proper runtime file resolution.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import type {
|
|
11
|
-
StackHeaderConfigProps,
|
|
12
|
-
StackHeaderConfigRef,
|
|
13
|
-
} from './StackHeaderConfig.types';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
|
|
17
|
-
*/
|
|
18
|
-
declare const StackHeaderConfig: React.ForwardRefExoticComponent<
|
|
19
|
-
StackHeaderConfigProps & React.RefAttributes<StackHeaderConfigRef>
|
|
20
|
-
>;
|
|
21
|
-
|
|
22
|
-
export default StackHeaderConfig;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TS module resolution does not support this RN platform extension pattern out of the box.
|
|
3
|
-
* Without a base .tsx file, TS will throw a "Cannot find module" error.
|
|
4
|
-
*
|
|
5
|
-
* This file satisfies the TS compiler by providing the correct type signatures,
|
|
6
|
-
* whereas Metro will handle the proper runtime file resolution.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import { TabsHostProps } from './TabsHost.types';
|
|
11
|
-
|
|
12
|
-
export default function TabsHost(props: TabsHostProps): React.JSX.Element;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TS module resolution does not support this RN platform extension pattern out of the box.
|
|
3
|
-
* Without a base .tsx file, TS will throw a "Cannot find module" error.
|
|
4
|
-
*
|
|
5
|
-
* This file satisfies the TS compiler by providing the correct type signatures,
|
|
6
|
-
* whereas Metro will handle the proper runtime file resolution.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import React from 'react';
|
|
10
|
-
import { TabsScreenProps } from './TabsScreen.types';
|
|
11
|
-
|
|
12
|
-
export default function TabsScreen(props: TabsScreenProps): React.JSX.Element;
|