react-native-screens 3.19.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/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/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 +2 -2
- package/ios/RNSConvert.mm +2 -2
- package/ios/RNSFullWindowOverlay.h +5 -5
- package/ios/RNSFullWindowOverlay.mm +13 -13
- package/ios/RNSScreen.h +7 -6
- package/ios/RNSScreen.mm +35 -33
- 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 +53 -11
- 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 +3 -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 +54 -11
- 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 +3 -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/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/navigators/createNativeStackNavigator.d.ts +2 -2
- package/lib/typescript/native-stack/types.d.ts +55 -1
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/types.d.ts +81 -2
- 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/android/src/main/java/com/swmansion/rnscreens/LifecycleHelper.kt +0 -60
- 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 -104
- 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 declare type NativeStackNavigationProp = StackNavigationProp;
|
|
7
|
-
export declare 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
|
-
declare 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
|
-
declare 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
|
-
declare 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;
|