@react-navigation/core 7.0.0-alpha.16 → 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.
@@ -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,45 +162,82 @@ function createComponentForStaticNavigation(tree, displayName) {
161
162
  * };
162
163
  * ```
163
164
  */
164
- function createPathConfigForStaticNavigation(tree, auto) {
165
- function createPathConfigForScreens(screens) {
166
- return Object.fromEntries(Object.entries(screens).map(_ref4 => {
167
- let [key, item] = _ref4;
168
- const screenConfig = {};
169
- if ('linking' in item) {
170
- if (typeof item.linking === 'string') {
171
- screenConfig.path = item.linking;
172
- } else {
173
- Object.assign(screenConfig, item.linking);
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
- let screens;
177
- if ('config' in item) {
178
- screens = createPathConfigForStaticNavigation(item, auto);
179
- } else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
180
- screens = createPathConfigForStaticNavigation(item.screen, auto);
181
- }
182
- if (screens) {
183
- screenConfig.screens = screens;
184
- }
185
- if (auto && !('linking' in item) && !screenConfig.screens) {
186
- screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
187
- }
188
- return [key, screenConfig];
189
- }).filter(_ref5 => {
190
- let [, screen] = _ref5;
191
- return Object.keys(screen).length > 0;
192
- }));
193
- }
194
- const screens = tree.config.screens ? createPathConfigForScreens(tree.config.screens) : {};
195
- if (tree.config.groups) {
196
- Object.entries(tree.config.groups).forEach(_ref6 => {
197
- let [, group] = _ref6;
198
- Object.assign(screens, createPathConfigForScreens(group.screens));
199
- });
200
- }
201
- if (Object.keys(screens).length === 0) {
202
- return undefined;
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 = '';
203
241
  }
204
242
  return screens;
205
243
  }
@@ -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","auto","createPathConfigForScreens","fromEntries","_ref4","screenConfig","linking","path","replace","toLowerCase","filter","_ref5","keys","forEach","_ref6","undefined"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":";;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAaA,IAAAE,SAAA,GAAAF,OAAA;AAAsC,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAEtC;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAwPA;AACA;AACA;AACA;;AAOA;AACA;AACA;;AAwBA,MAAMK,cAAc,gBAAGnC,KAAK,CAACoC,IAAI,CAC/BC,IAAA,IAAyE;EAAA,IAApC;IAAEC;EAA4B,CAAC,GAAAD,IAAA;EAClE,MAAME,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAMC,QAAQ,gBAAGzC,KAAK,CAAC0C,aAAa,CAACJ,SAAS,EAAE;IAAEC;EAAM,CAAC,CAAC;EAE1D,OAAOE,QAAQ;AACjB,CACF,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAC1BC,MAAgC,EAChCC,OAAqD,KAClD;EACH,OAAO5B,MAAM,CAAC6B,OAAO,CAACD,OAAO,CAAC,CAACE,GAAG,CAACC,KAAA,IAAkB;IAAA,IAAjB,CAACC,IAAI,EAAEC,IAAI,CAAC,GAAAF,KAAA;IAC9C,IAAIV,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,IAAI,IAAAC,2BAAkB,EAACJ,MAAM,CAAC,EAAE;QAC9BhB,SAAS,GAAGgB,MAAM;MACpB,CAAC,MAAM,IAAI,QAAQ,IAAIA,MAAM,EAAE;QAC7BD,WAAW,GAAG,IAAI;QAClBf,SAAS,GAAGqB,kCAAkC,CAC5CL,MAAM,EACL,GAAEL,IAAK,WACV,CAAC;MACH;IACF,CAAC,MAAM,IAAI,IAAAS,2BAAkB,EAACR,IAAI,CAAC,EAAE;MACnCZ,SAAS,GAAGY,IAAI;IAClB,CAAC,MAAM,IAAI,QAAQ,IAAIA,IAAI,EAAE;MAC3BG,WAAW,GAAG,IAAI;MAClBf,SAAS,GAAGqB,kCAAkC,CAACT,IAAI,EAAG,GAAED,IAAK,WAAU,CAAC;IAC1E;IAEA,IAAIX,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIsB,KAAK,CACZ,qDAAoDX,IAAK,qLAC5D,CAAC;IACH;IAEA,MAAMY,OAAO,GAAGR,WAAW,gBACzBrD,KAAK,CAAC0C,aAAa,CAACJ,SAAS,EAAE,CAAC,CAAC,CAAC,gBAElCtC,KAAA,CAAA0C,aAAA,CAACP,cAAc;MAACG,SAAS,EAAEA;IAAU,CAAE,CACxC;IAED,OAAO,MAAM;MACX,MAAMwB,YAAY,GAAGV,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;MAE7C,IAAI,CAACU,YAAY,EAAE;QACjB,OAAO,IAAI;MACb;MAEA,oBACE9D,KAAA,CAAA0C,aAAA,CAACE,MAAM,EAAAlB,QAAA;QAACO,GAAG,EAAEgB,IAAK;QAACA,IAAI,EAAEA;MAAK,GAAKE,KAAK,GACrC,MAAMU,OACD,CAAC;IAEb,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASF,kCAAkCA,CAChDI,IAAqC,EACrCC,WAAmB,EACM;EACzB,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEtB,MAAM;IAAEuB;EAAO,CAAC,GAAGJ,IAAI;EACjD,MAAM;IAAElB,OAAO;IAAEuB,MAAM;IAAE,GAAGX;EAAK,CAAC,GAAGU,MAAM;EAE3C,IAAItB,OAAO,IAAI,IAAI,IAAIuB,MAAM,IAAI,IAAI,EAAE;IACrC,MAAM,IAAIR,KAAK,CACb,mIACF,CAAC;EACH;EAEA,MAAMS,KAAK,GAAGxB,OAAO,GAAGF,mBAAmB,CAACC,MAAM,EAAEC,OAAO,CAAC,GAAG,EAAE;EAEjE,IAAIuB,MAAM,EAAE;IACVC,KAAK,CAACC,IAAI,CACR,GAAGrD,MAAM,CAAC6B,OAAO,CAACsB,MAAM,CAAC,CAACrB,GAAG,CAACwB,KAAA,IAAoC;MAAA,IAAnC,CAACtC,GAAG,EAAE;QAAEsB,EAAE,EAAEH,KAAK;QAAE,GAAGoB;MAAM,CAAC,CAAC,GAAAD,KAAA;MAC3D,MAAME,UAAU,GAAG9B,mBAAmB,CAACC,MAAM,EAAE4B,KAAK,CAAC3B,OAAO,CAAC;MAE7D,OAAO,MAAM;QACX;QACA,MAAMJ,QAAQ,GAAGgC,UAAU,CAAC1B,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;QAEjD,MAAMY,YAAY,GAAGV,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;QAE7C,IAAI,CAACU,YAAY,EAAE;UACjB,OAAO,IAAI;QACb;QAEA,oBACE9D,KAAA,CAAA0C,aAAA,CAACwB,KAAK,EAAAxC,QAAA;UAACgD,aAAa,EAAEzC;QAAI,GAAKuC,KAAK;UAAEvC,GAAG,EAAEA;QAAI,IAC5CQ,QACI,CAAC;MAEZ,CAAC;IACH,CAAC,CACH,CAAC;EACH;EAEA,MAAMkC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,MAAMlC,QAAQ,GAAG4B,KAAK,CAACtB,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;IAE5C,oBAAOlD,KAAA,CAAA0C,aAAA,CAACuB,SAAS,EAAKR,IAAI,EAAGhB,QAAoB,CAAC;EACpD,CAAC;EAEDkC,kBAAkB,CAACX,WAAW,GAAGA,WAAW;EAE5C,OAAOW,kBAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mCAAmCA,CACjDb,IAqBC,EACDc,IAAc,EACd;EACA,SAASC,0BAA0BA,CACjCjC,OAMC,EACD;IACA,OAAO5B,MAAM,CAAC8D,WAAW,CACvB9D,MAAM,CAAC6B,OAAO,CAACD,OAAO,CAAC,CACpBE,GAAG,CAACiC,KAAA,IAAiB;MAAA,IAAhB,CAAC/C,GAAG,EAAEiB,IAAI,CAAC,GAAA8B,KAAA;MACf,MAAMC,YAAuC,GAAG,CAAC,CAAC;MAElD,IAAI,SAAS,IAAI/B,IAAI,EAAE;QACrB,IAAI,OAAOA,IAAI,CAACgC,OAAO,KAAK,QAAQ,EAAE;UACpCD,YAAY,CAACE,IAAI,GAAGjC,IAAI,CAACgC,OAAO;QAClC,CAAC,MAAM;UACLjE,MAAM,CAACU,MAAM,CAACsD,YAAY,EAAE/B,IAAI,CAACgC,OAAO,CAAC;QAC3C;MACF;MAEA,IAAIrC,OAAO;MAEX,IAAI,QAAQ,IAAIK,IAAI,EAAE;QACpBL,OAAO,GAAG+B,mCAAmC,CAAC1B,IAAI,EAAE2B,IAAI,CAAC;MAC3D,CAAC,MAAM,IACL,QAAQ,IAAI3B,IAAI,IAChB,QAAQ,IAAIA,IAAI,CAACI,MAAM,KACtBJ,IAAI,CAACI,MAAM,CAACa,MAAM,CAACtB,OAAO,IAAIK,IAAI,CAACI,MAAM,CAACa,MAAM,CAACC,MAAM,CAAC,EACzD;QACAvB,OAAO,GAAG+B,mCAAmC,CAAC1B,IAAI,CAACI,MAAM,EAAEuB,IAAI,CAAC;MAClE;MAEA,IAAIhC,OAAO,EAAE;QACXoC,YAAY,CAACpC,OAAO,GAAGA,OAAO;MAChC;MAEA,IAAIgC,IAAI,IAAI,EAAE,SAAS,IAAI3B,IAAI,CAAC,IAAI,CAAC+B,YAAY,CAACpC,OAAO,EAAE;QACzDoC,YAAY,CAACE,IAAI,GAAGlD,GAAG,CACpBmD,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBC,WAAW,CAAC,CAAC;MAClB;MAEA,OAAO,CAACpD,GAAG,EAAEgD,YAAY,CAAC;IAC5B,CAAC,CAAC,CACDK,MAAM,CAACC,KAAA;MAAA,IAAC,GAAGjC,MAAM,CAAC,GAAAiC,KAAA;MAAA,OAAKtE,MAAM,CAACuE,IAAI,CAAClC,MAAM,CAAC,CAACvB,MAAM,GAAG,CAAC;IAAA,EAC1D,CAAC;EACH;EAEA,MAAMc,OAAO,GAAGkB,IAAI,CAACI,MAAM,CAACtB,OAAO,GAC/BiC,0BAA0B,CAACf,IAAI,CAACI,MAAM,CAACtB,OAAO,CAAC,GAC/C,CAAC,CAAC;EAEN,IAAIkB,IAAI,CAACI,MAAM,CAACC,MAAM,EAAE;IACtBnD,MAAM,CAAC6B,OAAO,CAACiB,IAAI,CAACI,MAAM,CAACC,MAAM,CAAC,CAACqB,OAAO,CAACC,KAAA,IAAe;MAAA,IAAd,GAAGlB,KAAK,CAAC,GAAAkB,KAAA;MACnDzE,MAAM,CAACU,MAAM,CAACkB,OAAO,EAAEiC,0BAA0B,CAACN,KAAK,CAAC3B,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC;EACJ;EAEA,IAAI5B,MAAM,CAACuE,IAAI,CAAC3C,OAAO,CAAC,CAACd,MAAM,KAAK,CAAC,EAAE;IACrC,OAAO4D,SAAS;EAClB;EAEA,OAAO9C,OAAO;AAChB"}
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,45 +154,82 @@ export function createComponentForStaticNavigation(tree, displayName) {
153
154
  * };
154
155
  * ```
