@react-navigation/native-stack 6.2.4 → 6.4.1
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/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigators/createNativeStackNavigator.js +12 -10
- package/lib/commonjs/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/views/HeaderConfig.js +62 -39
- package/lib/commonjs/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/views/NativeStackView.js +62 -40
- package/lib/commonjs/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/views/NativeStackView.native.js +51 -40
- package/lib/commonjs/views/NativeStackView.native.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createNativeStackNavigator.js +12 -10
- package/lib/module/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/views/HeaderConfig.js +62 -39
- package/lib/module/views/HeaderConfig.js.map +1 -1
- package/lib/module/views/NativeStackView.js +61 -40
- package/lib/module/views/NativeStackView.js.map +1 -1
- package/lib/module/views/NativeStackView.native.js +53 -42
- package/lib/module/views/NativeStackView.native.js.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -1
- package/lib/typescript/src/types.d.ts +19 -10
- package/lib/typescript/src/views/HeaderConfig.d.ts +2 -1
- package/package.json +6 -6
- package/src/index.tsx +6 -0
- package/src/navigators/createNativeStackNavigator.tsx +21 -18
- package/src/types.tsx +20 -8
- package/src/views/HeaderConfig.tsx +153 -103
- package/src/views/NativeStackView.native.tsx +61 -47
- package/src/views/NativeStackView.tsx +25 -3
package/lib/commonjs/index.js
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "NativeStackView", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _NativeStackView.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "createNativeStackNavigator", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
@@ -12,5 +18,7 @@ Object.defineProperty(exports, "createNativeStackNavigator", {
|
|
|
12
18
|
|
|
13
19
|
var _createNativeStackNavigator = _interopRequireDefault(require("./navigators/createNativeStackNavigator"));
|
|
14
20
|
|
|
21
|
+
var _NativeStackView = _interopRequireDefault(require("./views/NativeStackView"));
|
|
22
|
+
|
|
15
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA;;AAKA","sourcesContent":["/**\n * Navigators\n */\nexport { default as createNativeStackNavigator } from './navigators/createNativeStackNavigator';\n\n/**\n * Views\n */\nexport { default as NativeStackView } from './views/NativeStackView';\n\n/**\n * Types\n */\nexport type {\n NativeStackHeaderProps,\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigationProp,\n NativeStackScreenProps,\n} from './types';\n"]}
|
|
@@ -19,17 +19,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
19
19
|
|
|
20
20
|
function _extends() { _extends = Object.assign || 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); }
|
|
21
21
|
|
|
22
|
-
function NativeStackNavigator({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
function NativeStackNavigator(_ref) {
|
|
23
|
+
let {
|
|
24
|
+
initialRouteName,
|
|
25
|
+
children,
|
|
26
|
+
screenListeners,
|
|
27
|
+
screenOptions,
|
|
28
|
+
...rest
|
|
29
|
+
} = _ref;
|
|
29
30
|
const {
|
|
30
31
|
state,
|
|
31
32
|
descriptors,
|
|
32
|
-
navigation
|
|
33
|
+
navigation,
|
|
34
|
+
NavigationContent
|
|
33
35
|
} = (0, _native.useNavigationBuilder)(_native.StackRouter, {
|
|
34
36
|
initialRouteName,
|
|
35
37
|
children,
|
|
@@ -54,11 +56,11 @@ function NativeStackNavigator({
|
|
|
54
56
|
});
|
|
55
57
|
});
|
|
56
58
|
}, [navigation, state.index, state.key]);
|
|
57
|
-
return /*#__PURE__*/React.createElement(_NativeStackView.default, _extends({}, rest, {
|
|
59
|
+
return /*#__PURE__*/React.createElement(NavigationContent, null, /*#__PURE__*/React.createElement(_NativeStackView.default, _extends({}, rest, {
|
|
58
60
|
state: state,
|
|
59
61
|
navigation: navigation,
|
|
60
62
|
descriptors: descriptors
|
|
61
|
-
}));
|
|
63
|
+
})));
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
var _default = (0, _native.createNavigatorFactory)(NativeStackNavigator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["createNativeStackNavigator.tsx"],"names":["NativeStackNavigator","initialRouteName","children","screenListeners","screenOptions","rest","state","descriptors","navigation","StackRouter","React","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","StackActions","popToTop","target","key"],"mappings":";;;;;;;AAAA;;AAWA;;AAOA;;;;;;;;;;AAEA,SAASA,oBAAT,
|
|
1
|
+
{"version":3,"sources":["createNativeStackNavigator.tsx"],"names":["NativeStackNavigator","initialRouteName","children","screenListeners","screenOptions","rest","state","descriptors","navigation","NavigationContent","StackRouter","React","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","StackActions","popToTop","target","key"],"mappings":";;;;;;;AAAA;;AAWA;;AAOA;;;;;;;;;;AAEA,SAASA,oBAAT,OAM8B;AAAA,MANA;AAC5BC,IAAAA,gBAD4B;AAE5BC,IAAAA,QAF4B;AAG5BC,IAAAA,eAH4B;AAI5BC,IAAAA,aAJ4B;AAK5B,OAAGC;AALyB,GAMA;AAC5B,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,WAAT;AAAsBC,IAAAA,UAAtB;AAAkCC,IAAAA;AAAlC,MACJ,kCAMEC,mBANF,EAMe;AACbT,IAAAA,gBADa;AAEbC,IAAAA,QAFa;AAGbC,IAAAA,eAHa;AAIbC,IAAAA;AAJa,GANf,CADF;AAcAO,EAAAA,KAAK,CAACC,SAAN,CACE;AAAA;;AAAA,WACEJ,UADF,aACEA,UADF,gDACEA,UAAU,CAAEK,WADd,0DACE,2BAAAL,UAAU,EAAgB,UAAhB,EAA6BM,CAAD,IAAY;AAChD,YAAMC,SAAS,GAAGP,UAAU,CAACO,SAAX,EAAlB,CADgD,CAGhD;AACA;;AACAC,MAAAA,qBAAqB,CAAC,MAAM;AAC1B,YACEV,KAAK,CAACW,KAAN,GAAc,CAAd,IACAF,SADA,IAEA,CAAED,CAAD,CAAkCI,gBAHrC,EAIE;AACA;AACA;AACAV,UAAAA,UAAU,CAACW,QAAX,CAAoB,EAClB,GAAGC,qBAAaC,QAAb,EADe;AAElBC,YAAAA,MAAM,EAAEhB,KAAK,CAACiB;AAFI,WAApB;AAID;AACF,OAboB,CAArB;AAcD,KAnBS,CADZ;AAAA,GADF,EAsBE,CAACf,UAAD,EAAaF,KAAK,CAACW,KAAnB,EAA0BX,KAAK,CAACiB,GAAhC,CAtBF;AAyBA,sBACE,oBAAC,iBAAD,qBACE,oBAAC,wBAAD,eACMlB,IADN;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,UAAU,EAAEE,UAHd;AAIE,IAAA,WAAW,EAAED;AAJf,KADF,CADF;AAUD;;eAEc,oCAKbP,oBALa,C","sourcesContent":["import {\n createNavigatorFactory,\n EventArg,\n ParamListBase,\n StackActionHelpers,\n StackActions,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigatorProps,\n} from '../types';\nimport NativeStackView from '../views/NativeStackView';\n\nfunction NativeStackNavigator({\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n}: NativeStackNavigatorProps) {\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n StackNavigationState<ParamListBase>,\n StackRouterOptions,\n StackActionHelpers<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n >(StackRouter, {\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n });\n\n React.useEffect(\n () =>\n navigation?.addListener?.('tabPress', (e: any) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n <NavigationContent>\n <NativeStackView\n {...rest}\n state={state}\n navigation={navigation}\n descriptors={descriptors}\n />\n </NavigationContent>\n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n typeof NativeStackNavigator\n>(NativeStackNavigator);\n"]}
|
|
@@ -23,35 +23,38 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
23
23
|
|
|
24
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
25
|
|
|
26
|
-
function HeaderConfig({
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
26
|
+
function HeaderConfig(_ref) {
|
|
27
|
+
var _ref2, _headerTitleStyleFlat, _headerStyleFlattened;
|
|
28
|
+
|
|
29
|
+
let {
|
|
30
|
+
headerHeight,
|
|
31
|
+
headerBackImageSource,
|
|
32
|
+
headerBackButtonMenuEnabled,
|
|
33
|
+
headerBackTitle,
|
|
34
|
+
headerBackTitleStyle,
|
|
35
|
+
headerBackTitleVisible = true,
|
|
36
|
+
headerBackVisible,
|
|
37
|
+
headerShadowVisible,
|
|
38
|
+
headerLargeStyle,
|
|
39
|
+
headerLargeTitle,
|
|
40
|
+
headerLargeTitleShadowVisible,
|
|
41
|
+
headerLargeTitleStyle,
|
|
42
|
+
headerBackground,
|
|
43
|
+
headerLeft,
|
|
44
|
+
headerRight,
|
|
45
|
+
headerShown,
|
|
46
|
+
headerStyle,
|
|
47
|
+
headerBlurEffect,
|
|
48
|
+
headerTintColor,
|
|
49
|
+
headerTitle,
|
|
50
|
+
headerTitleAlign,
|
|
51
|
+
headerTitleStyle,
|
|
52
|
+
headerTransparent,
|
|
53
|
+
headerSearchBarOptions,
|
|
54
|
+
route,
|
|
55
|
+
title,
|
|
56
|
+
canGoBack
|
|
57
|
+
} = _ref;
|
|
55
58
|
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
|
|
56
59
|
const {
|
|
57
60
|
colors
|
|
@@ -64,7 +67,7 @@ function HeaderConfig({
|
|
|
64
67
|
const headerLargeStyleFlattened = _reactNative.StyleSheet.flatten(headerLargeStyle) || {};
|
|
65
68
|
const [backTitleFontFamily, largeTitleFontFamily, titleFontFamily] = (0, _FontProcessor.processFonts)([headerBackTitleStyleFlattened.fontFamily, headerLargeTitleStyleFlattened.fontFamily, headerTitleStyleFlattened.fontFamily]);
|
|
66
69
|
const titleText = title !== undefined ? title : route.name;
|
|
67
|
-
const titleColor = (
|
|
70
|
+
const titleColor = (_ref2 = (_headerTitleStyleFlat = headerTitleStyleFlattened.color) !== null && _headerTitleStyleFlat !== void 0 ? _headerTitleStyleFlat : headerTintColor) !== null && _ref2 !== void 0 ? _ref2 : colors.text;
|
|
68
71
|
const titleFontSize = headerTitleStyleFlattened.fontSize;
|
|
69
72
|
const titleFontWeight = headerTitleStyleFlattened.fontWeight;
|
|
70
73
|
const headerTitleStyleSupported = {
|
|
@@ -85,18 +88,22 @@ function HeaderConfig({
|
|
|
85
88
|
|
|
86
89
|
const headerLeftElement = headerLeft === null || headerLeft === void 0 ? void 0 : headerLeft({
|
|
87
90
|
tintColor,
|
|
88
|
-
|
|
89
|
-
|
|
91
|
+
canGoBack,
|
|
92
|
+
label: headerBackTitle
|
|
90
93
|
});
|
|
91
94
|
const headerRightElement = headerRight === null || headerRight === void 0 ? void 0 : headerRight({
|
|
92
|
-
tintColor
|
|
95
|
+
tintColor,
|
|
96
|
+
canGoBack
|
|
93
97
|
});
|
|
94
98
|
const headerTitleElement = typeof headerTitle === 'function' ? headerTitle({
|
|
95
99
|
tintColor,
|
|
96
100
|
children: titleText
|
|
97
101
|
}) : null;
|
|
102
|
+
const supportsHeaderSearchBar = typeof _reactNativeScreens.isSearchBarAvailableForCurrentPlatform === 'boolean' ? _reactNativeScreens.isSearchBarAvailableForCurrentPlatform : // Fallback for older versions of react-native-screens
|
|
103
|
+
_reactNative.Platform.OS === 'ios' && _reactNativeScreens.SearchBar != null;
|
|
104
|
+
const hasHeaderSearchBar = supportsHeaderSearchBar && headerSearchBarOptions != null;
|
|
98
105
|
|
|
99
|
-
if (
|
|
106
|
+
if (headerSearchBarOptions != null && !supportsHeaderSearchBar) {
|
|
100
107
|
throw new Error(`The current version of 'react-native-screens' doesn't support SearchBar in the header. Please update to the latest version to use this option.`);
|
|
101
108
|
}
|
|
102
109
|
/**
|
|
@@ -107,9 +114,15 @@ function HeaderConfig({
|
|
|
107
114
|
|
|
108
115
|
|
|
109
116
|
const backButtonInCustomView = headerBackVisible ? headerLeftElement != null : _reactNative.Platform.OS === 'android' && headerTitleElement != null;
|
|
110
|
-
|
|
117
|
+
const translucent = headerBackground != null || headerTransparent || // When using a SearchBar or large title, the header needs to be translucent for it to work on iOS
|
|
118
|
+
(hasHeaderSearchBar || headerLargeTitle) && _reactNative.Platform.OS === 'ios' && headerTransparent !== false;
|
|
119
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, headerBackground != null ? /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
120
|
+
style: [styles.background, headerTransparent ? styles.translucent : null, {
|
|
121
|
+
height: headerHeight
|
|
122
|
+
}]
|
|
123
|
+
}, headerBackground()) : null, /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderConfig, {
|
|
111
124
|
backButtonInCustomView: backButtonInCustomView,
|
|
112
|
-
backgroundColor: (_headerStyleFlattened = headerStyleFlattened.backgroundColor) !== null && _headerStyleFlattened !== void 0 ? _headerStyleFlattened : headerTransparent ? 'transparent' : colors.card,
|
|
125
|
+
backgroundColor: (_headerStyleFlattened = headerStyleFlattened.backgroundColor) !== null && _headerStyleFlattened !== void 0 ? _headerStyleFlattened : headerBackground != null || headerTransparent ? 'transparent' : colors.card,
|
|
113
126
|
backTitle: headerBackTitleVisible ? headerBackTitle : ' ',
|
|
114
127
|
backTitleFontFamily: backTitleFontFamily,
|
|
115
128
|
backTitleFontSize: headerBackTitleStyleFlattened.fontSize,
|
|
@@ -119,7 +132,7 @@ function HeaderConfig({
|
|
|
119
132
|
disableBackButtonMenu: headerBackButtonMenuEnabled === false,
|
|
120
133
|
hidden: headerShown === false,
|
|
121
134
|
hideBackButton: headerBackVisible === false,
|
|
122
|
-
hideShadow: headerShadowVisible === false,
|
|
135
|
+
hideShadow: headerShadowVisible === false || headerBackground != null || headerTransparent,
|
|
123
136
|
largeTitle: headerLargeTitle,
|
|
124
137
|
largeTitleBackgroundColor: headerLargeStyleFlattened.backgroundColor,
|
|
125
138
|
largeTitleColor: headerLargeTitleStyleFlattened.color,
|
|
@@ -134,7 +147,7 @@ function HeaderConfig({
|
|
|
134
147
|
titleFontWeight: titleFontWeight,
|
|
135
148
|
topInsetEnabled: insets.top !== 0,
|
|
136
149
|
translucent: // This defaults to `true`, so we can't pass `undefined`
|
|
137
|
-
|
|
150
|
+
translucent === true
|
|
138
151
|
}, _reactNative.Platform.OS === 'ios' ? /*#__PURE__*/React.createElement(React.Fragment, null, headerLeftElement != null ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderLeftView, null, headerLeftElement) : null, headerTitleElement != null ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderCenterView, null, headerTitleElement) : null) : /*#__PURE__*/React.createElement(React.Fragment, null, headerLeftElement != null || typeof headerTitle === 'function' ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderLeftView, null, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
139
152
|
style: styles.row
|
|
140
153
|
}, headerLeftElement, headerTitleAlign !== 'center' ? typeof headerTitle === 'function' ? headerTitleElement : /*#__PURE__*/React.createElement(_elements.HeaderTitle, {
|
|
@@ -145,13 +158,23 @@ function HeaderConfig({
|
|
|
145
158
|
style: headerTitleStyleSupported
|
|
146
159
|
}, titleText)) : null), headerBackImageSource !== undefined ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderBackButtonImage, {
|
|
147
160
|
source: headerBackImageSource
|
|
148
|
-
}) : null, headerRightElement != null ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderRightView, null, headerRightElement) : null,
|
|
161
|
+
}) : null, headerRightElement != null ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderRightView, null, headerRightElement) : null, hasHeaderSearchBar ? /*#__PURE__*/React.createElement(_reactNativeScreens.ScreenStackHeaderSearchBarView, null, /*#__PURE__*/React.createElement(_reactNativeScreens.SearchBar, headerSearchBarOptions)) : null));
|
|
149
162
|
}
|
|
150
163
|
|
|
151
164
|
const styles = _reactNative.StyleSheet.create({
|
|
152
165
|
row: {
|
|
153
166
|
flexDirection: 'row',
|
|
154
167
|
alignItems: 'center'
|
|
168
|
+
},
|
|
169
|
+
translucent: {
|
|
170
|
+
position: 'absolute',
|
|
171
|
+
top: 0,
|
|
172
|
+
left: 0,
|
|
173
|
+
right: 0,
|
|
174
|
+
zIndex: 1
|
|
175
|
+
},
|
|
176
|
+
background: {
|
|
177
|
+
overflow: 'hidden'
|
|
155
178
|
}
|
|
156
179
|
});
|
|
157
180
|
//# sourceMappingURL=HeaderConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeaderConfig.tsx"],"names":["HeaderConfig","headerBackImageSource","headerBackButtonMenuEnabled","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerBackVisible","headerShadowVisible","headerLargeStyle","headerLargeTitle","headerLargeTitleShadowVisible","headerLargeTitleStyle","headerLeft","headerRight","headerShown","headerStyle","headerBlurEffect","headerTintColor","headerTitle","headerTitleAlign","headerTitleStyle","headerTransparent","headerSearchBarOptions","route","title","canGoBack","insets","colors","tintColor","Platform","OS","primary","text","headerBackTitleStyleFlattened","StyleSheet","flatten","headerLargeTitleStyleFlattened","headerTitleStyleFlattened","headerStyleFlattened","headerLargeStyleFlattened","backTitleFontFamily","largeTitleFontFamily","titleFontFamily","fontFamily","titleText","undefined","name","titleColor","color","titleFontSize","fontSize","titleFontWeight","fontWeight","headerTitleStyleSupported","headerLeftElement","label","headerRightElement","headerTitleElement","children","SearchBar","Error","backButtonInCustomView","backgroundColor","card","I18nManager","isRTL","top","styles","row","create","flexDirection","alignItems"],"mappings":"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","sourcesContent":["import { HeaderTitle } from '@react-navigation/elements';\nimport { Route, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n I18nManager,\n Platform,\n StyleSheet,\n TextStyle,\n View,\n} from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport {\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n} from 'react-native-screens';\n\nimport type { NativeStackNavigationOptions } from '../types';\nimport { processFonts } from './FontProcessor';\n\ntype Props = NativeStackNavigationOptions & {\n route: Route<string>;\n canGoBack: boolean;\n};\n\nexport default function HeaderConfig({\n headerBackImageSource,\n headerBackButtonMenuEnabled,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible = true,\n headerBackVisible,\n headerShadowVisible,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleShadowVisible,\n headerLargeTitleStyle,\n headerLeft,\n headerRight,\n headerShown,\n headerStyle,\n headerBlurEffect,\n headerTintColor,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerTransparent,\n headerSearchBarOptions,\n route,\n title,\n canGoBack,\n}: Props): JSX.Element {\n const insets = useSafeAreaInsets();\n const { colors } = useTheme();\n const tintColor =\n headerTintColor ?? (Platform.OS === 'ios' ? colors.primary : colors.text);\n\n const headerBackTitleStyleFlattened =\n StyleSheet.flatten(headerBackTitleStyle) || {};\n const headerLargeTitleStyleFlattened =\n StyleSheet.flatten(headerLargeTitleStyle) || {};\n const headerTitleStyleFlattened = StyleSheet.flatten(headerTitleStyle) || {};\n const headerStyleFlattened = StyleSheet.flatten(headerStyle) || {};\n const headerLargeStyleFlattened = StyleSheet.flatten(headerLargeStyle) || {};\n\n const [backTitleFontFamily, largeTitleFontFamily, titleFontFamily] =\n processFonts([\n headerBackTitleStyleFlattened.fontFamily,\n headerLargeTitleStyleFlattened.fontFamily,\n headerTitleStyleFlattened.fontFamily,\n ]);\n\n const titleText = title !== undefined ? title : route.name;\n const titleColor =\n headerTitleStyleFlattened.color ?? headerTintColor ?? colors.text;\n const titleFontSize = headerTitleStyleFlattened.fontSize;\n const titleFontWeight = headerTitleStyleFlattened.fontWeight;\n\n const headerTitleStyleSupported: TextStyle = { color: titleColor };\n\n if (headerTitleStyleFlattened.fontFamily != null) {\n headerTitleStyleSupported.fontFamily = headerTitleStyleFlattened.fontFamily;\n }\n\n if (titleFontSize != null) {\n headerTitleStyleSupported.fontSize = titleFontSize;\n }\n\n if (titleFontWeight != null) {\n headerTitleStyleSupported.fontWeight = titleFontWeight;\n }\n\n const headerLeftElement = headerLeft?.({\n tintColor,\n label: headerBackTitle,\n canGoBack,\n });\n const headerRightElement = headerRight?.({ tintColor });\n const headerTitleElement =\n typeof headerTitle === 'function'\n ? headerTitle({ tintColor, children: titleText })\n : null;\n\n if (\n Platform.OS === 'ios' &&\n headerSearchBarOptions != null &&\n SearchBar == null\n ) {\n throw new Error(\n `The current version of 'react-native-screens' doesn't support SearchBar in the header. Please update to the latest version to use this option.`\n );\n }\n\n /**\n * We need to set this in if:\n * - Back button should stay visible when `headerLeft` is specified\n * - If `headerTitle` for Android is specified, so we only need to remove the title and keep the back button\n */\n const backButtonInCustomView = headerBackVisible\n ? headerLeftElement != null\n : Platform.OS === 'android' && headerTitleElement != null;\n\n return (\n <ScreenStackHeaderConfig\n backButtonInCustomView={backButtonInCustomView}\n backgroundColor={\n headerStyleFlattened.backgroundColor ??\n (headerTransparent ? 'transparent' : colors.card)\n }\n backTitle={headerBackTitleVisible ? headerBackTitle : ' '}\n backTitleFontFamily={backTitleFontFamily}\n backTitleFontSize={headerBackTitleStyleFlattened.fontSize}\n blurEffect={headerBlurEffect}\n color={tintColor}\n direction={I18nManager.isRTL ? 'rtl' : 'ltr'}\n disableBackButtonMenu={headerBackButtonMenuEnabled === false}\n hidden={headerShown === false}\n hideBackButton={headerBackVisible === false}\n hideShadow={headerShadowVisible === false}\n largeTitle={headerLargeTitle}\n largeTitleBackgroundColor={headerLargeStyleFlattened.backgroundColor}\n largeTitleColor={headerLargeTitleStyleFlattened.color}\n largeTitleFontFamily={largeTitleFontFamily}\n largeTitleFontSize={headerLargeTitleStyleFlattened.fontSize}\n largeTitleFontWeight={headerLargeTitleStyleFlattened.fontWeight}\n largeTitleHideShadow={headerLargeTitleShadowVisible === false}\n title={typeof headerTitle === 'string' ? headerTitle : titleText}\n titleColor={titleColor}\n titleFontFamily={titleFontFamily}\n titleFontSize={titleFontSize}\n titleFontWeight={titleFontWeight}\n topInsetEnabled={insets.top !== 0}\n translucent={\n // This defaults to `true`, so we can't pass `undefined`\n headerTransparent === true\n }\n >\n {Platform.OS === 'ios' ? (\n <>\n {headerLeftElement != null ? (\n <ScreenStackHeaderLeftView>\n {headerLeftElement}\n </ScreenStackHeaderLeftView>\n ) : null}\n {headerTitleElement != null ? (\n <ScreenStackHeaderCenterView>\n {headerTitleElement}\n </ScreenStackHeaderCenterView>\n ) : null}\n </>\n ) : (\n <>\n {headerLeftElement != null || typeof headerTitle === 'function' ? (\n <ScreenStackHeaderLeftView>\n <View style={styles.row}>\n {headerLeftElement}\n {headerTitleAlign !== 'center' ? (\n typeof headerTitle === 'function' ? (\n headerTitleElement\n ) : (\n <HeaderTitle\n tintColor={tintColor}\n style={headerTitleStyleSupported}\n >\n {titleText}\n </HeaderTitle>\n )\n ) : null}\n </View>\n </ScreenStackHeaderLeftView>\n ) : null}\n {headerTitleAlign === 'center' ? (\n <ScreenStackHeaderCenterView>\n {typeof headerTitle === 'function' ? (\n headerTitleElement\n ) : (\n <HeaderTitle\n tintColor={tintColor}\n style={headerTitleStyleSupported}\n >\n {titleText}\n </HeaderTitle>\n )}\n </ScreenStackHeaderCenterView>\n ) : null}\n </>\n )}\n {headerBackImageSource !== undefined ? (\n <ScreenStackHeaderBackButtonImage source={headerBackImageSource} />\n ) : null}\n {headerRightElement != null ? (\n <ScreenStackHeaderRightView>\n {headerRightElement}\n </ScreenStackHeaderRightView>\n ) : null}\n {Platform.OS === 'ios' && headerSearchBarOptions != null ? (\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...headerSearchBarOptions} />\n </ScreenStackHeaderSearchBarView>\n ) : null}\n </ScreenStackHeaderConfig>\n );\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["HeaderConfig.tsx"],"names":["HeaderConfig","headerHeight","headerBackImageSource","headerBackButtonMenuEnabled","headerBackTitle","headerBackTitleStyle","headerBackTitleVisible","headerBackVisible","headerShadowVisible","headerLargeStyle","headerLargeTitle","headerLargeTitleShadowVisible","headerLargeTitleStyle","headerBackground","headerLeft","headerRight","headerShown","headerStyle","headerBlurEffect","headerTintColor","headerTitle","headerTitleAlign","headerTitleStyle","headerTransparent","headerSearchBarOptions","route","title","canGoBack","insets","colors","tintColor","Platform","OS","primary","text","headerBackTitleStyleFlattened","StyleSheet","flatten","headerLargeTitleStyleFlattened","headerTitleStyleFlattened","headerStyleFlattened","headerLargeStyleFlattened","backTitleFontFamily","largeTitleFontFamily","titleFontFamily","fontFamily","titleText","undefined","name","titleColor","color","titleFontSize","fontSize","titleFontWeight","fontWeight","headerTitleStyleSupported","headerLeftElement","label","headerRightElement","headerTitleElement","children","supportsHeaderSearchBar","isSearchBarAvailableForCurrentPlatform","SearchBar","hasHeaderSearchBar","Error","backButtonInCustomView","translucent","styles","background","height","backgroundColor","card","I18nManager","isRTL","top","row","create","flexDirection","alignItems","position","left","right","zIndex","overflow"],"mappings":"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","sourcesContent":["import { HeaderTitle } from '@react-navigation/elements';\nimport { Route, useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n I18nManager,\n Platform,\n StyleSheet,\n TextStyle,\n View,\n} from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderConfig,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderRightView,\n ScreenStackHeaderSearchBarView,\n SearchBar,\n} from 'react-native-screens';\n\nimport type { NativeStackNavigationOptions } from '../types';\nimport { processFonts } from './FontProcessor';\n\ntype Props = NativeStackNavigationOptions & {\n headerHeight: number;\n route: Route<string>;\n canGoBack: boolean;\n};\n\nexport default function HeaderConfig({\n headerHeight,\n headerBackImageSource,\n headerBackButtonMenuEnabled,\n headerBackTitle,\n headerBackTitleStyle,\n headerBackTitleVisible = true,\n headerBackVisible,\n headerShadowVisible,\n headerLargeStyle,\n headerLargeTitle,\n headerLargeTitleShadowVisible,\n headerLargeTitleStyle,\n headerBackground,\n headerLeft,\n headerRight,\n headerShown,\n headerStyle,\n headerBlurEffect,\n headerTintColor,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerTransparent,\n headerSearchBarOptions,\n route,\n title,\n canGoBack,\n}: Props): JSX.Element {\n const insets = useSafeAreaInsets();\n\n const { colors } = useTheme();\n const tintColor =\n headerTintColor ?? (Platform.OS === 'ios' ? colors.primary : colors.text);\n\n const headerBackTitleStyleFlattened =\n StyleSheet.flatten(headerBackTitleStyle) || {};\n const headerLargeTitleStyleFlattened =\n StyleSheet.flatten(headerLargeTitleStyle) || {};\n const headerTitleStyleFlattened = StyleSheet.flatten(headerTitleStyle) || {};\n const headerStyleFlattened = StyleSheet.flatten(headerStyle) || {};\n const headerLargeStyleFlattened = StyleSheet.flatten(headerLargeStyle) || {};\n\n const [backTitleFontFamily, largeTitleFontFamily, titleFontFamily] =\n processFonts([\n headerBackTitleStyleFlattened.fontFamily,\n headerLargeTitleStyleFlattened.fontFamily,\n headerTitleStyleFlattened.fontFamily,\n ]);\n\n const titleText = title !== undefined ? title : route.name;\n const titleColor =\n headerTitleStyleFlattened.color ?? headerTintColor ?? colors.text;\n const titleFontSize = headerTitleStyleFlattened.fontSize;\n const titleFontWeight = headerTitleStyleFlattened.fontWeight;\n\n const headerTitleStyleSupported: TextStyle = { color: titleColor };\n\n if (headerTitleStyleFlattened.fontFamily != null) {\n headerTitleStyleSupported.fontFamily = headerTitleStyleFlattened.fontFamily;\n }\n\n if (titleFontSize != null) {\n headerTitleStyleSupported.fontSize = titleFontSize;\n }\n\n if (titleFontWeight != null) {\n headerTitleStyleSupported.fontWeight = titleFontWeight;\n }\n\n const headerLeftElement = headerLeft?.({\n tintColor,\n canGoBack,\n label: headerBackTitle,\n });\n const headerRightElement = headerRight?.({\n tintColor,\n canGoBack,\n });\n const headerTitleElement =\n typeof headerTitle === 'function'\n ? headerTitle({ tintColor, children: titleText })\n : null;\n\n const supportsHeaderSearchBar =\n typeof isSearchBarAvailableForCurrentPlatform === 'boolean'\n ? isSearchBarAvailableForCurrentPlatform\n : // Fallback for older versions of react-native-screens\n Platform.OS === 'ios' && SearchBar != null;\n\n const hasHeaderSearchBar =\n supportsHeaderSearchBar && headerSearchBarOptions != null;\n\n if (headerSearchBarOptions != null && !supportsHeaderSearchBar) {\n throw new Error(\n `The current version of 'react-native-screens' doesn't support SearchBar in the header. Please update to the latest version to use this option.`\n );\n }\n\n /**\n * We need to set this in if:\n * - Back button should stay visible when `headerLeft` is specified\n * - If `headerTitle` for Android is specified, so we only need to remove the title and keep the back button\n */\n const backButtonInCustomView = headerBackVisible\n ? headerLeftElement != null\n : Platform.OS === 'android' && headerTitleElement != null;\n\n const translucent =\n headerBackground != null ||\n headerTransparent ||\n // When using a SearchBar or large title, the header needs to be translucent for it to work on iOS\n ((hasHeaderSearchBar || headerLargeTitle) &&\n Platform.OS === 'ios' &&\n headerTransparent !== false);\n\n return (\n <>\n {headerBackground != null ? (\n <View\n style={[\n styles.background,\n headerTransparent ? styles.translucent : null,\n { height: headerHeight },\n ]}\n >\n {headerBackground()}\n </View>\n ) : null}\n <ScreenStackHeaderConfig\n backButtonInCustomView={backButtonInCustomView}\n backgroundColor={\n headerStyleFlattened.backgroundColor ??\n (headerBackground != null || headerTransparent\n ? 'transparent'\n : colors.card)\n }\n backTitle={headerBackTitleVisible ? headerBackTitle : ' '}\n backTitleFontFamily={backTitleFontFamily}\n backTitleFontSize={headerBackTitleStyleFlattened.fontSize}\n blurEffect={headerBlurEffect}\n color={tintColor}\n direction={I18nManager.isRTL ? 'rtl' : 'ltr'}\n disableBackButtonMenu={headerBackButtonMenuEnabled === false}\n hidden={headerShown === false}\n hideBackButton={headerBackVisible === false}\n hideShadow={\n headerShadowVisible === false ||\n headerBackground != null ||\n headerTransparent\n }\n largeTitle={headerLargeTitle}\n largeTitleBackgroundColor={headerLargeStyleFlattened.backgroundColor}\n largeTitleColor={headerLargeTitleStyleFlattened.color}\n largeTitleFontFamily={largeTitleFontFamily}\n largeTitleFontSize={headerLargeTitleStyleFlattened.fontSize}\n largeTitleFontWeight={headerLargeTitleStyleFlattened.fontWeight}\n largeTitleHideShadow={headerLargeTitleShadowVisible === false}\n title={typeof headerTitle === 'string' ? headerTitle : titleText}\n titleColor={titleColor}\n titleFontFamily={titleFontFamily}\n titleFontSize={titleFontSize}\n titleFontWeight={titleFontWeight}\n topInsetEnabled={insets.top !== 0}\n translucent={\n // This defaults to `true`, so we can't pass `undefined`\n translucent === true\n }\n >\n {Platform.OS === 'ios' ? (\n <>\n {headerLeftElement != null ? (\n <ScreenStackHeaderLeftView>\n {headerLeftElement}\n </ScreenStackHeaderLeftView>\n ) : null}\n {headerTitleElement != null ? (\n <ScreenStackHeaderCenterView>\n {headerTitleElement}\n </ScreenStackHeaderCenterView>\n ) : null}\n </>\n ) : (\n <>\n {headerLeftElement != null || typeof headerTitle === 'function' ? (\n <ScreenStackHeaderLeftView>\n <View style={styles.row}>\n {headerLeftElement}\n {headerTitleAlign !== 'center' ? (\n typeof headerTitle === 'function' ? (\n headerTitleElement\n ) : (\n <HeaderTitle\n tintColor={tintColor}\n style={headerTitleStyleSupported}\n >\n {titleText}\n </HeaderTitle>\n )\n ) : null}\n </View>\n </ScreenStackHeaderLeftView>\n ) : null}\n {headerTitleAlign === 'center' ? (\n <ScreenStackHeaderCenterView>\n {typeof headerTitle === 'function' ? (\n headerTitleElement\n ) : (\n <HeaderTitle\n tintColor={tintColor}\n style={headerTitleStyleSupported}\n >\n {titleText}\n </HeaderTitle>\n )}\n </ScreenStackHeaderCenterView>\n ) : null}\n </>\n )}\n {headerBackImageSource !== undefined ? (\n <ScreenStackHeaderBackButtonImage source={headerBackImageSource} />\n ) : null}\n {headerRightElement != null ? (\n <ScreenStackHeaderRightView>\n {headerRightElement}\n </ScreenStackHeaderRightView>\n ) : null}\n {hasHeaderSearchBar ? (\n <ScreenStackHeaderSearchBarView>\n <SearchBar {...headerSearchBarOptions} />\n </ScreenStackHeaderSearchBarView>\n ) : null}\n </ScreenStackHeaderConfig>\n </>\n );\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n translucent: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 1,\n },\n background: {\n overflow: 'hidden',\n },\n});\n"]}
|
|
@@ -15,19 +15,24 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const TRANSPARENT_PRESENTATIONS = ['transparentModal', 'containedTransparentModal'];
|
|
19
|
+
|
|
20
|
+
function NativeStackView(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
state,
|
|
23
|
+
descriptors
|
|
24
|
+
} = _ref;
|
|
22
25
|
return /*#__PURE__*/React.createElement(_elements.SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
23
26
|
style: styles.container
|
|
24
27
|
}, state.routes.map((route, i) => {
|
|
25
|
-
var _state$routes;
|
|
28
|
+
var _state$routes, _state$routes2;
|
|
26
29
|
|
|
27
30
|
const isFocused = state.index === i;
|
|
28
31
|
const canGoBack = i !== 0;
|
|
29
32
|
const previousKey = (_state$routes = state.routes[i - 1]) === null || _state$routes === void 0 ? void 0 : _state$routes.key;
|
|
33
|
+
const nextKey = (_state$routes2 = state.routes[i + 1]) === null || _state$routes2 === void 0 ? void 0 : _state$routes2.key;
|
|
30
34
|
const previousDescriptor = previousKey ? descriptors[previousKey] : undefined;
|
|
35
|
+
const nexDescriptor = nextKey ? descriptors[nextKey] : undefined;
|
|
31
36
|
const {
|
|
32
37
|
options,
|
|
33
38
|
navigation,
|
|
@@ -46,9 +51,11 @@ function NativeStackView({
|
|
|
46
51
|
headerStyle,
|
|
47
52
|
headerShadowVisible,
|
|
48
53
|
headerTransparent,
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
headerBackTitle,
|
|
55
|
+
presentation,
|
|
56
|
+
contentStyle
|
|
51
57
|
} = options;
|
|
58
|
+
const nextPresentation = nexDescriptor === null || nexDescriptor === void 0 ? void 0 : nexDescriptor.options.presentation;
|
|
52
59
|
return /*#__PURE__*/React.createElement(_elements.Screen, {
|
|
53
60
|
key: route.key,
|
|
54
61
|
focused: isFocused,
|
|
@@ -66,37 +73,50 @@ function NativeStackView({
|
|
|
66
73
|
}) : /*#__PURE__*/React.createElement(_elements.Header, {
|
|
67
74
|
title: (0, _elements.getHeaderTitle)(options, route.name),
|
|
68
75
|
headerTintColor: headerTintColor,
|
|
69
|
-
headerLeft: typeof headerLeft === 'function' ?
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
headerLeft: typeof headerLeft === 'function' ? _ref2 => {
|
|
77
|
+
let {
|
|
78
|
+
tintColor
|
|
79
|
+
} = _ref2;
|
|
80
|
+
return headerLeft({
|
|
81
|
+
tintColor,
|
|
82
|
+
canGoBack,
|
|
83
|
+
label: headerBackTitle
|
|
84
|
+
});
|
|
85
|
+
} : headerLeft === undefined && canGoBack ? _ref3 => {
|
|
86
|
+
let {
|
|
87
|
+
tintColor
|
|
88
|
+
} = _ref3;
|
|
89
|
+
return /*#__PURE__*/React.createElement(_elements.HeaderBackButton, {
|
|
90
|
+
tintColor: tintColor,
|
|
91
|
+
backImage: headerBackImageSource !== undefined ? () => /*#__PURE__*/React.createElement(_reactNative.Image, {
|
|
92
|
+
source: headerBackImageSource,
|
|
93
|
+
style: [styles.backImage, {
|
|
94
|
+
tintColor
|
|
95
|
+
}]
|
|
96
|
+
}) : undefined,
|
|
97
|
+
onPress: navigation.goBack,
|
|
98
|
+
canGoBack: canGoBack
|
|
99
|
+
});
|
|
100
|
+
} : headerLeft,
|
|
101
|
+
headerRight: typeof headerRight === 'function' ? _ref4 => {
|
|
102
|
+
let {
|
|
103
|
+
tintColor
|
|
104
|
+
} = _ref4;
|
|
105
|
+
return headerRight({
|
|
106
|
+
tintColor,
|
|
107
|
+
canGoBack
|
|
108
|
+
});
|
|
109
|
+
} : headerRight,
|
|
110
|
+
headerTitle: typeof headerTitle === 'function' ? _ref5 => {
|
|
111
|
+
let {
|
|
112
|
+
children,
|
|
113
|
+
tintColor
|
|
114
|
+
} = _ref5;
|
|
115
|
+
return headerTitle({
|
|
116
|
+
children,
|
|
117
|
+
tintColor
|
|
118
|
+
});
|
|
119
|
+
} : headerTitle,
|
|
100
120
|
headerTitleAlign: headerTitleAlign,
|
|
101
121
|
headerTitleStyle: headerTitleStyle,
|
|
102
122
|
headerStyle: [headerTransparent ? {
|
|
@@ -108,8 +128,10 @@ function NativeStackView({
|
|
|
108
128
|
} : null]
|
|
109
129
|
}),
|
|
110
130
|
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
111
|
-
display: isFocused ? 'flex' : 'none'
|
|
112
|
-
}
|
|
131
|
+
display: isFocused || nextPresentation != null && TRANSPARENT_PRESENTATIONS.includes(nextPresentation) ? 'flex' : 'none'
|
|
132
|
+
}, presentation != null && TRANSPARENT_PRESENTATIONS.includes(presentation) ? {
|
|
133
|
+
backgroundColor: 'transparent'
|
|
134
|
+
} : null]
|
|
113
135
|
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
114
136
|
style: [styles.contentContainer, contentStyle]
|
|
115
137
|
}, render()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NativeStackView.tsx"],"names":["NativeStackView","state","descriptors","styles","container","routes","map","route","i","isFocused","index","canGoBack","previousKey","key","previousDescriptor","undefined","options","navigation","render","header","headerShown","headerTintColor","headerBackImageSource","headerLeft","headerRight","headerTitle","headerTitleAlign","headerTitleStyle","headerStyle","headerShadowVisible","headerTransparent","contentStyle","headerBackTitle","back","title","name","tintColor","label","backImage","goBack","children","position","backgroundColor","shadowOpacity","borderBottomWidth","StyleSheet","absoluteFill","display","contentContainer","create","flex","height","width","margin","resizeMode"],"mappings":"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","sourcesContent":["import {\n getHeaderTitle,\n Header,\n HeaderBackButton,\n SafeAreaProviderCompat,\n Screen,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n StackNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport type {\n NativeStackDescriptorMap,\n NativeStackNavigationHelpers,\n} from '../types';\n\ntype Props = {\n state: StackNavigationState<ParamListBase>;\n // This is used for the native implementation of the stack.\n // eslint-disable-next-line react/no-unused-prop-types\n navigation: NativeStackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n};\n\nexport default function NativeStackView({ state, descriptors }: Props) {\n return (\n <SafeAreaProviderCompat>\n <View style={styles.container}>\n {state.routes.map((route, i) => {\n const isFocused = state.index === i;\n const canGoBack = i !== 0;\n const previousKey = state.routes[i - 1]?.key;\n const previousDescriptor = previousKey\n ? descriptors[previousKey]\n : undefined;\n const { options, navigation, render } = descriptors[route.key];\n\n const {\n header,\n headerShown,\n headerTintColor,\n headerBackImageSource,\n headerLeft,\n headerRight,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerStyle,\n headerShadowVisible,\n headerTransparent,\n contentStyle,\n headerBackTitle,\n } = options;\n\n return (\n <Screen\n key={route.key}\n focused={isFocused}\n route={route}\n navigation={navigation}\n headerShown={headerShown}\n headerTransparent={headerTransparent}\n header={\n header !== undefined ? (\n header({\n back: previousDescriptor\n ? {\n title: getHeaderTitle(\n previousDescriptor.options,\n previousDescriptor.route.name\n ),\n }\n : undefined,\n options,\n route,\n navigation,\n })\n ) : (\n <Header\n title={getHeaderTitle(options, route.name)}\n headerTintColor={headerTintColor}\n headerLeft={\n typeof headerLeft === 'function'\n ? ({ tintColor }) =>\n headerLeft({\n tintColor,\n canGoBack,\n label: headerBackTitle,\n })\n : headerLeft === undefined && canGoBack\n ? ({ tintColor }) => (\n <HeaderBackButton\n tintColor={tintColor}\n backImage={\n headerBackImageSource !== undefined\n ? () => (\n <Image\n source={headerBackImageSource}\n style={[\n styles.backImage,\n { tintColor },\n ]}\n />\n )\n : undefined\n }\n onPress={navigation.goBack}\n canGoBack={canGoBack}\n />\n )\n : headerLeft\n }\n headerRight={\n typeof headerRight === 'function'\n ? ({ tintColor }) => headerRight({ tintColor })\n : headerRight\n }\n headerTitle={\n typeof headerTitle === 'function'\n ? ({ children, tintColor }) =>\n headerTitle({ children, tintColor })\n : headerTitle\n }\n headerTitleAlign={headerTitleAlign}\n headerTitleStyle={headerTitleStyle}\n headerStyle={[\n headerTransparent\n ? {\n position: 'absolute',\n backgroundColor: 'transparent',\n }\n : null,\n headerStyle,\n headerShadowVisible === false\n ? { shadowOpacity: 0, borderBottomWidth: 0 }\n : null,\n ]}\n />\n )\n }\n style={[\n StyleSheet.absoluteFill,\n { display: isFocused ? 'flex' : 'none' },\n ]}\n >\n <View style={[styles.contentContainer, contentStyle]}>\n {render()}\n </View>\n </Screen>\n );\n })}\n </View>\n </SafeAreaProviderCompat>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n contentContainer: {\n flex: 1,\n },\n backImage: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["NativeStackView.tsx"],"names":["TRANSPARENT_PRESENTATIONS","NativeStackView","state","descriptors","styles","container","routes","map","route","i","isFocused","index","canGoBack","previousKey","key","nextKey","previousDescriptor","undefined","nexDescriptor","options","navigation","render","header","headerShown","headerTintColor","headerBackImageSource","headerLeft","headerRight","headerTitle","headerTitleAlign","headerTitleStyle","headerStyle","headerShadowVisible","headerTransparent","headerBackTitle","presentation","contentStyle","nextPresentation","back","title","name","tintColor","label","backImage","goBack","children","position","backgroundColor","shadowOpacity","borderBottomWidth","StyleSheet","absoluteFill","display","includes","contentContainer","create","flex","height","width","margin","resizeMode"],"mappings":"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","sourcesContent":["import {\n getHeaderTitle,\n Header,\n HeaderBackButton,\n SafeAreaProviderCompat,\n Screen,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n StackNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport type {\n NativeStackDescriptorMap,\n NativeStackNavigationHelpers,\n} from '../types';\n\ntype Props = {\n state: StackNavigationState<ParamListBase>;\n // This is used for the native implementation of the stack.\n // eslint-disable-next-line react/no-unused-prop-types\n navigation: NativeStackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n};\n\nconst TRANSPARENT_PRESENTATIONS = [\n 'transparentModal',\n 'containedTransparentModal',\n];\n\nexport default function NativeStackView({ state, descriptors }: Props) {\n return (\n <SafeAreaProviderCompat>\n <View style={styles.container}>\n {state.routes.map((route, i) => {\n const isFocused = state.index === i;\n const canGoBack = i !== 0;\n const previousKey = state.routes[i - 1]?.key;\n const nextKey = state.routes[i + 1]?.key;\n const previousDescriptor = previousKey\n ? descriptors[previousKey]\n : undefined;\n const nexDescriptor = nextKey ? descriptors[nextKey] : undefined;\n const { options, navigation, render } = descriptors[route.key];\n\n const {\n header,\n headerShown,\n headerTintColor,\n headerBackImageSource,\n headerLeft,\n headerRight,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerStyle,\n headerShadowVisible,\n headerTransparent,\n headerBackTitle,\n presentation,\n contentStyle,\n } = options;\n\n const nextPresentation = nexDescriptor?.options.presentation;\n\n return (\n <Screen\n key={route.key}\n focused={isFocused}\n route={route}\n navigation={navigation}\n headerShown={headerShown}\n headerTransparent={headerTransparent}\n header={\n header !== undefined ? (\n header({\n back: previousDescriptor\n ? {\n title: getHeaderTitle(\n previousDescriptor.options,\n previousDescriptor.route.name\n ),\n }\n : undefined,\n options,\n route,\n navigation,\n })\n ) : (\n <Header\n title={getHeaderTitle(options, route.name)}\n headerTintColor={headerTintColor}\n headerLeft={\n typeof headerLeft === 'function'\n ? ({ tintColor }) =>\n headerLeft({\n tintColor,\n canGoBack,\n label: headerBackTitle,\n })\n : headerLeft === undefined && canGoBack\n ? ({ tintColor }) => (\n <HeaderBackButton\n tintColor={tintColor}\n backImage={\n headerBackImageSource !== undefined\n ? () => (\n <Image\n source={headerBackImageSource}\n style={[\n styles.backImage,\n { tintColor },\n ]}\n />\n )\n : undefined\n }\n onPress={navigation.goBack}\n canGoBack={canGoBack}\n />\n )\n : headerLeft\n }\n headerRight={\n typeof headerRight === 'function'\n ? ({ tintColor }) =>\n headerRight({ tintColor, canGoBack })\n : headerRight\n }\n headerTitle={\n typeof headerTitle === 'function'\n ? ({ children, tintColor }) =>\n headerTitle({ children, tintColor })\n : headerTitle\n }\n headerTitleAlign={headerTitleAlign}\n headerTitleStyle={headerTitleStyle}\n headerStyle={[\n headerTransparent\n ? {\n position: 'absolute',\n backgroundColor: 'transparent',\n }\n : null,\n headerStyle,\n headerShadowVisible === false\n ? { shadowOpacity: 0, borderBottomWidth: 0 }\n : null,\n ]}\n />\n )\n }\n style={[\n StyleSheet.absoluteFill,\n {\n display:\n isFocused ||\n (nextPresentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(nextPresentation))\n ? 'flex'\n : 'none',\n },\n presentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(presentation)\n ? { backgroundColor: 'transparent' }\n : null,\n ]}\n >\n <View style={[styles.contentContainer, contentStyle]}>\n {render()}\n </View>\n </Screen>\n );\n })}\n </View>\n </SafeAreaProviderCompat>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n contentContainer: {\n flex: 1,\n },\n backImage: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n },\n});\n"]}
|