react-native-screens 4.12.0 → 4.13.0
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/RNScreens.podspec +29 -2
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +4 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +9 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +0 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +4 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +4 -4
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingViewManager.kt +8 -2
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAnimationDelegate.kt +1 -2
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenEventEmitter.kt +16 -13
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/BaseEventEmitter.kt +22 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/FragmentProviding.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/NamingAwareEventType.kt +13 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/EventHelpers.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/FragmentManagerHelper.kt +76 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/SystemDrawable.kt +33 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreen.kt +101 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenDelegate.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenEventEmitter.kt +46 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenFragment.kt +37 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenViewManager.kt +178 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt +433 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostEventEmitter.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostViewManager.kt +177 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidAppearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidDisappearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenWillAppearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenWillDisappearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabsHostNativeFocusChangeEvent.kt +36 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/views/ChildDrawingOrderStrategyImpl.kt +0 -1
- package/android/src/main/java/com/swmansion/rnscreens/transition/ExternalBoundaryValuesEvaluator.kt +9 -2
- package/android/src/main/java/com/swmansion/rnscreens/utils/FragmentTransactionKt.kt +4 -1
- package/android/src/main/jni/rnscreens.h +1 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerDelegate.java +76 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerInterface.java +33 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerDelegate.java +97 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerInterface.java +40 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +2 -2
- package/android/src/versioned/backgroundcolor/76/ViewBackgroundUtils.kt +0 -1
- package/android/src/versioned/backgroundcolor/latest/ViewBackgroundUtils.kt +0 -3
- package/android/src/versioned/pointerevents/77/com/swmansion/rnscreens/PointerEventsBoxNoneImpl.kt +1 -1
- package/android/src/versioned/pointerevents/latest/com/swmansion/rnscreens/PointerEventsBoxNoneImpl.kt +1 -1
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsComponentDescriptor.h +31 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsShadowNode.cpp +20 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsShadowNode.h +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsState.cpp +22 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsState.h +44 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +8 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenComponentDescriptor.h +40 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.cpp +13 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.h +36 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenState.h +32 -0
- package/cpp/RNScreensTurboModule.h +5 -0
- package/ios/RNSEnums.h +6 -0
- package/ios/RNSScreen.h +2 -1
- package/ios/RNSScreen.mm +48 -1
- package/ios/RNSScreenContainer.mm +6 -0
- package/ios/RNSScreenStack.h +3 -1
- package/ios/RNSScreenStack.mm +39 -2
- package/ios/RNSScreenStackHeaderConfig.mm +1 -1
- package/ios/RNSScrollViewBehaviorOverriding.h +24 -0
- package/ios/RNSScrollViewFinder.h +13 -0
- package/ios/RNSScrollViewFinder.mm +22 -0
- package/ios/RNSScrollViewHelper.h +10 -0
- package/ios/RNSScrollViewHelper.mm +15 -0
- package/ios/RNScreens-Bridging-Header.h +4 -0
- package/ios/UIScrollView+RNScreens.h +14 -0
- package/ios/UIScrollView+RNScreens.mm +15 -0
- package/ios/bottom-tabs/RCTConvert+RNSBottomTabs.h +18 -0
- package/ios/bottom-tabs/RCTConvert+RNSBottomTabs.mm +25 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentView.h +80 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentView.mm +486 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentViewManager.h +11 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentViewManager.mm +48 -0
- package/ios/bottom-tabs/RNSBottomTabsHostEventEmitter.h +53 -0
- package/ios/bottom-tabs/RNSBottomTabsHostEventEmitter.mm +57 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentView.h +95 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentView.mm +492 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentViewManager.h +9 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentViewManager.mm +55 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenEventEmitter.h +53 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenEventEmitter.mm +106 -0
- package/ios/bottom-tabs/RNSBottomTabsSpecialEffectsSupporting.h +17 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceCoordinator.h +34 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceCoordinator.mm +243 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceProvider.h +23 -0
- package/ios/bottom-tabs/RNSTabBarController.h +132 -0
- package/ios/bottom-tabs/RNSTabBarController.mm +206 -0
- package/ios/bottom-tabs/RNSTabBarControllerDelegate.h +9 -0
- package/ios/bottom-tabs/RNSTabBarControllerDelegate.mm +63 -0
- package/ios/bottom-tabs/RNSTabsScreenViewController.h +42 -0
- package/ios/bottom-tabs/RNSTabsScreenViewController.mm +105 -0
- package/ios/bottom-tabs/extensions/RNSBottomTabsHostComponentView+RNSImageLoader.h +21 -0
- package/ios/bottom-tabs/extensions/RNSBottomTabsHostComponentView+RNSImageLoader.mm +22 -0
- package/ios/bridging/RNSReactBaseView.h +31 -0
- package/ios/bridging/RNSReactBaseView.mm +5 -0
- package/ios/bridging/Swift-Bridging.h +7 -0
- package/ios/conversion/RNSConversions-BottomTabs.mm +216 -0
- package/ios/conversion/RNSConversions-SplitView.mm +63 -0
- package/ios/conversion/RNSConversions.h +53 -0
- package/ios/gamma/ReactMountingTransactionObserving.swift +7 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentView.h +29 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentView.mm +209 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.h +11 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.mm +7 -0
- package/ios/gamma/split-view/RNSSplitViewHostController.swift +98 -0
- package/ios/gamma/split-view/RNSSplitViewNavigationController.swift +31 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentView.h +24 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentView.mm +106 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.h +11 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.mm +7 -0
- package/ios/gamma/split-view/RNSSplitViewScreenController.swift +86 -0
- package/ios/gamma/split-view/RNSSplitViewScreenShadowStateProxy.h +35 -0
- package/ios/gamma/split-view/RNSSplitViewScreenShadowStateProxy.mm +56 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentView.h +16 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentView.mm +143 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentViewManager.h +11 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentViewManager.mm +7 -0
- package/ios/gamma/stack/RNSStackController.swift +65 -0
- package/ios/gamma/stack/RNSStackScreenComponentEventEmitter.h +37 -0
- package/ios/gamma/stack/RNSStackScreenComponentEventEmitter.mm +60 -0
- package/ios/gamma/stack/RNSStackScreenComponentView.h +36 -0
- package/ios/gamma/stack/RNSStackScreenComponentView.mm +124 -0
- package/ios/gamma/stack/RNSStackScreenComponentViewManager.h +11 -0
- package/ios/gamma/stack/RNSStackScreenComponentViewManager.mm +7 -0
- package/ios/gamma/stack/RNSStackScreenController.swift +56 -0
- package/ios/utils/NSString+RNSUtility.h +17 -0
- package/ios/utils/NSString+RNSUtility.mm +37 -0
- package/lib/commonjs/components/BottomTabs.js +54 -0
- package/lib/commonjs/components/BottomTabs.js.map +1 -0
- package/lib/commonjs/components/BottomTabsScreen.js +149 -0
- package/lib/commonjs/components/BottomTabsScreen.js.map +1 -0
- package/lib/commonjs/components/gamma/ScreenStackHost.js +27 -0
- package/lib/commonjs/components/gamma/ScreenStackHost.js.map +1 -0
- package/lib/commonjs/components/gamma/SplitViewHost.js +57 -0
- package/lib/commonjs/components/gamma/SplitViewHost.js.map +1 -0
- package/lib/commonjs/components/gamma/SplitViewScreen.js +22 -0
- package/lib/commonjs/components/gamma/SplitViewScreen.js.map +1 -0
- package/lib/commonjs/components/gamma/StackScreen.js +51 -0
- package/lib/commonjs/components/gamma/StackScreen.js.map +1 -0
- package/lib/commonjs/fabric/BottomTabsNativeComponent.js +19 -0
- package/lib/commonjs/fabric/BottomTabsNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/BottomTabsScreenNativeComponent.js +14 -0
- package/lib/commonjs/fabric/BottomTabsScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/ScreenStackHostNativeComponent.js +11 -0
- package/lib/commonjs/fabric/gamma/ScreenStackHostNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js +11 -0
- package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js +13 -0
- package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/StackScreenNativeComponent.js +12 -0
- package/lib/commonjs/fabric/gamma/StackScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/flags.js +70 -0
- package/lib/commonjs/flags.js.map +1 -0
- package/lib/commonjs/index.js +66 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +0 -28
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/components/BottomTabs.js +48 -0
- package/lib/module/components/BottomTabs.js.map +1 -0
- package/lib/module/components/BottomTabsScreen.js +144 -0
- package/lib/module/components/BottomTabsScreen.js.map +1 -0
- package/lib/module/components/gamma/ScreenStackHost.js +20 -0
- package/lib/module/components/gamma/ScreenStackHost.js.map +1 -0
- package/lib/module/components/gamma/SplitViewHost.js +50 -0
- package/lib/module/components/gamma/SplitViewHost.js.map +1 -0
- package/lib/module/components/gamma/SplitViewScreen.js +15 -0
- package/lib/module/components/gamma/SplitViewScreen.js.map +1 -0
- package/lib/module/components/gamma/StackScreen.js +44 -0
- package/lib/module/components/gamma/StackScreen.js.map +1 -0
- package/lib/module/fabric/BottomTabsNativeComponent.js +15 -0
- package/lib/module/fabric/BottomTabsNativeComponent.js.map +1 -0
- package/lib/module/fabric/BottomTabsScreenNativeComponent.js +12 -0
- package/lib/module/fabric/BottomTabsScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/ScreenStackHostNativeComponent.js +5 -0
- package/lib/module/fabric/gamma/ScreenStackHostNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js +5 -0
- package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js +7 -0
- package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/StackScreenNativeComponent.js +8 -0
- package/lib/module/fabric/gamma/StackScreenNativeComponent.js.map +1 -0
- package/lib/module/flags.js +64 -0
- package/lib/module/flags.js.map +1 -0
- package/lib/module/index.js +16 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +0 -27
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/components/BottomTabs.d.ts +30 -0
- package/lib/typescript/components/BottomTabs.d.ts.map +1 -0
- package/lib/typescript/components/BottomTabsScreen.d.ts +56 -0
- package/lib/typescript/components/BottomTabsScreen.d.ts.map +1 -0
- package/lib/typescript/components/gamma/ScreenStackHost.d.ts +13 -0
- package/lib/typescript/components/gamma/ScreenStackHost.d.ts.map +1 -0
- package/lib/typescript/components/gamma/SplitViewHost.d.ts +13 -0
- package/lib/typescript/components/gamma/SplitViewHost.d.ts.map +1 -0
- package/lib/typescript/components/gamma/SplitViewScreen.d.ts +13 -0
- package/lib/typescript/components/gamma/SplitViewScreen.d.ts.map +1 -0
- package/lib/typescript/components/gamma/StackScreen.d.ts +21 -0
- package/lib/typescript/components/gamma/StackScreen.d.ts.map +1 -0
- package/lib/typescript/fabric/BottomTabsNativeComponent.d.ts +31 -0
- package/lib/typescript/fabric/BottomTabsNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/BottomTabsScreenNativeComponent.d.ts +51 -0
- package/lib/typescript/fabric/BottomTabsScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/ScreenStackHostNativeComponent.d.ts +7 -0
- package/lib/typescript/fabric/gamma/ScreenStackHostNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts +16 -0
- package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts +7 -0
- package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/StackScreenNativeComponent.d.ts +15 -0
- package/lib/typescript/fabric/gamma/StackScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/flags.d.ts +45 -0
- package/lib/typescript/flags.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +14 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +0 -26
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +34 -6
- package/react-native.config.js +2 -1
- package/src/components/BottomTabs.tsx +115 -0
- package/src/components/BottomTabsScreen.tsx +291 -0
- package/src/components/gamma/ScreenStackHost.tsx +32 -0
- package/src/components/gamma/SplitViewHost.tsx +84 -0
- package/src/components/gamma/SplitViewScreen.tsx +26 -0
- package/src/components/gamma/StackScreen.tsx +64 -0
- package/src/fabric/BottomTabsNativeComponent.ts +82 -0
- package/src/fabric/BottomTabsScreenNativeComponent.ts +107 -0
- package/src/fabric/gamma/ScreenStackHostNativeComponent.ts +8 -0
- package/src/fabric/gamma/SplitViewHostNativeComponent.ts +39 -0
- package/src/fabric/gamma/SplitViewScreenNativeComponent.ts +10 -0
- package/src/fabric/gamma/StackScreenNativeComponent.ts +25 -0
- package/src/flags.ts +72 -0
- package/src/index.tsx +18 -1
- package/src/utils.ts +0 -28
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import type { ViewProps } from 'react-native';
|
|
4
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
5
|
+
import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
|
|
6
|
+
|
|
7
|
+
export type SplitViewSplitBehavior =
|
|
8
|
+
| 'automatic'
|
|
9
|
+
| 'displace'
|
|
10
|
+
| 'overlay'
|
|
11
|
+
| 'tile';
|
|
12
|
+
|
|
13
|
+
export type SplitViewPrimaryEdge = 'leading' | 'trailing';
|
|
14
|
+
|
|
15
|
+
export type SplitViewDisplayMode =
|
|
16
|
+
| 'automatic'
|
|
17
|
+
| 'secondaryOnly'
|
|
18
|
+
| 'oneBesideSecondary'
|
|
19
|
+
| 'oneOverSecondary'
|
|
20
|
+
| 'twoBesideSecondary'
|
|
21
|
+
| 'twoOverSecondary'
|
|
22
|
+
| 'twoDisplaceSecondary';
|
|
23
|
+
|
|
24
|
+
export interface NativeProps extends ViewProps {
|
|
25
|
+
// Appearance
|
|
26
|
+
|
|
27
|
+
displayMode?: WithDefault<SplitViewDisplayMode, 'automatic'>;
|
|
28
|
+
splitBehavior?: WithDefault<SplitViewSplitBehavior, 'automatic'>;
|
|
29
|
+
primaryEdge?: WithDefault<SplitViewPrimaryEdge, 'leading'>;
|
|
30
|
+
|
|
31
|
+
// NOTE: this setter cannot change the value dynamically, even in pure native app
|
|
32
|
+
showSecondaryToggleButton?: WithDefault<boolean, false>;
|
|
33
|
+
|
|
34
|
+
// Interactions
|
|
35
|
+
|
|
36
|
+
presentsWithGesture?: WithDefault<boolean, true>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default codegenNativeComponent<NativeProps>('RNSSplitViewHost', {});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import type { ViewProps } from 'react-native';
|
|
4
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
5
|
+
|
|
6
|
+
export interface NativeProps extends ViewProps {}
|
|
7
|
+
|
|
8
|
+
export default codegenNativeComponent<NativeProps>('RNSSplitViewScreen', {
|
|
9
|
+
interfaceOnly: true,
|
|
10
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import type { ViewProps } from 'react-native';
|
|
4
|
+
import {
|
|
5
|
+
DirectEventHandler,
|
|
6
|
+
Int32,
|
|
7
|
+
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
8
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
11
|
+
export type GenericEmptyEvent = Readonly<{}>;
|
|
12
|
+
|
|
13
|
+
export interface NativeProps extends ViewProps {
|
|
14
|
+
// Control
|
|
15
|
+
maxLifecycleState: Int32;
|
|
16
|
+
screenKey: string;
|
|
17
|
+
|
|
18
|
+
// Events
|
|
19
|
+
onWillAppear?: DirectEventHandler<GenericEmptyEvent>;
|
|
20
|
+
onDidAppear?: DirectEventHandler<GenericEmptyEvent>;
|
|
21
|
+
onWillDisappear?: DirectEventHandler<GenericEmptyEvent>;
|
|
22
|
+
onDidDisappear?: DirectEventHandler<GenericEmptyEvent>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default codegenNativeComponent<NativeProps>('RNSStackScreen', {});
|
package/src/flags.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
const RNS_CONTROLLED_BOTTOM_TABS_DEFAULT = true;
|
|
2
|
+
|
|
3
|
+
// TODO: Migrate freeze here
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Exposes information useful for downstream navigation library implementers,
|
|
7
|
+
* so they can keep reasonable backward compatibility, if desired.
|
|
8
|
+
*
|
|
9
|
+
* We don't mean for this object to only grow in number of fields, however at the same time
|
|
10
|
+
* we won't be very hasty to reduce it. Expect gradual changes.
|
|
11
|
+
*/
|
|
12
|
+
export const compatibilityFlags = {
|
|
13
|
+
/**
|
|
14
|
+
* Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646
|
|
15
|
+
* react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726
|
|
16
|
+
* To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.
|
|
17
|
+
* See https://github.com/react-navigation/react-navigation/pull/11423 for more context.
|
|
18
|
+
*/
|
|
19
|
+
isNewBackTitleImplementation: true,
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* With version 4.0.0 the header implementation has been changed. To allow for backward compat
|
|
23
|
+
* with native-stack@v6 we want to expose a way to check whether the new implementation
|
|
24
|
+
* is in use or not.
|
|
25
|
+
*
|
|
26
|
+
* See:
|
|
27
|
+
* * https://github.com/software-mansion/react-native-screens/pull/2325
|
|
28
|
+
* * https://github.com/react-navigation/react-navigation/pull/12125
|
|
29
|
+
*/
|
|
30
|
+
usesHeaderFlexboxImplementation: true,
|
|
31
|
+
} as const;
|
|
32
|
+
|
|
33
|
+
const _featureFlags = {
|
|
34
|
+
experiment: {
|
|
35
|
+
controlledBottomTabs: RNS_CONTROLLED_BOTTOM_TABS_DEFAULT,
|
|
36
|
+
},
|
|
37
|
+
stable: {},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Exposes configurable global behaviour of the library.
|
|
42
|
+
*
|
|
43
|
+
* Most of these can be overridden on particular component level, these are global switches.
|
|
44
|
+
*/
|
|
45
|
+
export const featureFlags = {
|
|
46
|
+
/**
|
|
47
|
+
* Flags to enable experimental features. These might be removed w/o notice or moved to stable.
|
|
48
|
+
*/
|
|
49
|
+
experiment: {
|
|
50
|
+
get controlledBottomTabs() {
|
|
51
|
+
return _featureFlags.experiment.controlledBottomTabs;
|
|
52
|
+
},
|
|
53
|
+
set controlledBottomTabs(value: boolean) {
|
|
54
|
+
if (
|
|
55
|
+
value !== _featureFlags.experiment.controlledBottomTabs &&
|
|
56
|
+
_featureFlags.experiment.controlledBottomTabs !==
|
|
57
|
+
RNS_CONTROLLED_BOTTOM_TABS_DEFAULT
|
|
58
|
+
) {
|
|
59
|
+
console.error(
|
|
60
|
+
`[RNScreens] controlledBottomTabs feature flag modified for a second time; this might lead to unexpected effects`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
_featureFlags.experiment.controlledBottomTabs = value;
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* Section for stable flags, which can be used to configure library behaviour.
|
|
68
|
+
*/
|
|
69
|
+
stable: {},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export default featureFlags;
|
package/src/index.tsx
CHANGED
|
@@ -46,11 +46,28 @@ export { default as ScreenContentWrapper } from './components/ScreenContentWrapp
|
|
|
46
46
|
*/
|
|
47
47
|
export {
|
|
48
48
|
isSearchBarAvailableForCurrentPlatform,
|
|
49
|
-
compatibilityFlags,
|
|
50
49
|
executeNativeBackPress,
|
|
51
50
|
} from './utils';
|
|
52
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Flags
|
|
54
|
+
*/
|
|
55
|
+
export { compatibilityFlags, featureFlags } from './flags';
|
|
56
|
+
|
|
53
57
|
/**
|
|
54
58
|
* Hooks
|
|
55
59
|
*/
|
|
56
60
|
export { default as useTransitionProgress } from './useTransitionProgress';
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* EXPERIMENTAL API BELOW. MIGHT CHANGE W/O ANY NOTICE
|
|
64
|
+
*/
|
|
65
|
+
export { default as BottomTabs } from './components/BottomTabs';
|
|
66
|
+
export { default as BottomTabsScreen } from './components/BottomTabsScreen';
|
|
67
|
+
export { default as ScreenStackHost } from './components/gamma/ScreenStackHost';
|
|
68
|
+
export {
|
|
69
|
+
default as StackScreen,
|
|
70
|
+
StackScreenLifecycleState,
|
|
71
|
+
} from './components/gamma/StackScreen';
|
|
72
|
+
export { default as SplitViewHost } from './components/gamma/SplitViewHost';
|
|
73
|
+
export { default as SplitViewScreen } from './components/gamma/SplitViewScreen';
|
package/src/utils.ts
CHANGED
|
@@ -10,31 +10,3 @@ export function executeNativeBackPress() {
|
|
|
10
10
|
BackHandler.exitApp();
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Exposes information useful for downstream navigation library implementers,
|
|
16
|
-
* so they can keep reasonable backward compatibility, if desired.
|
|
17
|
-
*
|
|
18
|
-
* We don't mean for this object to only grow in number of fields, however at the same time
|
|
19
|
-
* we won't be very hasty to reduce it. Expect gradual changes.
|
|
20
|
-
*/
|
|
21
|
-
export const compatibilityFlags = {
|
|
22
|
-
/**
|
|
23
|
-
* Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646
|
|
24
|
-
* react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726
|
|
25
|
-
* To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.
|
|
26
|
-
* See https://github.com/react-navigation/react-navigation/pull/11423 for more context.
|
|
27
|
-
*/
|
|
28
|
-
isNewBackTitleImplementation: true,
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* With version 4.0.0 the header implementation has been changed. To allow for backward compat
|
|
32
|
-
* with native-stack@v6 we want to expose a way to check whether the new implementation
|
|
33
|
-
* is in use or not.
|
|
34
|
-
*
|
|
35
|
-
* See:
|
|
36
|
-
* * https://github.com/software-mansion/react-native-screens/pull/2325
|
|
37
|
-
* * https://github.com/react-navigation/react-navigation/pull/12125
|
|
38
|
-
*/
|
|
39
|
-
usesHeaderFlexboxImplementation: true,
|
|
40
|
-
};
|