155
156
  */
156
- export function createPathConfigForStaticNavigation(tree, auto) {
157
- function createPathConfigForScreens(screens) {
158
- return Object.fromEntries(Object.entries(screens).map(_ref4 => {
159
- let [key, item] = _ref4;
160
- const screenConfig = {};
161
- if ('linking' in item) {
162
- if (typeof item.linking === 'string') {
163
- screenConfig.path = item.linking;
164
- } else {
165
- Object.assign(screenConfig, item.linking);
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
- let screens;
169
- if ('config' in item) {
170
- screens = createPathConfigForStaticNavigation(item, auto);
171
- } else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
172
- screens = createPathConfigForStaticNavigation(item.screen, auto);
173
- }
174
- if (screens) {
175
- screenConfig.screens = screens;
176
- }
177
- if (auto && !('linking' in item) && !screenConfig.screens) {
178
- screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
179
- }
180
- return [key, screenConfig];
181
- }).filter(_ref5 => {
182
- let [, screen] = _ref5;
183
- return Object.keys(screen).length > 0;
184
- }));
185
- }
186
- const screens = tree.config.screens ? createPathConfigForScreens(tree.config.screens) : {};
187
- if (tree.config.groups) {
188
- Object.entries(tree.config.groups).forEach(_ref6 => {
189
- let [, group] = _ref6;
190
- Object.assign(screens, createPathConfigForScreens(group.screens));
191
- });
192
- }
193
- if (Object.keys(screens).length === 0) {
194
- return undefined;
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 = '';
195
233
  }
196
234
  return screens;
197
235
  }
@@ -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","auto","createPathConfigForScreens","fromEntries","_ref4","screenConfig","linking","path","assign","replace","toLowerCase","filter","_ref5","keys","length","forEach","_ref6","undefined"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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"}
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":";AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAa7C,SAASC,QAAQ,QAAQ,YAAY;;AAErC;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAwPA;AACA;AACA;AACA;;AAOA;AACA;AACA;;AAwBA,MAAMC,cAAc,gBAAGH,KAAK,CAACI,IAAI,CAC/BC,IAAA,IAAyE;EAAA,IAApC;IAAEC;EAA4B,CAAC,GAAAD,IAAA;EAClE,MAAME,KAAK,GAAGL,QAAQ,CAAC,CAAC;EACxB,MAAMM,QAAQ,gBAAGR,KAAK,CAACS,aAAa,CAACH,SAAS,EAAE;IAAEC;EAAM,CAAC,CAAC;EAE1D,OAAOC,QAAQ;AACjB,CACF,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAC1BC,MAAgC,EAChCC,OAAqD,KAClD;EACH,OAAOC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,GAAG,CAACC,KAAA,IAAkB;IAAA,IAAjB,CAACC,IAAI,EAAEC,IAAI,CAAC,GAAAF,KAAA;IAC9C,IAAIV,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,IAAIxB,kBAAkB,CAACqB,MAAM,CAAC,EAAE;QAC9BhB,SAAS,GAAGgB,MAAM;MACpB,CAAC,MAAM,IAAI,QAAQ,IAAIA,MAAM,EAAE;QAC7BD,WAAW,GAAG,IAAI;QAClBf,SAAS,GAAGoB,kCAAkC,CAC5CJ,MAAM,EACL,GAAEL,IAAK,WACV,CAAC;MACH;IACF,CAAC,MAAM,IAAIhB,kBAAkB,CAACiB,IAAI,CAAC,EAAE;MACnCZ,SAAS,GAAGY,IAAI;IAClB,CAAC,MAAM,IAAI,QAAQ,IAAIA,IAAI,EAAE;MAC3BG,WAAW,GAAG,IAAI;MAClBf,SAAS,GAAGoB,kCAAkC,CAACR,IAAI,EAAG,GAAED,IAAK,WAAU,CAAC;IAC1E;IAEA,IAAIX,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIqB,KAAK,CACZ,qDAAoDV,IAAK,qLAC5D,CAAC;IACH;IAEA,MAAMW,OAAO,GAAGP,WAAW,gBACzBrB,KAAK,CAACS,aAAa,CAACH,SAAS,EAAE,CAAC,CAAC,CAAC,gBAElCN,KAAA,CAAAS,aAAA,CAACN,cAAc;MAACG,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,oBACE7B,KAAA,CAAAS,aAAA,CAACE,MAAM,EAAAmB,QAAA;QAACC,GAAG,EAAEd,IAAK;QAACA,IAAI,EAAEA;MAAK,GAAKE,KAAK,GACrC,MAAMS,OACD,CAAC;IAEb,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASF,kCAAkCA,CAChDM,IAAqC,EACrCC,WAAmB,EACM;EACzB,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAExB,MAAM;IAAEyB;EAAO,CAAC,GAAGJ,IAAI;EACjD,MAAM;IAAEpB,OAAO;IAAEyB,MAAM;IAAE,GAAGZ;EAAK,CAAC,GAAGW,MAAM;EAE3C,IAAIxB,OAAO,IAAI,IAAI,IAAIyB,MAAM,IAAI,IAAI,EAAE;IACrC,MAAM,IAAIV,KAAK,CACb,mIACF,CAAC;EACH;EAEA,MAAMW,KAAK,GAAG1B,OAAO,GAAGF,mBAAmB,CAACC,MAAM,EAAEC,OAAO,CAAC,GAAG,EAAE;EAEjE,IAAIyB,MAAM,EAAE;IACVC,KAAK,CAACC,IAAI,CACR,GAAG1B,MAAM,CAACC,OAAO,CAACuB,MAAM,CAAC,CAACtB,GAAG,CAACyB,KAAA,IAAoC;MAAA,IAAnC,CAACT,GAAG,EAAE;QAAER,EAAE,EAAEH,KAAK;QAAE,GAAGqB;MAAM,CAAC,CAAC,GAAAD,KAAA;MAC3D,MAAME,UAAU,GAAGhC,mBAAmB,CAACC,MAAM,EAAE8B,KAAK,CAAC7B,OAAO,CAAC;MAE7D,OAAO,MAAM;QACX;QACA,MAAMJ,QAAQ,GAAGkC,UAAU,CAAC3B,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;QAEjD,MAAMW,YAAY,GAAGT,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;QAE7C,IAAI,CAACS,YAAY,EAAE;UACjB,OAAO,IAAI;QACb;QAEA,oBACE7B,KAAA,CAAAS,aAAA,CAAC0B,KAAK,EAAAL,QAAA;UAACa,aAAa,EAAEZ;QAAI,GAAKU,KAAK;UAAEV,GAAG,EAAEA;QAAI,IAC5CvB,QACI,CAAC;MAEZ,CAAC;IACH,CAAC,CACH,CAAC;EACH;EAEA,MAAMoC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,MAAMpC,QAAQ,GAAG8B,KAAK,CAACvB,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;IAE5C,oBAAOlB,KAAA,CAAAS,aAAA,CAACyB,SAAS,EAAKT,IAAI,EAAGjB,QAAoB,CAAC;EACpD,CAAC;EAEDoC,kBAAkB,CAACX,WAAW,GAAGA,WAAW;EAE5C,OAAOW,kBAAkB;AAC3B;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mCAAmCA,CACjDb,IAAuB,EACvBc,OAEC,EACDC,IAAc,EACd;EACA,IAAIC,mBAA0D;EAE9D,MAAMC,uBAAuB,GAAGA,CAC9BC,CAAoB,EACpBC,CAA4C,EAG5CC,oBAA6B,KAC1B;IACH,MAAMC,0BAA0B,GAAGA,CACjCzC,OAMC,EACD0C,gBAAoC,KACjC;MACH,OAAOzC,MAAM,CAAC0C,WAAW,CACvB1C,MAAM,CAACC,OAAO,CAACF,OAAO;MACpB;MACA;MAAA,CACC4C,IAAI,CAAC,CAAAC,KAAA,EAAAC,KAAA,KAAc;QAAA,IAAb,CAACC,CAAC,CAAC,GAAAF,KAAA;QAAA,IAAE,CAACG,CAAC,CAAC,GAAAF,KAAA;QACb,IAAIC,CAAC,KAAKL,gBAAgB,EAAE;UAC1B,OAAO,CAAC,CAAC;QACX;QAEA,IAAIM,CAAC,KAAKN,gBAAgB,EAAE;UAC1B,OAAO,CAAC;QACV;QAEA,OAAO,CAAC;MACV,CAAC,CAAC,CACDvC,GAAG,CAAC8C,KAAA,IAAiB;QAAA,IAAhB,CAAC9B,GAAG,EAAEb,IAAI,CAAC,GAAA2C,KAAA;QACf,MAAMC,YAAuC,GAAG,CAAC,CAAC;QAElD,IAAI,SAAS,IAAI5C,IAAI,EAAE;UACrB,IAAI,OAAOA,IAAI,CAAC6C,OAAO,KAAK,QAAQ,EAAE;YACpCD,YAAY,CAACE,IAAI,GAAG9C,IAAI,CAAC6C,OAAO;UAClC,CAAC,MAAM;YACLlD,MAAM,CAACoD,MAAM,CAACH,YAAY,EAAE5C,IAAI,CAAC6C,OAAO,CAAC;UAC3C;QACF;QAEA,IAAInD,OAAO;QAEX,IAAI,QAAQ,IAAIM,IAAI,EAAE;UACpBN,OAAO,GAAGqC,uBAAuB,CAC/B/B,IAAI,EACJgD,SAAS,EACTd,oBAAoB,IAAIU,YAAY,CAACE,IAAI,IAAI,IAC/C,CAAC;QACH,CAAC,MAAM,IACL,QAAQ,IAAI9C,IAAI,IAChB,QAAQ,IAAIA,IAAI,CAACI,MAAM,KACtBJ,IAAI,CAACI,MAAM,CAACc,MAAM,CAACxB,OAAO,IAAIM,IAAI,CAACI,MAAM,CAACc,MAAM,CAACC,MAAM,CAAC,EACzD;UACAzB,OAAO,GAAGqC,uBAAuB,CAC/B/B,IAAI,CAACI,MAAM,EACX4C,SAAS,EACTd,oBAAoB,IAAIU,YAAY,CAACE,IAAI,IAAI,IAC/C,CAAC;QACH;QAEA,IAAIpD,OAAO,EAAE;UACXkD,YAAY,CAAClD,OAAO,GAAGA,OAAO;QAChC;QAEA,IAAImC,IAAI,IAAI,CAACe,YAAY,CAAClD,OAAO,IAAI,EAAE,SAAS,IAAIM,IAAI,CAAC,EAAE;UACzD,IAAI4C,YAAY,CAACE,IAAI,EAAE;YACrB,IAAI,CAACZ,oBAAoB,EAAE;cACzB;cACA,MAAMY,IAAI,GAAGF,YAAY,CAACE,IAAI,EAC1BG,KAAK,CAAC,GAAG,CAAC,CACXC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;;cAEZ;cACA;cACA,IAAI,CAAClB,oBAAoB,IAAIY,IAAI,KAAK,EAAE,EAAE;gBACxChB,mBAAmB,GAAGkB,SAAS;cACjC;YACF;UACF,CAAC,MAAM;YACL,IAAI,CAACd,oBAAoB,IAAIJ,mBAAmB,IAAI,IAAI,EAAE;cACxDA,mBAAmB,GAAGc,YAAY;YACpC;YAEAA,YAAY,CAACE,IAAI,GAAGjC,GAAG,CACpBwC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBC,WAAW,CAAC,CAAC;UAClB;QACF;QAEA,OAAO,CAACzC,GAAG,EAAE+B,YAAY,CAAC;MAC5B,CAAC,CAAC,CACDM,MAAM,CAACK,KAAA;QAAA,IAAC,GAAGnD,MAAM,CAAC,GAAAmD,KAAA;QAAA,OAAK5D,MAAM,CAAC6D,IAAI,CAACpD,MAAM,CAAC,CAACqD,MAAM,GAAG,CAAC;MAAA,EAC1D,CAAC;IACH,CAAC;IAED,MAAM/D,OAAO,GAAGsC,CAAC,CAACd,MAAM,CAACxB,OAAO,GAC5ByC,0BAA0B,CACxBH,CAAC,CAACd,MAAM,CAACxB,OAAO,EAChBuC,CAAC,EAAEG,gBAAgB,IAAIJ,CAAC,CAACd,MAAM,CAACkB,gBAClC,CAAC,GACD,CAAC,CAAC;IAEN,IAAIJ,CAAC,CAACd,MAAM,CAACC,MAAM,EAAE;MACnBxB,MAAM,CAACC,OAAO,CAACoC,CAAC,CAACd,MAAM,CAACC,MAAM,CAAC,CAACuC,OAAO,CAACC,KAAA,IAAe;QAAA,IAAd,GAAGpC,KAAK,CAAC,GAAAoC,KAAA;QAChDhE,MAAM,CAACoD,MAAM,CACXrD,OAAO,EACPyC,0BAA0B,CACxBZ,KAAK,CAAC7B,OAAO,EACbuC,CAAC,EAAEG,gBAAgB,IAAIJ,CAAC,CAACd,MAAM,CAACkB,gBAClC,CACF,CAAC;MACH,CAAC,CAAC;IACJ;IAEA,IAAIzC,MAAM,CAAC6D,IAAI,CAAC9D,OAAO,CAAC,CAAC+D,MAAM,KAAK,CAAC,EAAE;MACrC,OAAOT,SAAS;IAClB;IAEA,OAAOtD,OAAO;EAChB,CAAC;EAED,MAAMA,OAAO,GAAGqC,uBAAuB,CAACjB,IAAI,EAAEc,OAAO,EAAE,KAAK,CAAC;EAE7D,IAAIC,IAAI,IAAIC,mBAAmB,EAAE;IAC/BA,mBAAmB,CAACgB,IAAI,GAAG,EAAE;EAC/B;EAEA,OAAOpD,OAAO;AAChB"}
@@ -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,15 +181,8 @@ export declare function createComponentForStaticNavigation(tree: StaticNavigatio
168
181
  * };
