react-native-screens 3.20.0 → 3.21.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/README.md +2 -1
- package/RNScreens.podspec +1 -1
- package/android/build.gradle +24 -6
- package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +4 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +7 -9
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +12 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +32 -8
- package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +36 -15
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +26 -0
- package/android/src/main/res/base/anim/rns_standard_accelerate_interpolator.xml +6 -0
- package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +38 -0
- package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +38 -0
- package/android/src/main/res/v33/anim-v33/rns_default_exit_in.xml +38 -0
- package/android/src/main/res/v33/anim-v33/rns_default_exit_out.xml +38 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +15 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +5 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +3 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +1 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +1 -2
- package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +11 -0
- package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +14 -0
- package/ios/RNSConvert.h +8 -2
- package/ios/RNSConvert.mm +28 -2
- package/ios/RNSEnums.h +6 -0
- package/ios/RNSFullWindowOverlay.h +5 -5
- package/ios/RNSFullWindowOverlay.mm +13 -13
- package/ios/RNSScreen.h +14 -6
- package/ios/RNSScreen.mm +129 -28
- package/ios/RNSScreenContainer.h +2 -2
- package/ios/RNSScreenContainer.mm +5 -5
- package/ios/RNSScreenNavigationContainer.mm +3 -3
- package/ios/RNSScreenStack.h +4 -4
- package/ios/RNSScreenStack.mm +62 -23
- package/ios/RNSScreenStackHeaderConfig.h +10 -3
- package/ios/RNSScreenStackHeaderConfig.mm +138 -81
- package/ios/RNSScreenStackHeaderSubview.h +5 -6
- package/ios/RNSScreenStackHeaderSubview.mm +20 -11
- package/ios/RNSScreenWindowTraits.mm +21 -2
- package/ios/RNSSearchBar.h +5 -4
- package/ios/RNSSearchBar.mm +87 -12
- package/ios/RNScreens.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/RNScreens.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/RNScreens.xcodeproj/project.xcworkspace/xcuserdata/wojciechlewicki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNScreens.xcodeproj/xcuserdata/wojciechlewicki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -8
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -8
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +7 -7
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.native.js +50 -10
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/index.js.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -16
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/native-stack/types.js.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +1 -0
- package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/commonjs/native-stack/views/HeaderConfig.js +3 -1
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +14 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/commonjs/reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useTransitionProgress.js.map +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -5
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -5
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js +0 -5
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -6
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -6
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js +0 -5
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +4 -6
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.native.js +51 -10
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js +18 -16
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/native-stack/types.js.map +1 -1
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/views/FontProcessor.js +1 -0
- package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/module/native-stack/views/HeaderConfig.js +3 -1
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +15 -1
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/useTransitionProgress.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/TransitionProgressContext.d.ts +1 -1
- package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/ScreenNativeComponent.d.ts +62 -0
- package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +34 -0
- package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +9 -0
- package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +9 -0
- package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +46 -0
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/native-stack/types.d.ts +64 -10
- package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -1
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts +1 -1
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -1
- package/lib/typescript/types.d.ts +90 -11
- package/lib/typescript/useTransitionProgress.d.ts +3 -3
- package/native-stack/README.md +59 -1
- package/package.json +11 -14
- package/src/fabric/FullWindowOverlayNativeComponent.ts +6 -0
- package/src/fabric/ScreenContainerNativeComponent.ts +6 -0
- package/src/fabric/ScreenNativeComponent.ts +97 -0
- package/src/fabric/ScreenNavigationContainerNativeComponent.ts +9 -0
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +43 -0
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +20 -0
- package/src/fabric/ScreenStackNativeComponent.ts +12 -0
- package/src/fabric/SearchBarNativeComponent.ts +73 -0
- package/src/index.native.tsx +107 -14
- package/src/index.tsx +4 -3
- package/src/native-stack/navigators/createNativeStackNavigator.tsx +23 -19
- package/src/native-stack/types.tsx +55 -0
- package/src/native-stack/views/FontProcessor.tsx +1 -0
- package/src/native-stack/views/HeaderConfig.tsx +3 -1
- package/src/native-stack/views/NativeStackView.tsx +14 -2
- package/src/types.tsx +84 -2
- package/createNativeStackNavigator/README.md +0 -522
- package/createNativeStackNavigator/package.json +0 -6
- package/lib/commonjs/createNativeStackNavigator.js +0 -374
- package/lib/commonjs/createNativeStackNavigator.js.map +0 -1
- package/lib/module/createNativeStackNavigator.js +0 -366
- package/lib/module/createNativeStackNavigator.js.map +0 -1
- package/lib/typescript/createNativeStackNavigator.d.ts +0 -51
- package/src/createNativeStackNavigator.tsx +0 -594
- package/src/fabric/FullWindowOverlayNativeComponent.js +0 -19
- package/src/fabric/ScreenContainerNativeComponent.js +0 -19
- package/src/fabric/ScreenNativeComponent.js +0 -97
- package/src/fabric/ScreenNavigationContainerNativeComponent.js +0 -19
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -54
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -31
- package/src/fabric/ScreenStackNativeComponent.js +0 -23
- package/src/fabric/SearchBarNativeComponent.js +0 -62
- /package/android/src/main/res/{anim → base/anim}/rns_default_enter_in.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_default_enter_out.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_default_exit_in.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_default_exit_out.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_fade_from_bottom.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_fade_in.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_fade_out.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_fade_to_bottom.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_no_animation_20.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_no_animation_250.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_no_animation_350.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_no_animation_medium.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_bottom.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_left.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_in_from_right.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_bottom.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_left.xml +0 -0
- /package/android/src/main/res/{anim → base/anim}/rns_slide_out_to_right.xml +0 -0
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Platform, StyleSheet } from 'react-native';
|
|
4
|
-
import { ScreenContext, ScreenStack, ScreenStackHeaderBackButtonImage, ScreenStackHeaderCenterView, ScreenStackHeaderConfig, ScreenStackHeaderLeftView, ScreenStackHeaderRightView, ScreenStackHeaderSearchBarView, SearchBar } from 'react-native-screens';
|
|
5
|
-
import { createNavigator, SceneView, StackActions, StackRouter } from 'react-navigation';
|
|
6
|
-
import { HeaderBackButton } from 'react-navigation-stack';
|
|
7
|
-
const REMOVE_ACTION = 'NativeStackNavigator/REMOVE';
|
|
8
|
-
const isAndroid = Platform.OS === 'android';
|
|
9
|
-
let didWarn = isAndroid;
|
|
10
|
-
function renderComponentOrThunk(componentOrThunk, props) {
|
|
11
|
-
if (typeof componentOrThunk === 'function') {
|
|
12
|
-
return componentOrThunk(props);
|
|
13
|
-
}
|
|
14
|
-
return componentOrThunk;
|
|
15
|
-
}
|
|
16
|
-
function removeScene(route, dismissCount, navigation) {
|
|
17
|
-
navigation.dispatch({
|
|
18
|
-
// @ts-ignore special navigation action for native stack
|
|
19
|
-
type: REMOVE_ACTION,
|
|
20
|
-
immediate: true,
|
|
21
|
-
key: route.key,
|
|
22
|
-
dismissCount
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
function onAppear(route, descriptor, navigation) {
|
|
26
|
-
var _descriptor$options, _descriptor$options$o;
|
|
27
|
-
(_descriptor$options = descriptor.options) === null || _descriptor$options === void 0 ? void 0 : (_descriptor$options$o = _descriptor$options.onAppear) === null || _descriptor$options$o === void 0 ? void 0 : _descriptor$options$o.call(_descriptor$options);
|
|
28
|
-
navigation.dispatch(StackActions.completeTransition({
|
|
29
|
-
toChildKey: route.key,
|
|
30
|
-
key: navigation.state.key
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
function onFinishTransitioning(navigation) {
|
|
34
|
-
const {
|
|
35
|
-
routes
|
|
36
|
-
} = navigation.state;
|
|
37
|
-
const lastRoute = (routes === null || routes === void 0 ? void 0 : routes.length) && routes[routes.length - 1];
|
|
38
|
-
if (lastRoute) {
|
|
39
|
-
navigation.dispatch(StackActions.completeTransition({
|
|
40
|
-
toChildKey: lastRoute.key,
|
|
41
|
-
key: navigation.state.key
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function renderHeaderConfig(index, route, descriptor, navigationConfig) {
|
|
46
|
-
const {
|
|
47
|
-
options
|
|
48
|
-
} = descriptor;
|
|
49
|
-
const {
|
|
50
|
-
headerMode
|
|
51
|
-
} = navigationConfig;
|
|
52
|
-
const {
|
|
53
|
-
backButtonInCustomView,
|
|
54
|
-
direction,
|
|
55
|
-
disableBackButtonMenu,
|
|
56
|
-
headerBackTitle,
|
|
57
|
-
headerBackTitleStyle,
|
|
58
|
-
headerBackTitleVisible,
|
|
59
|
-
headerHideBackButton,
|
|
60
|
-
headerHideShadow,
|
|
61
|
-
headerLargeStyle,
|
|
62
|
-
headerLargeTitle,
|
|
63
|
-
headerLargeTitleHideShadow,
|
|
64
|
-
headerLargeTitleStyle,
|
|
65
|
-
headerShown,
|
|
66
|
-
headerStyle,
|
|
67
|
-
headerTintColor,
|
|
68
|
-
headerTitleStyle,
|
|
69
|
-
headerTopInsetEnabled = true,
|
|
70
|
-
headerTranslucent,
|
|
71
|
-
hideShadow,
|
|
72
|
-
largeTitle,
|
|
73
|
-
largeTitleHideShadow,
|
|
74
|
-
title,
|
|
75
|
-
translucent
|
|
76
|
-
} = options;
|
|
77
|
-
const scene = {
|
|
78
|
-
index,
|
|
79
|
-
key: route.key,
|
|
80
|
-
route,
|
|
81
|
-
descriptor
|
|
82
|
-
};
|
|
83
|
-
const headerOptions = {
|
|
84
|
-
backButtonInCustomView,
|
|
85
|
-
backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,
|
|
86
|
-
backTitleFontFamily: headerBackTitleStyle === null || headerBackTitleStyle === void 0 ? void 0 : headerBackTitleStyle.fontFamily,
|
|
87
|
-
backTitleFontSize: headerBackTitleStyle === null || headerBackTitleStyle === void 0 ? void 0 : headerBackTitleStyle.fontSize,
|
|
88
|
-
color: headerTintColor,
|
|
89
|
-
direction,
|
|
90
|
-
disableBackButtonMenu,
|
|
91
|
-
topInsetEnabled: headerTopInsetEnabled,
|
|
92
|
-
hideBackButton: headerHideBackButton,
|
|
93
|
-
hideShadow: headerHideShadow || hideShadow,
|
|
94
|
-
largeTitle: headerLargeTitle || largeTitle,
|
|
95
|
-
largeTitleBackgroundColor: (headerLargeStyle === null || headerLargeStyle === void 0 ? void 0 : headerLargeStyle.backgroundColor) || ( // @ts-ignore old implementation, will not be present in TS API, but can be used here
|
|
96
|
-
headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.backgroundColor),
|
|
97
|
-
largeTitleColor: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.color,
|
|
98
|
-
largeTitleFontFamily: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontFamily,
|
|
99
|
-
largeTitleFontSize: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontSize,
|
|
100
|
-
largeTitleFontWeight: headerLargeTitleStyle === null || headerLargeTitleStyle === void 0 ? void 0 : headerLargeTitleStyle.fontWeight,
|
|
101
|
-
largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,
|
|
102
|
-
title,
|
|
103
|
-
titleColor: (headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.color) || headerTintColor,
|
|
104
|
-
titleFontFamily: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontFamily,
|
|
105
|
-
titleFontSize: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontSize,
|
|
106
|
-
titleFontWeight: headerTitleStyle === null || headerTitleStyle === void 0 ? void 0 : headerTitleStyle.fontWeight,
|
|
107
|
-
translucent: headerTranslucent || translucent || false
|
|
108
|
-
};
|
|
109
|
-
const hasHeader = headerShown !== false && headerMode !== 'none' && options.header !== null;
|
|
110
|
-
if (!hasHeader) {
|
|
111
|
-
return /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, _extends({}, headerOptions, {
|
|
112
|
-
hidden: true
|
|
113
|
-
}));
|
|
114
|
-
}
|
|
115
|
-
if (headerStyle !== undefined) {
|
|
116
|
-
headerOptions.backgroundColor = headerStyle.backgroundColor;
|
|
117
|
-
headerOptions.blurEffect = headerStyle.blurEffect;
|
|
118
|
-
}
|
|
119
|
-
const children = [];
|
|
120
|
-
if (options.backButtonImage) {
|
|
121
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderBackButtonImage, {
|
|
122
|
-
key: "backImage",
|
|
123
|
-
source: options.backButtonImage
|
|
124
|
-
}));
|
|
125
|
-
}
|
|
126
|
-
if (Platform.OS === 'ios' && options.searchBar) {
|
|
127
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderSearchBarView, null, /*#__PURE__*/React.createElement(SearchBar, options.searchBar)));
|
|
128
|
-
}
|
|
129
|
-
if (options.headerLeft !== undefined) {
|
|
130
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderLeftView, {
|
|
131
|
-
key: "left"
|
|
132
|
-
}, renderComponentOrThunk(options.headerLeft, {
|
|
133
|
-
scene
|
|
134
|
-
})));
|
|
135
|
-
} else if (options.headerBackImage !== undefined) {
|
|
136
|
-
const goBack = () => {
|
|
137
|
-
// Go back on next tick because button ripple effect needs to happen on Android
|
|
138
|
-
requestAnimationFrame(() => {
|
|
139
|
-
descriptor.navigation.goBack(descriptor.key);
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderLeftView, {
|
|
143
|
-
key: "left"
|
|
144
|
-
}, /*#__PURE__*/React.createElement(HeaderBackButton, {
|
|
145
|
-
onPress: goBack,
|
|
146
|
-
pressColorAndroid: options.headerPressColorAndroid,
|
|
147
|
-
tintColor: options.headerTintColor,
|
|
148
|
-
backImage: options.headerBackImage,
|
|
149
|
-
label: options.backButtonTitle,
|
|
150
|
-
truncatedLabel: options.truncatedBackButtonTitle,
|
|
151
|
-
labelVisible: options.backTitleVisible,
|
|
152
|
-
labelStyle: options.headerBackTitleStyle,
|
|
153
|
-
titleLayout: options.layoutPreset
|
|
154
|
-
// @ts-ignore old props kept for very old version of `react-navigation-stack`
|
|
155
|
-
,
|
|
156
|
-
title: options.backButtonTitle,
|
|
157
|
-
truncatedTitle: options.truncatedBackButtonTitle,
|
|
158
|
-
backTitleVisible: options.backTitleVisible,
|
|
159
|
-
titleStyle: options.headerBackTitleStyle,
|
|
160
|
-
layoutPreset: options.layoutPreset,
|
|
161
|
-
scene: scene
|
|
162
|
-
})));
|
|
163
|
-
}
|
|
164
|
-
if (options.headerTitle) {
|
|
165
|
-
if (title === undefined && typeof options.headerTitle === 'string') {
|
|
166
|
-
headerOptions.title = options.headerTitle;
|
|
167
|
-
} else {
|
|
168
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderCenterView, {
|
|
169
|
-
key: "center"
|
|
170
|
-
}, renderComponentOrThunk(options.headerTitle, {
|
|
171
|
-
scene
|
|
172
|
-
})));
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
if (options.headerRight) {
|
|
176
|
-
children.push( /*#__PURE__*/React.createElement(ScreenStackHeaderRightView, {
|
|
177
|
-
key: "right"
|
|
178
|
-
}, renderComponentOrThunk(options.headerRight, {
|
|
179
|
-
scene
|
|
180
|
-
})));
|
|
181
|
-
}
|
|
182
|
-
if (children.length > 0) {
|
|
183
|
-
headerOptions.children = children;
|
|
184
|
-
}
|
|
185
|
-
return /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, headerOptions);
|
|
186
|
-
}
|
|
187
|
-
const MaybeNestedStack = _ref => {
|
|
188
|
-
let {
|
|
189
|
-
isHeaderInModal,
|
|
190
|
-
screenProps,
|
|
191
|
-
route,
|
|
192
|
-
navigation,
|
|
193
|
-
SceneComponent,
|
|
194
|
-
index,
|
|
195
|
-
descriptor,
|
|
196
|
-
navigationConfig
|
|
197
|
-
} = _ref;
|
|
198
|
-
const Screen = React.useContext(ScreenContext);
|
|
199
|
-
if (isHeaderInModal) {
|
|
200
|
-
return /*#__PURE__*/React.createElement(ScreenStack, {
|
|
201
|
-
style: styles.scenes
|
|
202
|
-
}, /*#__PURE__*/React.createElement(Screen, {
|
|
203
|
-
style: StyleSheet.absoluteFill,
|
|
204
|
-
enabled: true,
|
|
205
|
-
isNativeStack: true
|
|
206
|
-
}, renderHeaderConfig(index, route, descriptor, navigationConfig), /*#__PURE__*/React.createElement(SceneView, {
|
|
207
|
-
screenProps: screenProps,
|
|
208
|
-
navigation: navigation,
|
|
209
|
-
component: SceneComponent
|
|
210
|
-
})));
|
|
211
|
-
}
|
|
212
|
-
return /*#__PURE__*/React.createElement(SceneView, {
|
|
213
|
-
screenProps: screenProps,
|
|
214
|
-
navigation: navigation,
|
|
215
|
-
component: SceneComponent
|
|
216
|
-
});
|
|
217
|
-
};
|
|
218
|
-
function StackView(_ref2) {
|
|
219
|
-
let {
|
|
220
|
-
navigation,
|
|
221
|
-
descriptors,
|
|
222
|
-
navigationConfig,
|
|
223
|
-
screenProps
|
|
224
|
-
} = _ref2;
|
|
225
|
-
const {
|
|
226
|
-
routes
|
|
227
|
-
} = navigation.state;
|
|
228
|
-
const Screen = React.useContext(ScreenContext);
|
|
229
|
-
return /*#__PURE__*/React.createElement(ScreenStack, {
|
|
230
|
-
style: styles.scenes,
|
|
231
|
-
onFinishTransitioning: () => onFinishTransitioning(navigation)
|
|
232
|
-
}, routes.map((route, index) => {
|
|
233
|
-
const descriptor = descriptors[route.key];
|
|
234
|
-
const {
|
|
235
|
-
getComponent,
|
|
236
|
-
options
|
|
237
|
-
} = descriptor;
|
|
238
|
-
const routeNavigationProp = descriptor.navigation;
|
|
239
|
-
const {
|
|
240
|
-
mode,
|
|
241
|
-
transparentCard
|
|
242
|
-
} = navigationConfig;
|
|
243
|
-
const SceneComponent = getComponent();
|
|
244
|
-
let stackPresentation = 'push';
|
|
245
|
-
if (options.stackPresentation) {
|
|
246
|
-
stackPresentation = options.stackPresentation;
|
|
247
|
-
} else {
|
|
248
|
-
// this shouldn't be used because we have a prop for that
|
|
249
|
-
if (mode === 'modal' || mode === 'containedModal') {
|
|
250
|
-
stackPresentation = mode;
|
|
251
|
-
if (transparentCard || options.cardTransparent) {
|
|
252
|
-
stackPresentation = mode === 'containedModal' ? 'containedTransparentModal' : 'transparentModal';
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
let stackAnimation = options.stackAnimation;
|
|
257
|
-
if (options.animationEnabled === false) {
|
|
258
|
-
stackAnimation = 'none';
|
|
259
|
-
}
|
|
260
|
-
const hasHeader = options.headerShown !== false && (navigationConfig === null || navigationConfig === void 0 ? void 0 : navigationConfig.headerMode) !== 'none' && options.header !== null;
|
|
261
|
-
if (!didWarn && stackPresentation !== 'push' && options.headerShown !== undefined) {
|
|
262
|
-
didWarn = true;
|
|
263
|
-
console.warn('Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.');
|
|
264
|
-
}
|
|
265
|
-
const isHeaderInModal = isAndroid ? false : stackPresentation !== 'push' && hasHeader && options.headerShown === true;
|
|
266
|
-
const isHeaderInPush = isAndroid ? hasHeader : stackPresentation === 'push' && hasHeader;
|
|
267
|
-
return /*#__PURE__*/React.createElement(Screen, {
|
|
268
|
-
key: `screen_${route.key}`,
|
|
269
|
-
enabled: true,
|
|
270
|
-
isNativeStack: true,
|
|
271
|
-
style: [StyleSheet.absoluteFill, options.cardStyle],
|
|
272
|
-
stackAnimation: stackAnimation,
|
|
273
|
-
customAnimationOnSwipe: options.customAnimationOnSwipe,
|
|
274
|
-
stackPresentation: stackPresentation,
|
|
275
|
-
replaceAnimation: options.replaceAnimation === undefined ? 'pop' : options.replaceAnimation,
|
|
276
|
-
pointerEvents: index === navigation.state.routes.length - 1 ? 'auto' : 'none',
|
|
277
|
-
gestureEnabled: Platform.OS === 'android' ? false : options.gestureEnabled === undefined ? true : options.gestureEnabled,
|
|
278
|
-
nativeBackButtonDismissalEnabled: options.nativeBackButtonDismissalEnabled,
|
|
279
|
-
fullScreenSwipeEnabled: options.fullScreenSwipeEnabled,
|
|
280
|
-
screenOrientation: options.screenOrientation,
|
|
281
|
-
statusBarAnimation: options.statusBarAnimation,
|
|
282
|
-
statusBarColor: options.statusBarColor,
|
|
283
|
-
statusBarHidden: options.statusBarHidden,
|
|
284
|
-
statusBarStyle: options.statusBarStyle,
|
|
285
|
-
statusBarTranslucent: options.statusBarTranslucent,
|
|
286
|
-
onAppear: () => onAppear(route, descriptor, routeNavigationProp),
|
|
287
|
-
onWillAppear: () => {
|
|
288
|
-
var _options$onWillAppear;
|
|
289
|
-
return options === null || options === void 0 ? void 0 : (_options$onWillAppear = options.onWillAppear) === null || _options$onWillAppear === void 0 ? void 0 : _options$onWillAppear.call(options);
|
|
290
|
-
},
|
|
291
|
-
onWillDisappear: () => {
|
|
292
|
-
var _options$onWillDisapp;
|
|
293
|
-
return options === null || options === void 0 ? void 0 : (_options$onWillDisapp = options.onWillDisappear) === null || _options$onWillDisapp === void 0 ? void 0 : _options$onWillDisapp.call(options);
|
|
294
|
-
},
|
|
295
|
-
onDisappear: () => {
|
|
296
|
-
var _options$onDisappear;
|
|
297
|
-
return options === null || options === void 0 ? void 0 : (_options$onDisappear = options.onDisappear) === null || _options$onDisappear === void 0 ? void 0 : _options$onDisappear.call(options);
|
|
298
|
-
},
|
|
299
|
-
onHeaderBackButtonClicked: () => removeScene(route, 1, routeNavigationProp),
|
|
300
|
-
onDismissed: e => removeScene(route, e.nativeEvent.dismissCount, routeNavigationProp)
|
|
301
|
-
}, isHeaderInPush && renderHeaderConfig(index, route, descriptor, navigationConfig), /*#__PURE__*/React.createElement(MaybeNestedStack, {
|
|
302
|
-
isHeaderInModal: isHeaderInModal,
|
|
303
|
-
screenProps: screenProps,
|
|
304
|
-
route: route,
|
|
305
|
-
navigation: routeNavigationProp,
|
|
306
|
-
SceneComponent: SceneComponent,
|
|
307
|
-
index: index,
|
|
308
|
-
descriptor: descriptor,
|
|
309
|
-
navigationConfig: navigationConfig
|
|
310
|
-
}));
|
|
311
|
-
}));
|
|
312
|
-
}
|
|
313
|
-
const styles = StyleSheet.create({
|
|
314
|
-
scenes: {
|
|
315
|
-
flex: 1
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
function createStackNavigator(routeConfigMap) {
|
|
319
|
-
let stackConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
320
|
-
const router = StackRouter(routeConfigMap, stackConfig);
|
|
321
|
-
|
|
322
|
-
// below we override getStateForAction method in order to add handling for
|
|
323
|
-
// a custom native stack navigation action. The action REMOVE that we want to
|
|
324
|
-
// add works in a similar way to POP, but it does not remove all the routes
|
|
325
|
-
// that sit on top of the removed route. For example if we have three routes
|
|
326
|
-
// [a,b,c] and call POP on b, then both b and c will go away. In case we
|
|
327
|
-
// call REMOVE on b, only b will be removed from the stack and the resulting
|
|
328
|
-
// state will be [a, c]
|
|
329
|
-
const superGetStateForAction = router.getStateForAction;
|
|
330
|
-
router.getStateForAction = (action, state) => {
|
|
331
|
-
if (action.type === REMOVE_ACTION) {
|
|
332
|
-
const {
|
|
333
|
-
key,
|
|
334
|
-
immediate,
|
|
335
|
-
dismissCount
|
|
336
|
-
} = action;
|
|
337
|
-
let backRouteIndex = state.index;
|
|
338
|
-
if (key) {
|
|
339
|
-
const backRoute = state.routes.find(route => route.key === key);
|
|
340
|
-
backRouteIndex = state.routes.indexOf(backRoute);
|
|
341
|
-
}
|
|
342
|
-
if (backRouteIndex > 0) {
|
|
343
|
-
const newRoutes = [...state.routes];
|
|
344
|
-
if (dismissCount > 1) {
|
|
345
|
-
// when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time
|
|
346
|
-
// and the `backRouteIndex` is the index of the previous screen. Since we are starting already
|
|
347
|
-
// on the previous screen, we add 1 to start.
|
|
348
|
-
newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);
|
|
349
|
-
} else {
|
|
350
|
-
newRoutes.splice(backRouteIndex, 1);
|
|
351
|
-
}
|
|
352
|
-
return {
|
|
353
|
-
...state,
|
|
354
|
-
routes: newRoutes,
|
|
355
|
-
index: newRoutes.length - 1,
|
|
356
|
-
isTransitioning: immediate !== true
|
|
357
|
-
};
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return superGetStateForAction(action, state);
|
|
361
|
-
};
|
|
362
|
-
// Create a navigator with StackView as the view
|
|
363
|
-
return createNavigator(StackView, router, stackConfig);
|
|
364
|
-
}
|
|
365
|
-
export default createStackNavigator;
|
|
366
|
-
//# sourceMappingURL=createNativeStackNavigator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","StyleSheet","ScreenContext","ScreenStack","ScreenStackHeaderBackButtonImage","ScreenStackHeaderCenterView","ScreenStackHeaderConfig","ScreenStackHeaderLeftView","ScreenStackHeaderRightView","ScreenStackHeaderSearchBarView","SearchBar","createNavigator","SceneView","StackActions","StackRouter","HeaderBackButton","REMOVE_ACTION","isAndroid","OS","didWarn","renderComponentOrThunk","componentOrThunk","props","removeScene","route","dismissCount","navigation","dispatch","type","immediate","key","onAppear","descriptor","options","completeTransition","toChildKey","state","onFinishTransitioning","routes","lastRoute","length","renderHeaderConfig","index","navigationConfig","headerMode","backButtonInCustomView","direction","disableBackButtonMenu","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerHideBackButton","headerHideShadow","headerLargeStyle","headerLargeTitle","headerLargeTitleHideShadow","headerLargeTitleStyle","headerShown","headerStyle","headerTintColor","headerTitleStyle","headerTopInsetEnabled","headerTranslucent","hideShadow","largeTitle","largeTitleHideShadow","title","translucent","scene","headerOptions","backTitle","backTitleFontFamily","fontFamily","backTitleFontSize","fontSize","color","topInsetEnabled","hideBackButton","largeTitleBackgroundColor","backgroundColor","largeTitleColor","largeTitleFontFamily","largeTitleFontSize","largeTitleFontWeight","fontWeight","titleColor","titleFontFamily","titleFontSize","titleFontWeight","hasHeader","header","undefined","blurEffect","children","backButtonImage","push","searchBar","headerLeft","headerBackImage","goBack","requestAnimationFrame","headerPressColorAndroid","backButtonTitle","truncatedBackButtonTitle","backTitleVisible","layoutPreset","headerTitle","headerRight","MaybeNestedStack","isHeaderInModal","screenProps","SceneComponent","Screen","useContext","styles","scenes","absoluteFill","StackView","descriptors","map","getComponent","routeNavigationProp","mode","transparentCard","stackPresentation","cardTransparent","stackAnimation","animationEnabled","console","warn","isHeaderInPush","cardStyle","customAnimationOnSwipe","replaceAnimation","gestureEnabled","nativeBackButtonDismissalEnabled","fullScreenSwipeEnabled","screenOrientation","statusBarAnimation","statusBarColor","statusBarHidden","statusBarStyle","statusBarTranslucent","onWillAppear","onWillDisappear","onDisappear","e","nativeEvent","create","flex","createStackNavigator","routeConfigMap","stackConfig","router","superGetStateForAction","getStateForAction","action","backRouteIndex","backRoute","find","indexOf","newRoutes","splice","isTransitioning"],"sources":["createNativeStackNavigator.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Platform,\n StyleSheet,\n Animated,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport {\n ScreenContext,\n ScreenStack,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderConfigProps,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n StackPresentationTypes,\n} from 'react-native-screens';\nimport {\n createNavigator,\n SceneView,\n StackActions,\n StackRouter,\n NavigationRouteConfigMap,\n CreateNavigatorConfig,\n NavigationStackRouterConfig,\n NavigationParams,\n NavigationRoute,\n NavigationDescriptor,\n NavigationState,\n NavigationNavigator,\n NavigationAction,\n NavigationProp,\n NavigationScreenProp,\n} from 'react-navigation';\nimport { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';\nimport { HeaderBackButton } from 'react-navigation-stack';\nimport {\n StackNavigationHelpers,\n StackNavigationProp,\n Layout,\n} from 'react-navigation-stack/src/vendor/types';\n\nconst REMOVE_ACTION = 'NativeStackNavigator/REMOVE';\n\nconst isAndroid = Platform.OS === 'android';\n\nlet didWarn = isAndroid;\n\nfunction renderComponentOrThunk(componentOrThunk: unknown, props: unknown) {\n if (typeof componentOrThunk === 'function') {\n return componentOrThunk(props);\n }\n return componentOrThunk;\n}\n\ntype NativeStackRemoveNavigationAction = {\n type: typeof REMOVE_ACTION;\n immediate: boolean;\n dismissCount: number;\n key?: string;\n};\n\nexport type NativeStackNavigationProp = StackNavigationProp;\n\nexport type NativeStackNavigationOptions = StackNavigatorOptions &\n NativeStackNavigationOptionsV5 &\n BackButtonProps & {\n onWillAppear?: () => void;\n onAppear?: () => void;\n onWillDisappear?: () => void;\n onDisappear?: () => void;\n // these props differ from the ones used in v5 `native-stack`, and we would like to keep the API consistent between versions\n /** Use `headerHideShadow` to be consistent with v5 `native-stack` */\n hideShadow?: boolean;\n /** Use `headerLargeTitle` to be consistent with v5 `native-stack` */\n largeTitle?: boolean;\n /** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */\n largeTitleHideShadow?: boolean;\n /** Use `headerTranslucent` to be consistent with v5 `native-stack` */\n translucent?: boolean;\n };\n\n// these are adopted from `stack` navigator\ntype StackNavigatorOptions = {\n /** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */\n header?: React.ComponentType<Record<string, unknown>> | null;\n /** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n cardTransparent?: boolean;\n /** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */\n animationEnabled?: boolean;\n cardStyle?: StyleProp<ViewStyle>;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype BackButtonProps = {\n headerBackImage?: (props: { tintColor: string }) => React.ReactNode;\n headerPressColorAndroid?: string;\n headerTintColor?: string;\n backButtonTitle?: string;\n truncatedBackButtonTitle?: string;\n backTitleVisible?: boolean;\n headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;\n layoutPreset?: Layout;\n};\n\ntype NativeStackDescriptor = NavigationDescriptor<\n NavigationParams,\n NativeStackNavigationOptions\n>;\n\ntype NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n\n// these are the props used for rendering back button taken from `react-navigation-stack`\ntype NativeStackNavigationConfig = {\n /** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n mode?: 'modal' | 'containedModal';\n /** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */\n headerMode?: 'none';\n /** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */\n transparentCard?: boolean;\n};\n\nfunction removeScene(\n route: NavigationRoute<NavigationParams>,\n dismissCount: number,\n navigation: StackNavigationHelpers\n) {\n navigation.dispatch({\n // @ts-ignore special navigation action for native stack\n type: REMOVE_ACTION,\n immediate: true,\n key: route.key,\n dismissCount,\n });\n}\n\nfunction onAppear(\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigation: StackNavigationHelpers\n) {\n descriptor.options?.onAppear?.();\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: route.key,\n key: navigation.state.key,\n })\n );\n}\n\nfunction onFinishTransitioning(navigation: StackNavigationHelpers) {\n const { routes } = navigation.state;\n const lastRoute = routes?.length && routes[routes.length - 1];\n\n if (lastRoute) {\n navigation.dispatch(\n StackActions.completeTransition({\n toChildKey: lastRoute.key,\n key: navigation.state.key,\n })\n );\n }\n}\n\nfunction renderHeaderConfig(\n index: number,\n route: NavigationRoute<NavigationParams>,\n descriptor: NativeStackDescriptor,\n navigationConfig: NativeStackNavigationConfig\n) {\n const { options } = descriptor;\n const { headerMode } = navigationConfig;\n\n const {\n backButtonInCustomView,\n direction,\n disableBackButtonMenu,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible,\n headerHideBackButton,\n headerHideShadow,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleHideShadow,\n headerLargeTitleStyle,\n headerShown,\n headerStyle,\n headerTintColor,\n headerTitleStyle,\n headerTopInsetEnabled = true,\n headerTranslucent,\n hideShadow,\n largeTitle,\n largeTitleHideShadow,\n title,\n translucent,\n } = options;\n\n const scene = {\n index,\n key: route.key,\n route,\n descriptor,\n };\n\n const headerOptions: ScreenStackHeaderConfigProps = {\n backButtonInCustomView,\n backTitle: headerBackTitleVisible === false ? '' : headerBackTitle,\n backTitleFontFamily: headerBackTitleStyle?.fontFamily,\n backTitleFontSize: headerBackTitleStyle?.fontSize,\n color: headerTintColor,\n direction,\n disableBackButtonMenu,\n topInsetEnabled: headerTopInsetEnabled,\n hideBackButton: headerHideBackButton,\n hideShadow: headerHideShadow || hideShadow,\n largeTitle: headerLargeTitle || largeTitle,\n largeTitleBackgroundColor:\n headerLargeStyle?.backgroundColor ||\n // @ts-ignore old implementation, will not be present in TS API, but can be used here\n headerLargeTitleStyle?.backgroundColor,\n largeTitleColor: headerLargeTitleStyle?.color,\n largeTitleFontFamily: headerLargeTitleStyle?.fontFamily,\n largeTitleFontSize: headerLargeTitleStyle?.fontSize,\n largeTitleFontWeight: headerLargeTitleStyle?.fontWeight,\n largeTitleHideShadow: largeTitleHideShadow || headerLargeTitleHideShadow,\n title,\n titleColor: headerTitleStyle?.color || headerTintColor,\n titleFontFamily: headerTitleStyle?.fontFamily,\n titleFontSize: headerTitleStyle?.fontSize,\n titleFontWeight: headerTitleStyle?.fontWeight,\n translucent: headerTranslucent || translucent || false,\n };\n\n const hasHeader =\n headerShown !== false && headerMode !== 'none' && options.header !== null;\n if (!hasHeader) {\n return <ScreenStackHeaderConfig {...headerOptions} hidden />;\n }\n\n if (headerStyle !== undefined) {\n headerOptions.backgroundColor = headerStyle.backgroundColor;\n headerOptions.blurEffect = headerStyle.blurEffect;\n }\n\n const children = [];\n\n if (options.backButtonImage) {\n children.push(\n <ScreenStackHeaderBackButtonImage\n key=\"backImage\"\n source={options.backButtonImage}\n />\n );\n }\n\n if (Platform.OS === 'ios' && options.searchBar) {\n children.push(\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...options.searchBar} />\n </ScreenStackHeaderSearchBarView>\n );\n }\n\n if (options.headerLeft !== undefined) {\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n {renderComponentOrThunk(options.headerLeft, { scene })}\n </ScreenStackHeaderLeftView>\n );\n } else if (options.headerBackImage !== undefined) {\n const goBack = () => {\n // Go back on next tick because button ripple effect needs to happen on Android\n requestAnimationFrame(() => {\n descriptor.navigation.goBack(descriptor.key);\n });\n };\n\n children.push(\n <ScreenStackHeaderLeftView key=\"left\">\n <HeaderBackButton\n onPress={goBack}\n pressColorAndroid={options.headerPressColorAndroid}\n tintColor={options.headerTintColor}\n backImage={options.headerBackImage}\n label={options.backButtonTitle}\n truncatedLabel={options.truncatedBackButtonTitle}\n labelVisible={options.backTitleVisible}\n labelStyle={options.headerBackTitleStyle}\n titleLayout={options.layoutPreset}\n // @ts-ignore old props kept for very old version of `react-navigation-stack`\n title={options.backButtonTitle}\n truncatedTitle={options.truncatedBackButtonTitle}\n backTitleVisible={options.backTitleVisible}\n titleStyle={options.headerBackTitleStyle}\n layoutPreset={options.layoutPreset}\n scene={scene}\n />\n </ScreenStackHeaderLeftView>\n );\n }\n\n if (options.headerTitle) {\n if (title === undefined && typeof options.headerTitle === 'string') {\n headerOptions.title = options.headerTitle;\n } else {\n children.push(\n <ScreenStackHeaderCenterView key=\"center\">\n {renderComponentOrThunk(options.headerTitle, { scene })}\n </ScreenStackHeaderCenterView>\n );\n }\n }\n\n if (options.headerRight) {\n children.push(\n <ScreenStackHeaderRightView key=\"right\">\n {renderComponentOrThunk(options.headerRight, { scene })}\n </ScreenStackHeaderRightView>\n );\n }\n\n if (children.length > 0) {\n headerOptions.children = children;\n }\n\n return <ScreenStackHeaderConfig {...headerOptions} />;\n}\n\nconst MaybeNestedStack = ({\n isHeaderInModal,\n screenProps,\n route,\n navigation,\n SceneComponent,\n index,\n descriptor,\n navigationConfig,\n}: {\n isHeaderInModal: boolean;\n screenProps: unknown;\n route: NavigationRoute<NavigationParams>;\n navigation: NavigationScreenProp<\n NavigationRoute<NavigationParams>,\n NavigationParams\n >;\n SceneComponent: React.ComponentType<Record<string, unknown>>;\n index: number;\n descriptor: NativeStackDescriptor;\n navigationConfig: NativeStackNavigationConfig;\n}) => {\n const Screen = React.useContext(ScreenContext);\n\n if (isHeaderInModal) {\n return (\n <ScreenStack style={styles.scenes}>\n <Screen style={StyleSheet.absoluteFill} enabled isNativeStack>\n {renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n </Screen>\n </ScreenStack>\n );\n }\n return (\n <SceneView\n screenProps={screenProps}\n navigation={navigation}\n component={SceneComponent}\n />\n );\n};\n\ntype StackViewProps = {\n navigation: StackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n navigationConfig: NativeStackNavigationConfig;\n screenProps: unknown;\n};\n\nfunction StackView({\n navigation,\n descriptors,\n navigationConfig,\n screenProps,\n}: StackViewProps) {\n const { routes } = navigation.state;\n const Screen = React.useContext(ScreenContext);\n return (\n <ScreenStack\n style={styles.scenes}\n onFinishTransitioning={() => onFinishTransitioning(navigation)}\n >\n {routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n const { getComponent, options } = descriptor;\n const routeNavigationProp = descriptor.navigation;\n const { mode, transparentCard } = navigationConfig;\n const SceneComponent = getComponent();\n\n let stackPresentation: StackPresentationTypes = 'push';\n\n if (options.stackPresentation) {\n stackPresentation = options.stackPresentation;\n } else {\n // this shouldn't be used because we have a prop for that\n if (mode === 'modal' || mode === 'containedModal') {\n stackPresentation = mode;\n if (transparentCard || options.cardTransparent) {\n stackPresentation =\n mode === 'containedModal'\n ? 'containedTransparentModal'\n : 'transparentModal';\n }\n }\n }\n let stackAnimation = options.stackAnimation;\n if (options.animationEnabled === false) {\n stackAnimation = 'none';\n }\n\n const hasHeader =\n options.headerShown !== false &&\n navigationConfig?.headerMode !== 'none' &&\n options.header !== null;\n\n if (\n !didWarn &&\n stackPresentation !== 'push' &&\n options.headerShown !== undefined\n ) {\n didWarn = true;\n console.warn(\n 'Be aware that changing the visibility of header in modal on iOS will result in resetting the state of the screen.'\n );\n }\n\n const isHeaderInModal = isAndroid\n ? false\n : stackPresentation !== 'push' &&\n hasHeader &&\n options.headerShown === true;\n const isHeaderInPush = isAndroid\n ? hasHeader\n : stackPresentation === 'push' && hasHeader;\n\n return (\n <Screen\n key={`screen_${route.key}`}\n enabled\n isNativeStack\n style={[StyleSheet.absoluteFill, options.cardStyle]}\n stackAnimation={stackAnimation}\n customAnimationOnSwipe={options.customAnimationOnSwipe}\n stackPresentation={stackPresentation}\n replaceAnimation={\n options.replaceAnimation === undefined\n ? 'pop'\n : options.replaceAnimation\n }\n pointerEvents={\n index === navigation.state.routes.length - 1 ? 'auto' : 'none'\n }\n gestureEnabled={\n Platform.OS === 'android'\n ? false\n : options.gestureEnabled === undefined\n ? true\n : options.gestureEnabled\n }\n nativeBackButtonDismissalEnabled={\n options.nativeBackButtonDismissalEnabled\n }\n fullScreenSwipeEnabled={options.fullScreenSwipeEnabled}\n screenOrientation={options.screenOrientation}\n statusBarAnimation={options.statusBarAnimation}\n statusBarColor={options.statusBarColor}\n statusBarHidden={options.statusBarHidden}\n statusBarStyle={options.statusBarStyle}\n statusBarTranslucent={options.statusBarTranslucent}\n onAppear={() => onAppear(route, descriptor, routeNavigationProp)}\n onWillAppear={() => options?.onWillAppear?.()}\n onWillDisappear={() => options?.onWillDisappear?.()}\n onDisappear={() => options?.onDisappear?.()}\n onHeaderBackButtonClicked={() =>\n removeScene(route, 1, routeNavigationProp)\n }\n onDismissed={(e) =>\n removeScene(\n route,\n e.nativeEvent.dismissCount,\n routeNavigationProp\n )\n }\n >\n {isHeaderInPush &&\n renderHeaderConfig(index, route, descriptor, navigationConfig)}\n <MaybeNestedStack\n isHeaderInModal={isHeaderInModal}\n screenProps={screenProps}\n route={route}\n navigation={routeNavigationProp}\n SceneComponent={SceneComponent}\n index={index}\n descriptor={descriptor}\n navigationConfig={navigationConfig}\n />\n </Screen>\n );\n })}\n </ScreenStack>\n );\n}\n\nconst styles = StyleSheet.create({\n scenes: { flex: 1 },\n});\n\nfunction createStackNavigator(\n routeConfigMap: NavigationRouteConfigMap<\n NativeStackNavigationOptions,\n StackNavigationProp\n >,\n stackConfig: CreateNavigatorConfig<\n NativeStackNavigationConfig,\n NavigationStackRouterConfig,\n NativeStackNavigationOptions,\n StackNavigationProp\n > = {}\n): NavigationNavigator<\n Record<string, unknown>,\n NavigationProp<NavigationState>\n> {\n const router = StackRouter(routeConfigMap, stackConfig);\n\n // below we override getStateForAction method in order to add handling for\n // a custom native stack navigation action. The action REMOVE that we want to\n // add works in a similar way to POP, but it does not remove all the routes\n // that sit on top of the removed route. For example if we have three routes\n // [a,b,c] and call POP on b, then both b and c will go away. In case we\n // call REMOVE on b, only b will be removed from the stack and the resulting\n // state will be [a, c]\n const superGetStateForAction = router.getStateForAction;\n router.getStateForAction = (\n action: NavigationAction | NativeStackRemoveNavigationAction,\n state\n ) => {\n if (action.type === REMOVE_ACTION) {\n const { key, immediate, dismissCount } = action;\n let backRouteIndex = state.index;\n if (key) {\n const backRoute = state.routes.find(\n (route: NavigationRoute<NavigationParams>) => route.key === key\n );\n backRouteIndex = state.routes.indexOf(backRoute);\n }\n\n if (backRouteIndex > 0) {\n const newRoutes = [...state.routes];\n if (dismissCount > 1) {\n // when dismissing with iOS 14 native header back button, we can pop more than 1 screen at a time\n // and the `backRouteIndex` is the index of the previous screen. Since we are starting already\n // on the previous screen, we add 1 to start.\n newRoutes.splice(backRouteIndex - dismissCount + 1, dismissCount);\n } else {\n newRoutes.splice(backRouteIndex, 1);\n }\n\n return {\n ...state,\n routes: newRoutes,\n index: newRoutes.length - 1,\n isTransitioning: immediate !== true,\n };\n }\n }\n return superGetStateForAction(action as NavigationAction, state);\n };\n // Create a navigator with StackView as the view\n return createNavigator(StackView, router, stackConfig);\n}\n\nexport default createStackNavigator;\n"],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
3
|
-
import { NavigationRouteConfigMap, CreateNavigatorConfig, NavigationStackRouterConfig, NavigationState, NavigationNavigator, NavigationProp } from 'react-navigation';
|
|
4
|
-
import { NativeStackNavigationOptions as NativeStackNavigationOptionsV5 } from './native-stack/types';
|
|
5
|
-
import { StackNavigationProp, Layout } from 'react-navigation-stack/src/vendor/types';
|
|
6
|
-
export type NativeStackNavigationProp = StackNavigationProp;
|
|
7
|
-
export type NativeStackNavigationOptions = StackNavigatorOptions & NativeStackNavigationOptionsV5 & BackButtonProps & {
|
|
8
|
-
onWillAppear?: () => void;
|
|
9
|
-
onAppear?: () => void;
|
|
10
|
-
onWillDisappear?: () => void;
|
|
11
|
-
onDisappear?: () => void;
|
|
12
|
-
/** Use `headerHideShadow` to be consistent with v5 `native-stack` */
|
|
13
|
-
hideShadow?: boolean;
|
|
14
|
-
/** Use `headerLargeTitle` to be consistent with v5 `native-stack` */
|
|
15
|
-
largeTitle?: boolean;
|
|
16
|
-
/** Use `headerLargeTitleHideShadow` to be consistent with v5 `native-stack` */
|
|
17
|
-
largeTitleHideShadow?: boolean;
|
|
18
|
-
/** Use `headerTranslucent` to be consistent with v5 `native-stack` */
|
|
19
|
-
translucent?: boolean;
|
|
20
|
-
};
|
|
21
|
-
type StackNavigatorOptions = {
|
|
22
|
-
/** This is an option from `stackNavigator` and it hides the header when set to `null`. Use `headerShown` instead to be consistent with v5 `native-stack`. */
|
|
23
|
-
header?: React.ComponentType<Record<string, unknown>> | null;
|
|
24
|
-
/** This is an option from `stackNavigator` and it controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
|
|
25
|
-
cardTransparent?: boolean;
|
|
26
|
-
/** This is an option from `stackNavigator` and it sets stack animation to none when `false` passed. Use `stackAnimation: 'none'` instead to be consistent with v5 `native-stack` */
|
|
27
|
-
animationEnabled?: boolean;
|
|
28
|
-
cardStyle?: StyleProp<ViewStyle>;
|
|
29
|
-
};
|
|
30
|
-
type BackButtonProps = {
|
|
31
|
-
headerBackImage?: (props: {
|
|
32
|
-
tintColor: string;
|
|
33
|
-
}) => React.ReactNode;
|
|
34
|
-
headerPressColorAndroid?: string;
|
|
35
|
-
headerTintColor?: string;
|
|
36
|
-
backButtonTitle?: string;
|
|
37
|
-
truncatedBackButtonTitle?: string;
|
|
38
|
-
backTitleVisible?: boolean;
|
|
39
|
-
headerBackTitleStyle?: Animated.WithAnimatedValue<StyleProp<TextStyle>>;
|
|
40
|
-
layoutPreset?: Layout;
|
|
41
|
-
};
|
|
42
|
-
type NativeStackNavigationConfig = {
|
|
43
|
-
/** This is an option from `stackNavigator` and controls the stack presentation along with `cardTransparent` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
|
|
44
|
-
mode?: 'modal' | 'containedModal';
|
|
45
|
-
/** This is an option from `stackNavigator` and makes the header hide when set to `none`. Use `headerShown` instead to be consistent with v5 `native-stack` */
|
|
46
|
-
headerMode?: 'none';
|
|
47
|
-
/** This is an option from `stackNavigator` and controls the stack presentation along with `mode` prop. Use `stackPresentation` instead to be consistent with v5 `native-stack` */
|
|
48
|
-
transparentCard?: boolean;
|
|
49
|
-
};
|
|
50
|
-
declare function createStackNavigator(routeConfigMap: NavigationRouteConfigMap<NativeStackNavigationOptions, StackNavigationProp>, stackConfig?: CreateNavigatorConfig<NativeStackNavigationConfig, NavigationStackRouterConfig, NativeStackNavigationOptions, StackNavigationProp>): NavigationNavigator<Record<string, unknown>, NavigationProp<NavigationState>>;
|
|
51
|
-
export default createStackNavigator;
|