@react-navigation/core 7.17.4 → 7.17.5
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.
|
@@ -179,7 +179,18 @@ export function createComponentForStaticNavigationDeprecated(tree) {
|
|
|
179
179
|
export function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
180
180
|
let initialScreenHasPath = false;
|
|
181
181
|
let initialScreenConfig;
|
|
182
|
-
|
|
182
|
+
let hasEmptyPath = false;
|
|
183
|
+
const createPathConfigForTree = (t, o, skipInitialDetection, allowAutoEmptyPath) => {
|
|
184
|
+
const initialRouteName = o?.initialRouteName ?? t.config.initialRouteName;
|
|
185
|
+
if (initialRouteName != null) {
|
|
186
|
+
const routeNames = new Set(Object.keys(t.config.screens ?? {}));
|
|
187
|
+
for (const group of Object.values(t.config.groups ?? {})) {
|
|
188
|
+
Object.keys(group.screens).forEach(name => routeNames.add(name));
|
|
189
|
+
}
|
|
190
|
+
if (!routeNames.has(initialRouteName)) {
|
|
191
|
+
throw new Error(`Couldn't find a screen named '${initialRouteName}' to use as 'initialRouteName'.`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
183
194
|
const createPathConfigForScreens = (screens, initialRouteName) => {
|
|
184
195
|
return Object.fromEntries(Object.entries(screens)
|
|
185
196
|
// Re-order to move the initial route to the front
|
|
@@ -194,45 +205,75 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
|
194
205
|
return 0;
|
|
195
206
|
}).map(([key, item]) => {
|
|
196
207
|
const screenConfig = {};
|
|
197
|
-
|
|
208
|
+
const normalizePath = path => path.replace(/^\/+|\/+$/g, '');
|
|
209
|
+
if ('linking' in item && item.linking !== undefined) {
|
|
198
210
|
if (typeof item.linking === 'string') {
|
|
199
211
|
screenConfig.path = item.linking;
|
|
200
|
-
} else {
|
|
212
|
+
} else if (item.linking != null && typeof item.linking === 'object') {
|
|
201
213
|
Object.assign(screenConfig, item.linking);
|
|
202
214
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
215
|
+
}
|
|
216
|
+
if (screenConfig.exact && screenConfig.path == null) {
|
|
217
|
+
throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
|
|
218
|
+
}
|
|
219
|
+
if (typeof screenConfig.path === 'string') {
|
|
220
|
+
screenConfig.path = normalizePath(screenConfig.path);
|
|
221
|
+
}
|
|
222
|
+
if (screenConfig.alias != null) {
|
|
223
|
+
screenConfig.alias = screenConfig.alias.map(alias => {
|
|
224
|
+
if (typeof alias === 'string') {
|
|
225
|
+
return normalizePath(alias);
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
...alias,
|
|
229
|
+
path: normalizePath(alias.path)
|
|
230
|
+
};
|
|
231
|
+
});
|
|
207
232
|
}
|
|
208
233
|
let screens;
|
|
234
|
+
const hasExplicitScreens = 'screens' in screenConfig && screenConfig.screens != null;
|
|
235
|
+
const hasDisabledLinking = 'linking' in item && item.linking === null;
|
|
236
|
+
const childOptions = 'initialRouteName' in screenConfig && typeof screenConfig.initialRouteName === 'string' ? {
|
|
237
|
+
initialRouteName: screenConfig.initialRouteName
|
|
238
|
+
} : undefined;
|
|
239
|
+
if (hasExplicitScreens && childOptions != null && !Object.keys(screenConfig.screens ?? {}).includes(childOptions.initialRouteName)) {
|
|
240
|
+
throw new Error(`Couldn't find a screen named '${childOptions.initialRouteName}' to use as 'initialRouteName'.`);
|
|
241
|
+
}
|
|
209
242
|
const skipInitialDetectionInChild = skipInitialDetection || screenConfig.path != null && screenConfig.path !== '';
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
243
|
+
const allowAutoEmptyPathInChild = allowAutoEmptyPath && (initialRouteName == null || key === initialRouteName);
|
|
244
|
+
if (!hasExplicitScreens && !hasDisabledLinking && 'config' in item) {
|
|
245
|
+
screens = createPathConfigForTree(item, childOptions, skipInitialDetectionInChild, allowAutoEmptyPathInChild);
|
|
246
|
+
} else if (!hasExplicitScreens && !hasDisabledLinking && 'screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
|
|
247
|
+
screens = createPathConfigForTree(item.screen, childOptions, skipInitialDetectionInChild, allowAutoEmptyPathInChild);
|
|
214
248
|
}
|
|
215
249
|
if (screens) {
|
|
216
250
|
screenConfig.screens = screens;
|
|
217
251
|
}
|
|
218
|
-
if (auto && !screenConfig.screens &&
|
|
219
|
-
// Skip generating path for screens that specify linking config as `
|
|
220
|
-
!
|
|
252
|
+
if (auto && !('screens' in screenConfig && screenConfig.screens) &&
|
|
253
|
+
// Skip generating path for screens that specify linking config as `null` explicitly
|
|
254
|
+
!hasDisabledLinking) {
|
|
221
255
|
if (screenConfig.path != null) {
|
|
222
256
|
if (!skipInitialDetection) {
|
|
223
|
-
if (
|
|
224
|
-
initialScreenHasPath = true;
|
|
225
|
-
} else if (screenConfig.path === '') {
|
|
257
|
+
if (screenConfig.path === '') {
|
|
226
258
|
// We encounter a leaf screen with empty path,
|
|
227
259
|
// Clear the initial screen config as it's not needed anymore
|
|
228
260
|
initialScreenConfig = undefined;
|
|
261
|
+
hasEmptyPath = true;
|
|
262
|
+
if (allowAutoEmptyPath && key === initialRouteName) {
|
|
263
|
+
initialScreenHasPath = true;
|
|
264
|
+
}
|
|
265
|
+
} else if (allowAutoEmptyPath && key === initialRouteName &&
|
|
266
|
+
// Keep an already discovered fallback unless the initial route
|
|
267
|
+
// explicitly uses an empty path.
|
|
268
|
+
initialScreenConfig == null) {
|
|
269
|
+
initialScreenHasPath = true;
|
|
229
270
|
}
|
|
230
271
|
}
|
|
231
272
|
} else {
|
|
232
|
-
if (!skipInitialDetection && initialScreenConfig == null) {
|
|
273
|
+
if (!skipInitialDetection && allowAutoEmptyPath && (initialRouteName == null || key === initialRouteName) && !hasEmptyPath && initialScreenConfig == null) {
|
|
233
274
|
initialScreenConfig = screenConfig;
|
|
234
275
|
}
|
|
235
|
-
screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
|
|
276
|
+
screenConfig.path = normalizePath(key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase());
|
|
236
277
|
}
|
|
237
278
|
}
|
|
238
279
|
return [key, screenConfig];
|
|
@@ -257,7 +298,7 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
|
257
298
|
}
|
|
258
299
|
return screens;
|
|
259
300
|
};
|
|
260
|
-
const screens = createPathConfigForTree(tree, options, false);
|
|
301
|
+
const screens = createPathConfigForTree(tree, options, false, true);
|
|
261
302
|
if (auto && initialScreenConfig && !initialScreenHasPath) {
|
|
262
303
|
initialScreenConfig.path = '';
|
|
263
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticNavigation","tree","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","screenOptions","options","screenListeners","createComponentForStaticNavigationDeprecated","console","warn","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","a","b","screenConfig","linking","path","assign","replace","skipInitialDetectionInChild","undefined","toLowerCase","filter","keys","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAY7C,SAASC,QAAQ,QAAQ,eAAY;;AAkMrC;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAsBA,MAAMC,cAAc,gBAAGL,KAAK,CAACM,IAAI,CAC/B,CAAqC;EAAEC;AAA4B,CAAC,KAAK;EACvE,MAAMC,KAAK,GAAGN,QAAQ,CAAC,CAAC;EACxB,MAAMO,QAAQ,gBAAGT,KAAK,CAACU,aAAa,CAACH,SAAS,EAAE;IAAEC;EAAM,CAAC,CAAC;EAE1D,OAAOC,QAAQ;AACjB,CACF,CAAC;AAEDJ,cAAc,CAACM,WAAW,GAAG,cAAc;AAE3C,MAAMC,mBAAmB,GAAGA,CAC1BC,MAAgC,EAChCC,OAAqD,KAClD;EACH,OAAOC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,GAAG,CAAC,CAAC,CAACC,IAAI,EAAEC,IAAI,CAAC,KAAK;IACnD,IAAIZ,SAA+C;IACnD,IAAIa,KAAS,GAAG,CAAC,CAAC;IAClB,IAAIC,KAAkC;IAEtC,IAAIC,WAAW,GAAG,KAAK;IAEvB,IAAI,QAAQ,IAAIH,IAAI,EAAE;MACpB,MAAM;QAAEI,MAAM;QAAEC,EAAE,EAAEC,GAAG;QAAE,GAAGC;MAAK,CAAC,GAAGP,IAAI;MAEzCE,KAAK,GAAGI,GAAG;MACXL,KAAK,GAAGM,IAAI;MAEZ,IAAIzB,kBAAkB,CAACsB,MAAM,CAAC,EAAE;QAC9BhB,SAAS,GAAGgB,MAAM;MACpB,CAAC,MAAM,IAAI,QAAQ,IAAIA,MAAM,EAAE;QAC7BD,WAAW,GAAG,IAAI;QAClBf,SAAS,GAAGgB,MAAM,CAACI,YAAY,CAAC,CAAC;MACnC;IACF,CAAC,MAAM,IAAI1B,kBAAkB,CAACkB,IAAI,CAAC,EAAE;MACnCZ,SAAS,GAAGY,IAAI;IAClB,CAAC,MAAM,IAAI,QAAQ,IAAIA,IAAI,EAAE;MAC3BG,WAAW,GAAG,IAAI;MAClBf,SAAS,GAAGY,IAAI,CAACQ,YAAY,CAAC,CAAC;IACjC;IAEA,IAAIpB,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIqB,KAAK,CACb,qDAAqDV,IAAI,qLAC3D,CAAC;IACH;IAEA,MAAMW,OAAO,GAAGP,WAAW,iBACzBtB,KAAK,CAACU,aAAa,CAACH,SAAS,EAAE,CAAC,CAAC,CAAC,iBAElCH,IAAA,CAACC,cAAc;MAACE,SAAS,EAAEA;IAAU,CAAE,CACxC;IAED,OAAO,MAAM;MACX,MAAMuB,YAAY,GAAGT,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;MAE7C,IAAI,CAACS,YAAY,EAAE;QACjB,OAAO,IAAI;MACb;MAEA,oBACE1B,IAAA,CAACS,MAAM;QAAYK,IAAI,EAAEA,IAAK;QAAA,GAAKE,KAAK;QAAAX,QAAA,EACrCA,CAAA,KAAMoB;MAAO,GADHX,IAEL,CAAC;IAEb,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASa,kCAAkCA,CAQhDC,IAAO,EACPrB,WAAmB,EAC0D;EAC7E,MAAM;IAAEsB,SAAS;IAAEC,KAAK;IAAErB,MAAM;IAAEsB;EAAO,CAAC,GAAGH,IAAI;EACjD,MAAM;IAAElB,OAAO;IAAEsB,MAAM;IAAE,GAAGV;EAAK,CAAC,GAAGS,MAAM;EAE3C,IAAIrB,OAAO,IAAI,IAAI,IAAIsB,MAAM,IAAI,IAAI,EAAE;IACrC,MAAM,IAAIR,KAAK,CACb,mIACF,CAAC;EACH;EAEA,MAAMS,KAAyC,GAAG,EAAE;;EAEpD;EACA;EACA,KAAK,MAAMC,GAAG,IAAIH,MAAM,EAAE;IACxB,IAAIG,GAAG,KAAK,SAAS,IAAIxB,OAAO,EAAE;MAChCuB,KAAK,CAACE,IAAI,CAAC,GAAG3B,mBAAmB,CAACC,MAAM,EAAEC,OAAO,CAAC,CAAC;IACrD;IAEA,IAAIwB,GAAG,KAAK,QAAQ,IAAIF,MAAM,EAAE;MAC9BC,KAAK,CAACE,IAAI,CACR,GAAGxB,MAAM,CAACC,OAAO,CAACoB,MAAM,CAAC,CAACnB,GAAG,CAAC,CAAC,CAACqB,GAAG,EAAE;QAAEd,EAAE,EAAEH,KAAK;QAAE,GAAGmB;MAAM,CAAC,CAAC,KAAK;QAChE,MAAMC,UAAU,GAAG7B,mBAAmB,CAACC,MAAM,EAAE2B,KAAK,CAAC1B,OAAO,CAAC;QAE7D,OAAO,MAAM;UACX;UACA,MAAML,QAAQ,GAAGgC,UAAU,CAACxB,GAAG,CAAEE,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;UAEjD,MAAMW,YAAY,GAAGT,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;UAE7C,IAAI,CAACS,YAAY,EAAE;YACjB,OAAO,IAAI;UACb;UAEA,oBACE1B,IAAA,CAAC8B,KAAK;YAAWQ,aAAa,EAAEJ,GAAI;YAAA,GAAKE,KAAK;YAAA/B,QAAA,EAC3CA;UAAQ,GADC6B,GAEL,CAAC;QAEZ,CAAC;MACH,CAAC,CACH,CAAC;IACH;EACF;EAEA,IAAID,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;IACtB,MAAM,IAAIf,KAAK,CACb,gIACF,CAAC;EACH;EAIA,MAAMgB,kBAAkB,GAAIxB,KAAqB,IAAK;IACpD,MAAMX,QAAQ,GAAG4B,KAAK,CAACpB,GAAG,CAAEE,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;IAE5C,MAAM0B,aAAa,GACjB,OAAOzB,KAAK,CAACyB,aAAa,KAAK,UAAU,IACzC,OAAOnB,IAAI,CAACmB,aAAa,KAAK,UAAU,GACnCC,OAAgB,KAAM;MACrB,IAAI,OAAOpB,IAAI,CAACmB,aAAa,KAAK,UAAU,GACxCnB,IAAI,CAACmB,aAAa,CAACC,OAAO,CAAC,GAC3BpB,IAAI,CAACmB,aAAa,CAAC;MACvB,IAAI,OAAOzB,KAAK,CAACyB,aAAa,KAAK,UAAU,GACzCzB,KAAK,CAACyB,aAAa,CAACC,OAAO,CAAC,GAC5B1B,KAAK,CAACyB,aAAa;IACzB,CAAC,CAAC,GACF;MAAE,GAAGnB,IAAI,CAACmB,aAAa;MAAE,GAAGzB,KAAK,CAACyB;IAAc,CAAC;IAEvD,MAAME,eAAe,GACnB,OAAO3B,KAAK,CAAC2B,eAAe,KAAK,UAAU,IAC3C,OAAOrB,IAAI,CAACqB,eAAe,KAAK,UAAU,GACrCD,OAAgB,KAAM;MACrB,IAAI,OAAOpB,IAAI,CAACqB,eAAe,KAAK,UAAU,GAC1CrB,IAAI,CAACqB,eAAe,CAACD,OAAO,CAAC,GAC7BpB,IAAI,CAACqB,eAAe,CAAC;MACzB,IAAI,OAAO3B,KAAK,CAAC2B,eAAe,KAAK,UAAU,GAC3C3B,KAAK,CAAC2B,eAAe,CAACD,OAAO,CAAC,GAC9B1B,KAAK,CAAC2B,eAAe;IAC3B,CAAC,CAAC,GACF;MAAE,GAAGrB,IAAI,CAACqB,eAAe;MAAE,GAAG3B,KAAK,CAAC2B;IAAgB,CAAC;IAE3D,oBACE3C,IAAA,CAAC6B,SAAS;MAAA,GACJP,IAAI;MAAA,GACJN,KAAK;MACTyB,aAAa,EAAEA,aAAc;MAC7BE,eAAe,EAAEA,eAAgB;MAAAtC,QAAA,EAEhCA;IAAQ,CACA,CAAC;EAEhB,CAAC;EAEDmC,kBAAkB,CAACjC,WAAW,GAAGA,WAAW;EAE5C,OAAOiC,kBAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,4CAA4CA,CAC1DhB,IAAqC,EACZ;EACzBiB,OAAO,CAACC,IAAI,CACV,wFACF,CAAC;EAED,OAAOlB,IAAI,CAACL,YAAY,CAAC,CAAC;AAC5B;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwB,mCAAmCA,CACjDnB,IAAuB,EACvBc,OAEC,EACDM,IAAc,EACd;EACA,IAAIC,oBAA6B,GAAG,KAAK;EACzC,IAAIC,mBAA0D;EAE9D,MAAMC,uBAAuB,GAAGA,CAC9BC,CAAoB,EACpBC,CAA4C,EAG5CC,oBAA6B,KAC1B;IACH,MAAMC,0BAA0B,GAAGA,CACjC7C,OAMC,EACD8C,gBAAoC,KACjC;MACH,OAAO7C,MAAM,CAAC8C,WAAW,CACvB9C,MAAM,CAACC,OAAO,CAACF,OAAO;MACpB;MACA;MAAA,CACCgD,IAAI,CAAC,CAAC,CAACC,CAAC,CAAC,EAAE,CAACC,CAAC,CAAC,KAAK;QAClB,IAAID,CAAC,KAAKH,gBAAgB,EAAE;UAC1B,OAAO,CAAC,CAAC;QACX;QAEA,IAAII,CAAC,KAAKJ,gBAAgB,EAAE;UAC1B,OAAO,CAAC;QACV;QAEA,OAAO,CAAC;MACV,CAAC,CAAC,CACD3C,GAAG,CAAC,CAAC,CAACqB,GAAG,EAAEnB,IAAI,CAAC,KAAK;QACpB,MAAM8C,YAAuC,GAAG,CAAC,CAAC;QAElD,IAAI,SAAS,IAAI9C,IAAI,EAAE;UACrB,IAAI,OAAOA,IAAI,CAAC+C,OAAO,KAAK,QAAQ,EAAE;YACpCD,YAAY,CAACE,IAAI,GAAGhD,IAAI,CAAC+C,OAAO;UAClC,CAAC,MAAM;YACLnD,MAAM,CAACqD,MAAM,CAACH,YAAY,EAAE9C,IAAI,CAAC+C,OAAO,CAAC;UAC3C;UAEA,IAAI,OAAOD,YAAY,CAACE,IAAI,KAAK,QAAQ,EAAE;YACzCF,YAAY,CAACE,IAAI,GAAGF,YAAY,CAACE,IAAI,CAClCE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAAA,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;UACzB;QACF;QAEA,IAAIvD,OAAO;QAEX,MAAMwD,2BAA2B,GAC/BZ,oBAAoB,IACnBO,YAAY,CAACE,IAAI,IAAI,IAAI,IAAIF,YAAY,CAACE,IAAI,KAAK,EAAG;QAEzD,IAAI,QAAQ,IAAIhD,IAAI,EAAE;UACpBL,OAAO,GAAGyC,uBAAuB,CAC/BpC,IAAI,EACJoD,SAAS,EACTD,2BACF,CAAC;QACH,CAAC,MAAM,IACL,QAAQ,IAAInD,IAAI,IAChB,QAAQ,IAAIA,IAAI,CAACI,MAAM,KACtBJ,IAAI,CAACI,MAAM,CAACY,MAAM,CAACrB,OAAO,IAAIK,IAAI,CAACI,MAAM,CAACY,MAAM,CAACC,MAAM,CAAC,EACzD;UACAtB,OAAO,GAAGyC,uBAAuB,CAC/BpC,IAAI,CAACI,MAAM,EACXgD,SAAS,EACTD,2BACF,CAAC;QACH;QAEA,IAAIxD,OAAO,EAAE;UACXmD,YAAY,CAACnD,OAAO,GAAGA,OAAO;QAChC;QAEA,IACEsC,IAAI,IACJ,CAACa,YAAY,CAACnD,OAAO;QACrB;QACA,EAAE,SAAS,IAAIK,IAAI,IAAIA,IAAI,CAAC+C,OAAO,IAAI,IAAI,CAAC,EAC5C;UACA,IAAID,YAAY,CAACE,IAAI,IAAI,IAAI,EAAE;YAC7B,IAAI,CAACT,oBAAoB,EAAE;cACzB,IAAIpB,GAAG,KAAKsB,gBAAgB,IAAIK,YAAY,CAACE,IAAI,IAAI,IAAI,EAAE;gBACzDd,oBAAoB,GAAG,IAAI;cAC7B,CAAC,MAAM,IAAIY,YAAY,CAACE,IAAI,KAAK,EAAE,EAAE;gBACnC;gBACA;gBACAb,mBAAmB,GAAGiB,SAAS;cACjC;YACF;UACF,CAAC,MAAM;YACL,IAAI,CAACb,oBAAoB,IAAIJ,mBAAmB,IAAI,IAAI,EAAE;cACxDA,mBAAmB,GAAGW,YAAY;YACpC;YAEAA,YAAY,CAACE,IAAI,GAAG7B,GAAG,CACpB+B,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBG,WAAW,CAAC,CAAC;UAClB;QACF;QAEA,OAAO,CAAClC,GAAG,EAAE2B,YAAY,CAAC;MAC5B,CAAC,CAAC,CACDQ,MAAM,CAAC,CAAC,GAAGlD,MAAM,CAAC,KAAKR,MAAM,CAAC2D,IAAI,CAACnD,MAAM,CAAC,CAACoB,MAAM,GAAG,CAAC,CAC1D,CAAC;IACH,CAAC;IAED,MAAM7B,OAAO,GAAG,CAAC,CAAC;;IAElB;IACA;IACA,KAAK,MAAMwB,GAAG,IAAIkB,CAAC,CAACrB,MAAM,EAAE;MAC1B,IAAIG,GAAG,KAAK,SAAS,IAAIkB,CAAC,CAACrB,MAAM,CAACrB,OAAO,EAAE;QACzCC,MAAM,CAACqD,MAAM,CACXtD,OAAO,EACP6C,0BAA0B,CACxBH,CAAC,CAACrB,MAAM,CAACrB,OAAO,EAChB2C,CAAC,EAAEG,gBAAgB,IAAIJ,CAAC,CAACrB,MAAM,CAACyB,gBAClC,CACF,CAAC;MACH;MAEA,IAAItB,GAAG,KAAK,QAAQ,IAAIkB,CAAC,CAACrB,MAAM,CAACC,MAAM,EAAE;QACvCrB,MAAM,CAACC,OAAO,CAACwC,CAAC,CAACrB,MAAM,CAACC,MAAM,CAAC,CAACuC,OAAO,CAAC,CAAC,GAAGnC,KAAK,CAAC,KAAK;UACrDzB,MAAM,CAACqD,MAAM,CACXtD,OAAO,EACP6C,0BAA0B,CACxBnB,KAAK,CAAC1B,OAAO,EACb2C,CAAC,EAAEG,gBAAgB,IAAIJ,CAAC,CAACrB,MAAM,CAACyB,gBAClC,CACF,CAAC;QACH,CAAC,CAAC;MACJ;IACF;IAEA,IAAI7C,MAAM,CAAC2D,IAAI,CAAC5D,OAAO,CAAC,CAAC6B,MAAM,KAAK,CAAC,EAAE;MACrC,OAAO4B,SAAS;IAClB;IAEA,OAAOzD,OAAO;EAChB,CAAC;EAED,MAAMA,OAAO,GAAGyC,uBAAuB,CAACvB,IAAI,EAAEc,OAAO,EAAE,KAAK,CAAC;EAE7D,IAAIM,IAAI,IAAIE,mBAAmB,IAAI,CAACD,oBAAoB,EAAE;IACxDC,mBAAmB,CAACa,IAAI,GAAG,EAAE;EAC/B;EAEA,OAAOrD,OAAO;AAChB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticNavigation","tree","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","screenOptions","options","screenListeners","createComponentForStaticNavigationDeprecated","console","warn","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","keys","values","forEach","add","has","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","path","replace","linking","undefined","assign","exact","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorTypeBagBase, PathConfig, RouteConfigComponent, RouteConfigProps, RouteGroupConfig } from './types';
|
|
3
|
+
import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorTypeBagBase, PathConfig, PathConfigMap, RouteConfigComponent, RouteConfigProps, RouteGroupConfig } from './types';
|
|
4
4
|
export type { StaticParamList } from './types';
|
|
5
5
|
type StaticRouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = RouteConfigProps<ParamList, RouteName, State, ScreenOptions, EventMap, Navigation> & RouteConfigComponent<ParamList, RouteName>;
|
|
6
6
|
export type StaticConfigScreens<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>> = {
|
|
@@ -30,7 +30,7 @@ export type StaticConfigScreens<ParamList extends ParamListBase, State extends N
|
|
|
30
30
|
* },
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
linking?: PathConfig<
|
|
33
|
+
linking?: PathConfig<ParamListBase> | string | null;
|
|
34
34
|
/**
|
|
35
35
|
* Static navigation config or Component to render for the screen.
|
|
36
36
|
*/
|
|
@@ -110,16 +110,22 @@ export declare function createComponentForStaticNavigation<T extends {
|
|
|
110
110
|
*/
|
|
111
111
|
export declare function createComponentForStaticNavigationDeprecated(tree: StaticNavigation<any, any, any>): React.ComponentType<{}>;
|
|
112
112
|
type TreeForPathConfig = {
|
|
113
|
-
config:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
config: ConfigForPathConfig;
|
|
114
|
+
};
|
|
115
|
+
type ConfigForPathConfig = {
|
|
116
|
+
initialRouteName?: string;
|
|
117
|
+
screens?: Record<string, ScreenForPathConfig>;
|
|
118
|
+
groups?: {
|
|
119
|
+
[key: string]: {
|
|
120
|
+
screens: Record<string, ScreenForPathConfig>;
|
|
120
121
|
};
|
|
121
122
|
};
|
|
122
123
|
};
|
|
124
|
+
type LinkingForPathConfig = PathConfig<ParamListBase> | string | null | undefined;
|
|
125
|
+
type ScreenForPathConfig = React.ComponentType<any> | TreeForPathConfig | {
|
|
126
|
+
screen: React.ComponentType<any> | TreeForPathConfig;
|
|
127
|
+
linking?: LinkingForPathConfig;
|
|
128
|
+
};
|
|
123
129
|
/**
|
|
124
130
|
* Create a path config object from a static navigation config for deep linking.
|
|
125
131
|
*
|
|
@@ -141,5 +147,5 @@ type TreeForPathConfig = {
|
|
|
141
147
|
*/
|
|
142
148
|
export declare function createPathConfigForStaticNavigation(tree: TreeForPathConfig, options?: {
|
|
143
149
|
initialRouteName?: string;
|
|
144
|
-
}, auto?: boolean):
|
|
150
|
+
}, auto?: boolean): PathConfigMap<ParamListBase> | undefined;
|
|
145
151
|
//# sourceMappingURL=StaticNavigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,KAAK,iBAAiB,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,UAAU,IACR,gBAAgB,CAClB,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,UAAU,CACX,GACC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAE7C,MAAM,MAAM,mBAAmB,CAC7B,SAAS,SAAS,aAAa,EAC/B,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,SAAS,kBAAkB,CAAC,SAAS,CAAC,IAClD;KACD,SAAS,IAAI,MAAM,SAAS,GACzB,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GACxB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/B,CAAC,IAAI,CACH,iBAAiB,CACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CAAC,SAAS,CAAC,CAC1B,EACD,MAAM,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,CACnD,GAAG;QACF;;;;;;;;;;;WAWG;QACH,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC;QACnB;;;;;;;;;;;WAWG;QACH,OAAO,CAAC,EAAE,UAAU,CAAC,
|
|
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.17.
|
|
4
|
+
"version": "7.17.5",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
]
|
|
84
84
|
]
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "b89bba20b9d6d935224dd5afa287f62a627b6c7e"
|
|
87
87
|
}
|
package/src/StaticNavigation.tsx
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
NavigationListBase,
|
|
9
9
|
NavigatorTypeBagBase,
|
|
10
10
|
PathConfig,
|
|
11
|
+
PathConfigMap,
|
|
11
12
|
RouteConfigComponent,
|
|
12
13
|
RouteConfigProps,
|
|
13
14
|
RouteGroupConfig,
|
|
@@ -79,7 +80,7 @@ export type StaticConfigScreens<
|
|
|
79
80
|
* },
|
|
80
81
|
* ```
|
|
81
82
|
*/
|
|
82
|
-
linking?: PathConfig<
|
|
83
|
+
linking?: PathConfig<ParamListBase> | string | null;
|
|
83
84
|
/**
|
|
84
85
|
* Static navigation config or Component to render for the screen.
|
|
85
86
|
*/
|
|
@@ -429,29 +430,33 @@ export function createComponentForStaticNavigationDeprecated(
|
|
|
429
430
|
}
|
|
430
431
|
|
|
431
432
|
type TreeForPathConfig = {
|
|
432
|
-
config:
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
groups?: {
|
|
442
|
-
[key: string]: {
|
|
443
|
-
screens: StaticConfigScreens<
|
|
444
|
-
ParamListBase,
|
|
445
|
-
NavigationState,
|
|
446
|
-
{},
|
|
447
|
-
EventMapBase,
|
|
448
|
-
Record<string, unknown>
|
|
449
|
-
>;
|
|
450
|
-
};
|
|
433
|
+
config: ConfigForPathConfig;
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
type ConfigForPathConfig = {
|
|
437
|
+
initialRouteName?: string;
|
|
438
|
+
screens?: Record<string, ScreenForPathConfig>;
|
|
439
|
+
groups?: {
|
|
440
|
+
[key: string]: {
|
|
441
|
+
screens: Record<string, ScreenForPathConfig>;
|
|
451
442
|
};
|
|
452
443
|
};
|
|
453
444
|
};
|
|
454
445
|
|
|
446
|
+
type LinkingForPathConfig =
|
|
447
|
+
| PathConfig<ParamListBase>
|
|
448
|
+
| string
|
|
449
|
+
| null
|
|
450
|
+
| undefined;
|
|
451
|
+
|
|
452
|
+
type ScreenForPathConfig =
|
|
453
|
+
| React.ComponentType<any>
|
|
454
|
+
| TreeForPathConfig
|
|
455
|
+
| {
|
|
456
|
+
screen: React.ComponentType<any> | TreeForPathConfig;
|
|
457
|
+
linking?: LinkingForPathConfig;
|
|
458
|
+
};
|
|
459
|
+
|
|
455
460
|
/**
|
|
456
461
|
* Create a path config object from a static navigation config for deep linking.
|
|
457
462
|
*
|
|
@@ -477,25 +482,37 @@ export function createPathConfigForStaticNavigation(
|
|
|
477
482
|
initialRouteName?: string;
|
|
478
483
|
},
|
|
479
484
|
auto?: boolean
|
|
480
|
-
) {
|
|
485
|
+
): PathConfigMap<ParamListBase> | undefined {
|
|
481
486
|
let initialScreenHasPath: boolean = false;
|
|
482
487
|
let initialScreenConfig: PathConfig<ParamListBase> | undefined;
|
|
488
|
+
let hasEmptyPath = false;
|
|
483
489
|
|
|
484
490
|
const createPathConfigForTree = (
|
|
485
491
|
t: TreeForPathConfig,
|
|
486
492
|
o: { initialRouteName?: string } | undefined,
|
|
487
493
|
// If a screen is a leaf node, but inside a screen with path,
|
|
488
494
|
// It should not be used for initial detection
|
|
489
|
-
skipInitialDetection: boolean
|
|
495
|
+
skipInitialDetection: boolean,
|
|
496
|
+
allowAutoEmptyPath: boolean
|
|
490
497
|
) => {
|
|
498
|
+
const initialRouteName = o?.initialRouteName ?? t.config.initialRouteName;
|
|
499
|
+
|
|
500
|
+
if (initialRouteName != null) {
|
|
501
|
+
const routeNames = new Set(Object.keys(t.config.screens ?? {}));
|
|
502
|
+
|
|
503
|
+
for (const group of Object.values(t.config.groups ?? {})) {
|
|
504
|
+
Object.keys(group.screens).forEach((name) => routeNames.add(name));
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
if (!routeNames.has(initialRouteName)) {
|
|
508
|
+
throw new Error(
|
|
509
|
+
`Couldn't find a screen named '${initialRouteName}' to use as 'initialRouteName'.`
|
|
510
|
+
);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
491
514
|
const createPathConfigForScreens = (
|
|
492
|
-
screens:
|
|
493
|
-
ParamListBase,
|
|
494
|
-
NavigationState,
|
|
495
|
-
{},
|
|
496
|
-
EventMapBase,
|
|
497
|
-
Record<string, unknown>
|
|
498
|
-
>,
|
|
515
|
+
screens: Record<string, ScreenForPathConfig>,
|
|
499
516
|
initialRouteName: string | undefined
|
|
500
517
|
) => {
|
|
501
518
|
return Object.fromEntries(
|
|
@@ -516,41 +533,97 @@ export function createPathConfigForStaticNavigation(
|
|
|
516
533
|
.map(([key, item]) => {
|
|
517
534
|
const screenConfig: PathConfig<ParamListBase> = {};
|
|
518
535
|
|
|
519
|
-
|
|
536
|
+
const normalizePath = (path: string) =>
|
|
537
|
+
path.replace(/^\/+|\/+$/g, '');
|
|
538
|
+
|
|
539
|
+
if ('linking' in item && item.linking !== undefined) {
|
|
520
540
|
if (typeof item.linking === 'string') {
|
|
521
541
|
screenConfig.path = item.linking;
|
|
522
|
-
} else
|
|
542
|
+
} else if (
|
|
543
|
+
item.linking != null &&
|
|
544
|
+
typeof item.linking === 'object'
|
|
545
|
+
) {
|
|
523
546
|
Object.assign(screenConfig, item.linking);
|
|
524
547
|
}
|
|
548
|
+
}
|
|
525
549
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
550
|
+
if (screenConfig.exact && screenConfig.path == null) {
|
|
551
|
+
throw new Error(
|
|
552
|
+
"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`."
|
|
553
|
+
);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
if (typeof screenConfig.path === 'string') {
|
|
557
|
+
screenConfig.path = normalizePath(screenConfig.path);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
if (screenConfig.alias != null) {
|
|
561
|
+
screenConfig.alias = screenConfig.alias.map((alias) => {
|
|
562
|
+
if (typeof alias === 'string') {
|
|
563
|
+
return normalizePath(alias);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
return {
|
|
567
|
+
...alias,
|
|
568
|
+
path: normalizePath(alias.path),
|
|
569
|
+
};
|
|
570
|
+
});
|
|
531
571
|
}
|
|
532
572
|
|
|
533
573
|
let screens;
|
|
534
574
|
|
|
575
|
+
const hasExplicitScreens =
|
|
576
|
+
'screens' in screenConfig && screenConfig.screens != null;
|
|
577
|
+
const hasDisabledLinking =
|
|
578
|
+
'linking' in item && item.linking === null;
|
|
579
|
+
const childOptions =
|
|
580
|
+
'initialRouteName' in screenConfig &&
|
|
581
|
+
typeof screenConfig.initialRouteName === 'string'
|
|
582
|
+
? { initialRouteName: screenConfig.initialRouteName }
|
|
583
|
+
: undefined;
|
|
584
|
+
|
|
585
|
+
if (
|
|
586
|
+
hasExplicitScreens &&
|
|
587
|
+
childOptions != null &&
|
|
588
|
+
!Object.keys(screenConfig.screens ?? {}).includes(
|
|
589
|
+
childOptions.initialRouteName
|
|
590
|
+
)
|
|
591
|
+
) {
|
|
592
|
+
throw new Error(
|
|
593
|
+
`Couldn't find a screen named '${childOptions.initialRouteName}' to use as 'initialRouteName'.`
|
|
594
|
+
);
|
|
595
|
+
}
|
|
596
|
+
|
|
535
597
|
const skipInitialDetectionInChild =
|
|
536
598
|
skipInitialDetection ||
|
|
537
599
|
(screenConfig.path != null && screenConfig.path !== '');
|
|
600
|
+
const allowAutoEmptyPathInChild =
|
|
601
|
+
allowAutoEmptyPath &&
|
|
602
|
+
(initialRouteName == null || key === initialRouteName);
|
|
538
603
|
|
|
539
|
-
if (
|
|
604
|
+
if (
|
|
605
|
+
!hasExplicitScreens &&
|
|
606
|
+
!hasDisabledLinking &&
|
|
607
|
+
'config' in item
|
|
608
|
+
) {
|
|
540
609
|
screens = createPathConfigForTree(
|
|
541
610
|
item,
|
|
542
|
-
|
|
543
|
-
skipInitialDetectionInChild
|
|
611
|
+
childOptions,
|
|
612
|
+
skipInitialDetectionInChild,
|
|
613
|
+
allowAutoEmptyPathInChild
|
|
544
614
|
);
|
|
545
615
|
} else if (
|
|
616
|
+
!hasExplicitScreens &&
|
|
617
|
+
!hasDisabledLinking &&
|
|
546
618
|
'screen' in item &&
|
|
547
619
|
'config' in item.screen &&
|
|
548
620
|
(item.screen.config.screens || item.screen.config.groups)
|
|
549
621
|
) {
|
|
550
622
|
screens = createPathConfigForTree(
|
|
551
623
|
item.screen,
|
|
552
|
-
|
|
553
|
-
skipInitialDetectionInChild
|
|
624
|
+
childOptions,
|
|
625
|
+
skipInitialDetectionInChild,
|
|
626
|
+
allowAutoEmptyPathInChild
|
|
554
627
|
);
|
|
555
628
|
}
|
|
556
629
|
|
|
@@ -560,29 +633,48 @@ export function createPathConfigForStaticNavigation(
|
|
|
560
633
|
|
|
561
634
|
if (
|
|
562
635
|
auto &&
|
|
563
|
-
!screenConfig.screens &&
|
|
564
|
-
// Skip generating path for screens that specify linking config as `
|
|
565
|
-
!
|
|
636
|
+
!('screens' in screenConfig && screenConfig.screens) &&
|
|
637
|
+
// Skip generating path for screens that specify linking config as `null` explicitly
|
|
638
|
+
!hasDisabledLinking
|
|
566
639
|
) {
|
|
567
640
|
if (screenConfig.path != null) {
|
|
568
641
|
if (!skipInitialDetection) {
|
|
569
|
-
if (
|
|
570
|
-
initialScreenHasPath = true;
|
|
571
|
-
} else if (screenConfig.path === '') {
|
|
642
|
+
if (screenConfig.path === '') {
|
|
572
643
|
// We encounter a leaf screen with empty path,
|
|
573
644
|
// Clear the initial screen config as it's not needed anymore
|
|
574
645
|
initialScreenConfig = undefined;
|
|
646
|
+
hasEmptyPath = true;
|
|
647
|
+
|
|
648
|
+
if (allowAutoEmptyPath && key === initialRouteName) {
|
|
649
|
+
initialScreenHasPath = true;
|
|
650
|
+
}
|
|
651
|
+
} else if (
|
|
652
|
+
allowAutoEmptyPath &&
|
|
653
|
+
key === initialRouteName &&
|
|
654
|
+
// Keep an already discovered fallback unless the initial route
|
|
655
|
+
// explicitly uses an empty path.
|
|
656
|
+
initialScreenConfig == null
|
|
657
|
+
) {
|
|
658
|
+
initialScreenHasPath = true;
|
|
575
659
|
}
|
|
576
660
|
}
|
|
577
661
|
} else {
|
|
578
|
-
if (
|
|
662
|
+
if (
|
|
663
|
+
!skipInitialDetection &&
|
|
664
|
+
allowAutoEmptyPath &&
|
|
665
|
+
(initialRouteName == null || key === initialRouteName) &&
|
|
666
|
+
!hasEmptyPath &&
|
|
667
|
+
initialScreenConfig == null
|
|
668
|
+
) {
|
|
579
669
|
initialScreenConfig = screenConfig;
|
|
580
670
|
}
|
|
581
671
|
|
|
582
|
-
screenConfig.path =
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
672
|
+
screenConfig.path = normalizePath(
|
|
673
|
+
key
|
|
674
|
+
.replace(/([A-Z]+)/g, '-$1')
|
|
675
|
+
.replace(/^-/, '')
|
|
676
|
+
.toLowerCase()
|
|
677
|
+
);
|
|
586
678
|
}
|
|
587
679
|
}
|
|
588
680
|
|
|
@@ -627,7 +719,7 @@ export function createPathConfigForStaticNavigation(
|
|
|
627
719
|
return screens;
|
|
628
720
|
};
|
|
629
721
|
|
|
630
|
-
const screens = createPathConfigForTree(tree, options, false);
|
|
722
|
+
const screens = createPathConfigForTree(tree, options, false, true);
|
|
631
723
|
|
|
632
724
|
if (auto && initialScreenConfig && !initialScreenHasPath) {
|
|
633
725
|
initialScreenConfig.path = '';
|