169
182
  * ```
170
183
  */
171
- export declare function createPathConfigForStaticNavigation(tree: {
172
- config: {
173
- screens?: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
174
- groups?: {
175
- [key: string]: {
176
- screens: StaticConfigScreens<ParamListBase, NavigationState, {}, EventMapBase, Record<string, unknown>>;
177
- };
178
- };
179
- };
184
+ export declare function createPathConfigForStaticNavigation(tree: TreeForPathConfig, options?: {
185
+ initialRouteName?: string;
180
186
  }, auto?: boolean): {
181
187
  [k: string]: PathConfig<ParamListBase>;
182
188
  } | undefined;
@@ -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.16",
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": "d2513d78974a90af443aa05266d31dbfe576e177"
73
+ "gitHead": "7ed2bc19da336560ddd07002954a4ebba4d03929"
74
74
  }
@@ -442,10 +442,36 @@ export function createComponentForStaticNavigation(
442
442
  return NavigatorComponent;
443
443
  }
444
444
 
445
+ type TreeForPathConfig = {
446
+ config: {
447
+ initialRouteName?: string;
448
+ screens?: StaticConfigScreens<
449
+ ParamListBase,
450
+ NavigationState,
451
+ {},
452
+ EventMapBase,
453
+ Record<string, unknown>
454
+ >;
455
+ groups?: {
456
+ [key: string]: {
457
+ screens: StaticConfigScreens<
458
+ ParamListBase,
459
+ NavigationState,
460
+ {},
461
+ EventMapBase,
462
+ Record<string, unknown>
463
+ >;
464
+ };
465
+ };
466
+ };
467
+ };
468
+
445
469
  /**
446
470
  * Create a path config object from a static navigation config for deep linking.
447
471
  *
448
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.
449
475
  * @returns Path config object to use in linking config.
450
476
  *
451
477
  * @example
@@ -460,93 +486,144 @@ export function createComponentForStaticNavigation(
460
486
  * ```
