@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
- const createPathConfigForTree = (t, o, skipInitialDetection) => {
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
- if ('linking' in item) {
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
- if (typeof screenConfig.path === 'string') {
204
- screenConfig.path = screenConfig.path.replace(/^\//, '') // Remove extra leading slash
205
- .replace(/\/$/, ''); // Remove extra trailing slash
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
- if ('config' in item) {
211
- screens = createPathConfigForTree(item, undefined, skipInitialDetectionInChild);
212
- } else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
213
- screens = createPathConfigForTree(item.screen, undefined, skipInitialDetectionInChild);
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 `undefined` or `null` explicitly
220
- !('linking' in item && item.linking == null)) {
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 (key === initialRouteName && screenConfig.path != null) {
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":"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","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<ParamList> | string;
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
- initialRouteName?: string;
115
- screens?: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
116
- groups?: {
117
- [key: string]: {
118
- screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
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): {} | undefined;
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":"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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.17.4",
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": "01ae31e084223989654cbaafeffc88b4448b5d4f"
86
+ "gitHead": "b89bba20b9d6d935224dd5afa287f62a627b6c7e"
87
87
  }
@@ -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<ParamList> | string;
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
- initialRouteName?: string;
434
- screens?: StaticConfigScreens<
435
- ParamListBase,
436
- NavigationState,
437
- {},
438
- EventMapBase,
439
- Record<string, unknown>
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: StaticConfigScreens<
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
- if ('linking' in item) {
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
- if (typeof screenConfig.path === 'string') {
527
- screenConfig.path = screenConfig.path
528
- .replace(/^\//, '') // Remove extra leading slash
529
- .replace(/\/$/, ''); // Remove extra trailing slash
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 ('config' in item) {
604
+ if (
605
+ !hasExplicitScreens &&
606
+ !hasDisabledLinking &&
607
+ 'config' in item
608
+ ) {
540
609
  screens = createPathConfigForTree(
541
610
  item,
542
- undefined,
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
- undefined,
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 `undefined` or `null` explicitly
565
- !('linking' in item && item.linking == null)
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 (key === initialRouteName && screenConfig.path != null) {
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 (!skipInitialDetection && initialScreenConfig == null) {
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 = key
583
- .replace(/([A-Z]+)/g, '-$1')
584
- .replace(/^-/, '')
585
- .toLowerCase();
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 = '';