@react-navigation/core 7.0.0-alpha.15 → 7.0.0-alpha.17
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/StaticNavigation.js +78 -30
- package/lib/commonjs/StaticNavigation.js.map +1 -1
- package/lib/module/StaticNavigation.js +78 -30
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +17 -11
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/StaticNavigation.tsx +158 -63
|
@@ -143,11 +143,12 @@ function createComponentForStaticNavigation(tree, displayName) {
|
|
|
143
143
|
NavigatorComponent.displayName = displayName;
|
|
144
144
|
return NavigatorComponent;
|
|
145
145
|
}
|
|
146
|
-
|
|
147
146
|
/**
|
|
148
147
|
* Create a path config object from a static navigation config for deep linking.
|
|
149
148
|
*
|
|
150
149
|
* @param tree Static navigation config.
|
|
150
|
+
* @param options Additional options from `linking.config`.
|
|
151
|
+
* @param auto Whether to automatically generate paths for leaf screens.
|
|
151
152
|
* @returns Path config object to use in linking config.
|
|
152
153
|
*
|
|
153
154
|
* @example
|
|
@@ -161,36 +162,83 @@ function createComponentForStaticNavigation(tree, displayName) {
|
|
|
161
162
|
* };
|
|
162
163
|
* ```
|
|
163
164
|
*/
|
|
164
|
-
function createPathConfigForStaticNavigation(tree) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
165
|
+
function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
166
|
+
let initialScreenConfig;
|
|
167
|
+
const createPathConfigForTree = (t, o, skipInitialDetection) => {
|
|
168
|
+
const createPathConfigForScreens = (screens, initialRouteName) => {
|
|
169
|
+
return Object.fromEntries(Object.entries(screens)
|
|
170
|
+
// Re-order to move the initial route to the front
|
|
171
|
+
// This way we can detect the initial route correctly
|
|
172
|
+
.sort((_ref4, _ref5) => {
|
|
173
|
+
let [a] = _ref4;
|
|
174
|
+
let [b] = _ref5;
|
|
175
|
+
if (a === initialRouteName) {
|
|
176
|
+
return -1;
|
|
174
177
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
178
|
+
if (b === initialRouteName) {
|
|
179
|
+
return 1;
|
|
180
|
+
}
|
|
181
|
+
return 0;
|
|
182
|
+
}).map(_ref6 => {
|
|
183
|
+
let [key, item] = _ref6;
|
|
184
|
+
const screenConfig = {};
|
|
185
|
+
if ('linking' in item) {
|
|
186
|
+
if (typeof item.linking === 'string') {
|
|
187
|
+
screenConfig.path = item.linking;
|
|
188
|
+
} else {
|
|
189
|
+
Object.assign(screenConfig, item.linking);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
let screens;
|
|
193
|
+
if ('config' in item) {
|
|
194
|
+
screens = createPathConfigForTree(item, undefined, skipInitialDetection || screenConfig.path != null);
|
|
195
|
+
} else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
|
|
196
|
+
screens = createPathConfigForTree(item.screen, undefined, skipInitialDetection || screenConfig.path != null);
|
|
197
|
+
}
|
|
198
|
+
if (screens) {
|
|
199
|
+
screenConfig.screens = screens;
|
|
200
|
+
}
|
|
201
|
+
if (auto && !screenConfig.screens && !('linking' in item)) {
|
|
202
|
+
if (screenConfig.path) {
|
|
203
|
+
if (!skipInitialDetection) {
|
|
204
|
+
// Normalize the path to remove leading and trailing slashes
|
|
205
|
+
const path = screenConfig.path?.split('/').filter(Boolean).join('/');
|
|
206
|
+
|
|
207
|
+
// We encounter a leaf screen with empty path,
|
|
208
|
+
// Clear the initial screen config as it's not needed anymore
|
|
209
|
+
if (!skipInitialDetection && path === '') {
|
|
210
|
+
initialScreenConfig = undefined;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
} else {
|
|
214
|
+
if (!skipInitialDetection && initialScreenConfig == null) {
|
|
215
|
+
initialScreenConfig = screenConfig;
|
|
216
|
+
}
|
|
217
|
+
screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return [key, screenConfig];
|
|
221
|
+
}).filter(_ref7 => {
|
|
222
|
+
let [, screen] = _ref7;
|
|
223
|
+
return Object.keys(screen).length > 0;
|
|
224
|
+
}));
|
|
225
|
+
};
|
|
226
|
+
const screens = t.config.screens ? createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName) : {};
|
|
227
|
+
if (t.config.groups) {
|
|
228
|
+
Object.entries(t.config.groups).forEach(_ref8 => {
|
|
229
|
+
let [, group] = _ref8;
|
|
230
|
+
Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
if (Object.keys(screens).length === 0) {
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
return screens;
|
|
237
|
+
};
|
|
238
|
+
const screens = createPathConfigForTree(tree, options, false);
|
|
239
|
+
if (auto && initialScreenConfig) {
|
|
240
|
+
initialScreenConfig.path = '';
|
|
193
241
|
}
|
|
194
|
-
return
|
|
242
|
+
return screens;
|
|
195
243
|
}
|
|
196
244
|
//# sourceMappingURL=StaticNavigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_reactIs","_useRoute","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","MemoizedScreen","memo","_ref","component","route","useRoute","children","createElement","getItemsFromScreens","Screen","screens","entries","map","_ref2","name","item","props","useIf","isNavigator","screen","if","_if","rest","isValidElementType","createComponentForStaticNavigation","Error","element","shouldRender","tree","displayName","Navigator","Group","config","groups","items","push","_ref3","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","createPathConfigForScreens","fromEntries","_ref4","screenConfig","linking","path","filter","
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactIs","_useRoute","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","MemoizedScreen","memo","_ref","component","route","useRoute","children","createElement","getItemsFromScreens","Screen","screens","entries","map","_ref2","name","item","props","useIf","isNavigator","screen","if","_if","rest","isValidElementType","createComponentForStaticNavigation","Error","element","shouldRender","tree","displayName","Navigator","Group","config","groups","items","push","_ref3","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","_ref4","_ref5","b","_ref6","screenConfig","linking","path","undefined","split","filter","Boolean","join","replace","toLowerCase","_ref7","keys","forEach","_ref8"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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"}
|
|
@@ -135,11 +135,12 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
135
135
|
NavigatorComponent.displayName = displayName;
|
|
136
136
|
return NavigatorComponent;
|
|
137
137
|
}
|
|
138
|
-
|
|
139
138
|
/**
|
|
140
139
|
* Create a path config object from a static navigation config for deep linking.
|
|
141
140
|
*
|
|
142
141
|
* @param tree Static navigation config.
|
|
142
|
+
* @param options Additional options from `linking.config`.
|
|
143
|
+
* @param auto Whether to automatically generate paths for leaf screens.
|
|
143
144
|
* @returns Path config object to use in linking config.
|
|
144
145
|
*
|
|
145
146
|
* @example
|
|
@@ -153,36 +154,83 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
153
154
|
* };
|
|
154
155
|
* ```
|
|
155
156
|
*/
|
|
156
|
-
export function createPathConfigForStaticNavigation(tree) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
157
|
+
export function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
158
|
+
let initialScreenConfig;
|
|
159
|
+
const createPathConfigForTree = (t, o, skipInitialDetection) => {
|
|
160
|
+
const createPathConfigForScreens = (screens, initialRouteName) => {
|
|
161
|
+
return Object.fromEntries(Object.entries(screens)
|
|
162
|
+
// Re-order to move the initial route to the front
|
|
163
|
+
// This way we can detect the initial route correctly
|
|
164
|
+
.sort((_ref4, _ref5) => {
|
|
165
|
+
let [a] = _ref4;
|
|
166
|
+
let [b] = _ref5;
|
|
167
|
+
if (a === initialRouteName) {
|
|
168
|
+
return -1;
|
|
166
169
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
170
|
+
if (b === initialRouteName) {
|
|
171
|
+
return 1;
|
|
172
|
+
}
|
|
173
|
+
return 0;
|
|
174
|
+
}).map(_ref6 => {
|
|
175
|
+
let [key, item] = _ref6;
|
|
176
|
+
const screenConfig = {};
|
|
177
|
+
if ('linking' in item) {
|
|
178
|
+
if (typeof item.linking === 'string') {
|
|
179
|
+
screenConfig.path = item.linking;
|
|
180
|
+
} else {
|
|
181
|
+
Object.assign(screenConfig, item.linking);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
let screens;
|
|
185
|
+
if ('config' in item) {
|
|
186
|
+
screens = createPathConfigForTree(item, undefined, skipInitialDetection || screenConfig.path != null);
|
|
187
|
+
} else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
|
|
188
|
+
screens = createPathConfigForTree(item.screen, undefined, skipInitialDetection || screenConfig.path != null);
|
|
189
|
+
}
|
|
190
|
+
if (screens) {
|
|
191
|
+
screenConfig.screens = screens;
|
|
192
|
+
}
|
|
193
|
+
if (auto && !screenConfig.screens && !('linking' in item)) {
|
|
194
|
+
if (screenConfig.path) {
|
|
195
|
+
if (!skipInitialDetection) {
|
|
196
|
+
// Normalize the path to remove leading and trailing slashes
|
|
197
|
+
const path = screenConfig.path?.split('/').filter(Boolean).join('/');
|
|
198
|
+
|
|
199
|
+
// We encounter a leaf screen with empty path,
|
|
200
|
+
// Clear the initial screen config as it's not needed anymore
|
|
201
|
+
if (!skipInitialDetection && path === '') {
|
|
202
|
+
initialScreenConfig = undefined;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
if (!skipInitialDetection && initialScreenConfig == null) {
|
|
207
|
+
initialScreenConfig = screenConfig;
|
|
208
|
+
}
|
|
209
|
+
screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return [key, screenConfig];
|
|
213
|
+
}).filter(_ref7 => {
|
|
214
|
+
let [, screen] = _ref7;
|
|
215
|
+
return Object.keys(screen).length > 0;
|
|
216
|
+
}));
|
|
217
|
+
};
|
|
218
|
+
const screens = t.config.screens ? createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName) : {};
|
|
219
|
+
if (t.config.groups) {
|
|
220
|
+
Object.entries(t.config.groups).forEach(_ref8 => {
|
|
221
|
+
let [, group] = _ref8;
|
|
222
|
+
Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
if (Object.keys(screens).length === 0) {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
return screens;
|
|
229
|
+
};
|
|
230
|
+
const screens = createPathConfigForTree(tree, options, false);
|
|
231
|
+
if (auto && initialScreenConfig) {
|
|
232
|
+
initialScreenConfig.path = '';
|
|
185
233
|
}
|
|
186
|
-
return
|
|
234
|
+
return screens;
|
|
187
235
|
}
|
|
188
236
|
//# sourceMappingURL=StaticNavigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isValidElementType","useRoute","MemoizedScreen","memo","_ref","component","route","children","createElement","getItemsFromScreens","Screen","screens","Object","entries","map","_ref2","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","_extends","key","tree","displayName","Navigator","Group","config","groups","items","push","_ref3","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","createPathConfigForScreens","fromEntries","_ref4","screenConfig","linking","path","assign","filter","
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","useRoute","MemoizedScreen","memo","_ref","component","route","children","createElement","getItemsFromScreens","Screen","screens","Object","entries","map","_ref2","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","_extends","key","tree","displayName","Navigator","Group","config","groups","items","push","_ref3","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","_ref4","_ref5","a","b","_ref6","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","_ref7","keys","length","forEach","_ref8"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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"}
|
|
@@ -151,10 +151,23 @@ export type StaticNavigation<NavigatorProps, GroupProps, ScreenProps> = {
|
|
|
151
151
|
* @returns A component which renders the navigator.
|
|
152
152
|
*/
|
|
153
153
|
export declare function createComponentForStaticNavigation(tree: StaticNavigation<any, any, any>, displayName: string): React.ComponentType<{}>;
|
|
154
|
+
type TreeForPathConfig = {
|
|
155
|
+
config: {
|
|
156
|
+
initialRouteName?: string;
|
|
157
|
+
screens?: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
|
|
158
|
+
groups?: {
|
|
159
|
+
[key: string]: {
|
|
160
|
+
screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
};
|
|
154
165
|
/**
|
|
155
166
|
* Create a path config object from a static navigation config for deep linking.
|
|
156
167
|
*
|
|
157
168
|
* @param tree Static navigation config.
|
|
169
|
+
* @param options Additional options from `linking.config`.
|
|
170
|
+
* @param auto Whether to automatically generate paths for leaf screens.
|
|
158
171
|
* @returns Path config object to use in linking config.
|
|
159
172
|
*
|
|
160
173
|
* @example
|
|
@@ -168,17 +181,10 @@ export declare function createComponentForStaticNavigation(tree: StaticNavigatio
|
|
|
168
181
|
* };
|
|
169
182
|
* ```
|
|
170
183
|
*/
|
|
171
|
-
export declare function createPathConfigForStaticNavigation(tree: {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
groups?: {
|
|
175
|
-
[key: string]: {
|
|
176
|
-
screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
|
|
177
|
-
};
|
|
178
|
-
};
|
|
179
|
-
};
|
|
180
|
-
}): {
|
|
184
|
+
export declare function createPathConfigForStaticNavigation(tree: TreeForPathConfig, options?: {
|
|
185
|
+
initialRouteName?: string;
|
|
186
|
+
}, auto?: boolean): {
|
|
181
187
|
[k: string]: PathConfig<ParamListBase>;
|
|
182
|
-
};
|
|
188
|
+
} | undefined;
|
|
183
189
|
export {};
|
|
184
190
|
//# sourceMappingURL=StaticNavigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/core",
|
|
3
3
|
"description": "Core utilities for building navigators",
|
|
4
|
-
"version": "7.0.0-alpha.
|
|
4
|
+
"version": "7.0.0-alpha.17",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
]
|
|
71
71
|
]
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "7ed2bc19da336560ddd07002954a4ebba4d03929"
|
|
74
74
|
}
|
package/src/StaticNavigation.tsx
CHANGED
|
@@ -442,25 +442,9 @@ export function createComponentForStaticNavigation(
|
|
|
442
442
|
return NavigatorComponent;
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
|
|
446
|
-
* Create a path config object from a static navigation config for deep linking.
|
|
447
|
-
*
|
|
448
|
-
* @param tree Static navigation config.
|
|
449
|
-
* @returns Path config object to use in linking config.
|
|
450
|
-
*
|
|
451
|
-
* @example
|
|
452
|
-
* ```js
|
|
453
|
-
* const config = {
|
|
454
|
-
* screens: {
|
|
455
|
-
* Home: {
|
|
456
|
-
* screens: createPathConfigForStaticNavigation(HomeTabs),
|
|
457
|
-
* },
|
|
458
|
-
* },
|
|
459
|
-
* };
|
|
460
|
-
* ```
|
|
461
|
-
*/
|
|
462
|
-
export function createPathConfigForStaticNavigation(tree: {
|
|
445
|
+
type TreeForPathConfig = {
|
|
463
446
|
config: {
|
|
447
|
+
initialRouteName?: string;
|
|
464
448
|
screens?: StaticConfigScreens<
|
|
465
449
|
ParamListBase,
|
|
466
450
|
NavigationState,
|
|
@@ -480,56 +464,167 @@ export function createPathConfigForStaticNavigation(tree: {
|
|
|
480
464
|
};
|
|
481
465
|
};
|
|
482
466
|
};
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Create a path config object from a static navigation config for deep linking.
|
|
471
|
+
*
|
|
472
|
+
* @param tree Static navigation config.
|
|
473
|
+
* @param options Additional options from `linking.config`.
|
|
474
|
+
* @param auto Whether to automatically generate paths for leaf screens.
|
|
475
|
+
* @returns Path config object to use in linking config.
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```js
|
|
479
|
+
* const config = {
|
|
480
|
+
* screens: {
|
|
481
|
+
* Home: {
|
|
482
|
+
* screens: createPathConfigForStaticNavigation(HomeTabs),
|
|
483
|
+
* },
|
|
484
|
+
* },
|
|
485
|
+
* };
|
|
486
|
+
* ```
|
|
487
|
+
*/
|
|
488
|
+
export function createPathConfigForStaticNavigation(
|
|
489
|
+
tree: TreeForPathConfig,
|
|
490
|
+
options?: {
|
|
491
|
+
initialRouteName?: string;
|
|
492
|
+
},
|
|
493
|
+
auto?: boolean
|
|
494
|
+
) {
|
|
495
|
+
let initialScreenConfig: PathConfig<ParamListBase> | undefined;
|
|
496
|
+
|
|
497
|
+
const createPathConfigForTree = (
|
|
498
|
+
t: TreeForPathConfig,
|
|
499
|
+
o: { initialRouteName?: string } | undefined,
|
|
500
|
+
// If a screen is a leaf node, but inside a screen with path,
|
|
501
|
+
// It should not be used for initial detection
|
|
502
|
+
skipInitialDetection: boolean
|
|
503
|
+
) => {
|
|
504
|
+
const createPathConfigForScreens = (
|
|
505
|
+
screens: StaticConfigScreens<
|
|
506
|
+
ParamListBase,
|
|
507
|
+
NavigationState,
|
|
508
|
+
{},
|
|
509
|
+
EventMapBase,
|
|
510
|
+
Record<string, unknown>
|
|
511
|
+
>,
|
|
512
|
+
initialRouteName: string | undefined
|
|
513
|
+
) => {
|
|
514
|
+
return Object.fromEntries(
|
|
515
|
+
Object.entries(screens)
|
|
516
|
+
// Re-order to move the initial route to the front
|
|
517
|
+
// This way we can detect the initial route correctly
|
|
518
|
+
.sort(([a], [b]) => {
|
|
519
|
+
if (a === initialRouteName) {
|
|
520
|
+
return -1;
|
|
503
521
|
}
|
|
504
|
-
}
|
|
505
522
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
'screen' in item &&
|
|
510
|
-
'config' in item.screen &&
|
|
511
|
-
(item.screen.config.screens || item.screen.config.groups)
|
|
512
|
-
) {
|
|
513
|
-
screenConfig.screens = createPathConfigForStaticNavigation(
|
|
514
|
-
item.screen
|
|
515
|
-
);
|
|
516
|
-
}
|
|
523
|
+
if (b === initialRouteName) {
|
|
524
|
+
return 1;
|
|
525
|
+
}
|
|
517
526
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
527
|
+
return 0;
|
|
528
|
+
})
|
|
529
|
+
.map(([key, item]) => {
|
|
530
|
+
const screenConfig: PathConfig<ParamListBase> = {};
|
|
531
|
+
|
|
532
|
+
if ('linking' in item) {
|
|
533
|
+
if (typeof item.linking === 'string') {
|
|
534
|
+
screenConfig.path = item.linking;
|
|
535
|
+
} else {
|
|
536
|
+
Object.assign(screenConfig, item.linking);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
let screens;
|
|
541
|
+
|
|
542
|
+
if ('config' in item) {
|
|
543
|
+
screens = createPathConfigForTree(
|
|
544
|
+
item,
|
|
545
|
+
undefined,
|
|
546
|
+
skipInitialDetection || screenConfig.path != null
|
|
547
|
+
);
|
|
548
|
+
} else if (
|
|
549
|
+
'screen' in item &&
|
|
550
|
+
'config' in item.screen &&
|
|
551
|
+
(item.screen.config.screens || item.screen.config.groups)
|
|
552
|
+
) {
|
|
553
|
+
screens = createPathConfigForTree(
|
|
554
|
+
item.screen,
|
|
555
|
+
undefined,
|
|
556
|
+
skipInitialDetection || screenConfig.path != null
|
|
557
|
+
);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
if (screens) {
|
|
561
|
+
screenConfig.screens = screens;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
if (auto && !screenConfig.screens && !('linking' in item)) {
|
|
565
|
+
if (screenConfig.path) {
|
|
566
|
+
if (!skipInitialDetection) {
|
|
567
|
+
// Normalize the path to remove leading and trailing slashes
|
|
568
|
+
const path = screenConfig.path
|
|
569
|
+
?.split('/')
|
|
570
|
+
.filter(Boolean)
|
|
571
|
+
.join('/');
|
|
572
|
+
|
|
573
|
+
// We encounter a leaf screen with empty path,
|
|
574
|
+
// Clear the initial screen config as it's not needed anymore
|
|
575
|
+
if (!skipInitialDetection && path === '') {
|
|
576
|
+
initialScreenConfig = undefined;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
} else {
|
|
580
|
+
if (!skipInitialDetection && initialScreenConfig == null) {
|
|
581
|
+
initialScreenConfig = screenConfig;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
screenConfig.path = key
|
|
585
|
+
.replace(/([A-Z]+)/g, '-$1')
|
|
586
|
+
.replace(/^-/, '')
|
|
587
|
+
.toLowerCase();
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
return [key, screenConfig] as const;
|
|
592
|
+
})
|
|
593
|
+
.filter(([, screen]) => Object.keys(screen).length > 0)
|
|
594
|
+
);
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
const screens = t.config.screens
|
|
598
|
+
? createPathConfigForScreens(
|
|
599
|
+
t.config.screens,
|
|
600
|
+
o?.initialRouteName ?? t.config.initialRouteName
|
|
601
|
+
)
|
|
602
|
+
: {};
|
|
603
|
+
|
|
604
|
+
if (t.config.groups) {
|
|
605
|
+
Object.entries(t.config.groups).forEach(([, group]) => {
|
|
606
|
+
Object.assign(
|
|
607
|
+
screens,
|
|
608
|
+
createPathConfigForScreens(
|
|
609
|
+
group.screens,
|
|
610
|
+
o?.initialRouteName ?? t.config.initialRouteName
|
|
611
|
+
)
|
|
612
|
+
);
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
if (Object.keys(screens).length === 0) {
|
|
617
|
+
return undefined;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
return screens;
|
|
621
|
+
};
|
|
523
622
|
|
|
524
|
-
const
|
|
525
|
-
? createPathConfigForScreens(tree.config.screens)
|
|
526
|
-
: {};
|
|
623
|
+
const screens = createPathConfigForTree(tree, options, false);
|
|
527
624
|
|
|
528
|
-
if (
|
|
529
|
-
|
|
530
|
-
Object.assign(config, createPathConfigForScreens(group.screens));
|
|
531
|
-
});
|
|
625
|
+
if (auto && initialScreenConfig) {
|
|
626
|
+
initialScreenConfig.path = '';
|
|
532
627
|
}
|
|
533
628
|
|
|
534
|
-
return
|
|
629
|
+
return screens;
|
|
535
630
|
}
|