461
487
  */
462
488
  export function createPathConfigForStaticNavigation(
463
- tree: {
464
- config: {
465
- screens?: StaticConfigScreens<
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<
466
506
  ParamListBase,
467
507
  NavigationState,
468
508
  {},
469
509
  EventMapBase,
470
510
  Record<string, unknown>
471
- >;
472
- groups?: {
473
- [key: string]: {
474
- screens: StaticConfigScreens<
475
- ParamListBase,
476
- NavigationState,
477
- {},
478
- EventMapBase,
479
- Record<string, unknown>
480
- >;
481
- };
482
- };
483
- };
484
- },
485
- auto?: boolean
486
- ) {
487
- function createPathConfigForScreens(
488
- screens: StaticConfigScreens<
489
- ParamListBase,
490
- NavigationState,
491
- {},
492
- EventMapBase,
493
- Record<string, unknown>
494
- >
495
- ) {
496
- return Object.fromEntries(
497
- Object.entries(screens)
498
- .map(([key, item]) => {
499
- const screenConfig: PathConfig<ParamListBase> = {};
500
-
501
- if ('linking' in item) {
502
- if (typeof item.linking === 'string') {
503
- screenConfig.path = item.linking;
504
- } else {
505
- Object.assign(screenConfig, item.linking);
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;
506
521
  }
507
- }
508
522
 
509
- let screens;
523
+ if (b === initialRouteName) {
524
+ return 1;
525
+ }
510
526
 
511
- if ('config' in item) {
512
- screens = createPathConfigForStaticNavigation(item, auto);
513
- } else if (
514
- 'screen' in item &&
515
- 'config' in item.screen &&
516
- (item.screen.config.screens || item.screen.config.groups)
517
- ) {
518
- screens = createPathConfigForStaticNavigation(item.screen, auto);
519
- }
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
+ }
520
539
 
521
- if (screens) {
522
- screenConfig.screens = screens;
523
- }
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
+ }
524
559
 
525
- if (auto && !('linking' in item) && !screenConfig.screens) {
526
- screenConfig.path = key
527
- .replace(/([A-Z]+)/g, '-$1')
528
- .replace(/^-/, '')
529
- .toLowerCase();
530
- }
560
+ if (screens) {
561
+ screenConfig.screens = screens;
562
+ }
531
563
 
532
- return [key, screenConfig] as const;
533
- })
534
- .filter(([, screen]) => Object.keys(screen).length > 0)
535
- );
536
- }
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
+ }
537
590
 
538
- const screens = tree.config.screens
539
- ? createPathConfigForScreens(tree.config.screens)
540
- : {};
591
+ return [key, screenConfig] as const;
592
+ })
593
+ .filter(([, screen]) => Object.keys(screen).length > 0)
594
+ );
595
+ };
541
596
 
542
- if (tree.config.groups) {
543
- Object.entries(tree.config.groups).forEach(([, group]) => {
544
- Object.assign(screens, createPathConfigForScreens(group.screens));
545
- });
546
- }
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
+ };
622
+
623
+ const screens = createPathConfigForTree(tree, options, false);
547
624
 
548
- if (Object.keys(screens).length === 0) {
549
- return undefined;
625
+ if (auto && initialScreenConfig) {
626
+ initialScreenConfig.path = '';
550
627
  }
551
628
 
552
629
  return screens;