@react-navigation/core 8.0.0-alpha.19 → 8.0.0-alpha.20

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.
Files changed (144) hide show
  1. package/lib/module/BaseNavigationContainer.js +6 -2
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/StaticNavigation.js +72 -61
  4. package/lib/module/StaticNavigation.js.map +1 -1
  5. package/lib/module/findFocusedRoute.js +7 -4
  6. package/lib/module/findFocusedRoute.js.map +1 -1
  7. package/lib/module/getActionFromState.js +25 -12
  8. package/lib/module/getActionFromState.js.map +1 -1
  9. package/lib/module/getPathFromState.js +24 -9
  10. package/lib/module/getPathFromState.js.map +1 -1
  11. package/lib/module/getPatternParts.js +3 -0
  12. package/lib/module/getPatternParts.js.map +1 -1
  13. package/lib/module/getStateFromPath.js +164 -78
  14. package/lib/module/getStateFromPath.js.map +1 -1
  15. package/lib/module/index.js +1 -1
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/types.js +8 -0
  18. package/lib/module/types.js.map +1 -1
  19. package/lib/module/useDescriptors.js +13 -6
  20. package/lib/module/useDescriptors.js.map +1 -1
  21. package/lib/module/useFocusEvents.js +5 -1
  22. package/lib/module/useFocusEvents.js.map +1 -1
  23. package/lib/module/useNavigation.js.map +1 -1
  24. package/lib/module/useNavigationBuilder.js +18 -5
  25. package/lib/module/useNavigationBuilder.js.map +1 -1
  26. package/lib/module/useNavigationCache.js +1 -1
  27. package/lib/module/useNavigationCache.js.map +1 -1
  28. package/lib/module/useNavigationState.js.map +1 -1
  29. package/lib/module/useOnAction.js +1 -1
  30. package/lib/module/useOnAction.js.map +1 -1
  31. package/lib/module/useRoute.js.map +1 -1
  32. package/lib/module/validatePathConfig.js +2 -1
  33. package/lib/module/validatePathConfig.js.map +1 -1
  34. package/lib/typescript/src/BaseNavigationContainer.d.ts +2 -2
  35. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  36. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  37. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  38. package/lib/typescript/src/Group.d.ts +1 -1
  39. package/lib/typescript/src/Group.d.ts.map +1 -1
  40. package/lib/typescript/src/NavigationBuilderContext.d.ts +1 -1
  41. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  42. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  43. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  44. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  45. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  46. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  47. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  48. package/lib/typescript/src/NavigationProvider.d.ts +6 -6
  49. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  50. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  51. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  52. package/lib/typescript/src/SceneView.d.ts +3 -2
  53. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  54. package/lib/typescript/src/Screen.d.ts +1 -1
  55. package/lib/typescript/src/Screen.d.ts.map +1 -1
  56. package/lib/typescript/src/StaticNavigation.d.ts +68 -73
  57. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  58. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  59. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  60. package/lib/typescript/src/createNavigatorFactory.d.ts +3 -3
  61. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  62. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  63. package/lib/typescript/src/getActionFromState.d.ts +1 -1
  64. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  65. package/lib/typescript/src/getPathFromState.d.ts +1 -1
  66. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  67. package/lib/typescript/src/getPatternParts.d.ts +1 -0
  68. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  69. package/lib/typescript/src/getStateFromPath.d.ts +2 -2
  70. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  71. package/lib/typescript/src/index.d.ts +34 -33
  72. package/lib/typescript/src/index.d.ts.map +1 -1
  73. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  74. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  75. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  76. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  77. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  78. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  79. package/lib/typescript/src/types.d.ts +72 -37
  80. package/lib/typescript/src/types.d.ts.map +1 -1
  81. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  82. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  83. package/lib/typescript/src/useComponent.d.ts +1 -1
  84. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  85. package/lib/typescript/src/useDescriptors.d.ts +5 -5
  86. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  87. package/lib/typescript/src/useEventEmitter.d.ts +1 -1
  88. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  89. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  90. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  91. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  92. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  93. package/lib/typescript/src/useKeyedChildListeners.d.ts +3 -3
  94. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  95. package/lib/typescript/src/useNavigation.d.ts +5 -3
  96. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  97. package/lib/typescript/src/useNavigationBuilder.d.ts +7 -7
  98. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  99. package/lib/typescript/src/useNavigationCache.d.ts +3 -3
  100. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  101. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  102. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  103. package/lib/typescript/src/useNavigationHelpers.d.ts +4 -4
  104. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  105. package/lib/typescript/src/useNavigationState.d.ts +2 -2
  106. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  107. package/lib/typescript/src/useOnAction.d.ts +3 -3
  108. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  109. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  110. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  111. package/lib/typescript/src/useOnPreventRemove.d.ts +3 -3
  112. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  113. package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
  114. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  115. package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -1
  116. package/lib/typescript/src/useRoute.d.ts +2 -2
  117. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  118. package/lib/typescript/src/useRouteCache.d.ts +2 -2
  119. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  120. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  121. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  122. package/lib/typescript/src/utilities.d.ts +4 -3
  123. package/lib/typescript/src/utilities.d.ts.map +1 -1
  124. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  125. package/package.json +18 -17
  126. package/src/BaseNavigationContainer.tsx +7 -2
  127. package/src/StaticNavigation.tsx +220 -248
  128. package/src/findFocusedRoute.tsx +10 -5
  129. package/src/getActionFromState.tsx +43 -30
  130. package/src/getPathFromState.tsx +40 -20
  131. package/src/getPatternParts.tsx +8 -0
  132. package/src/getStateFromPath.tsx +244 -67
  133. package/src/index.tsx +39 -1
  134. package/src/types.tsx +167 -122
  135. package/src/useDescriptors.tsx +22 -10
  136. package/src/useFocusEvents.tsx +7 -1
  137. package/src/useNavigation.tsx +8 -4
  138. package/src/useNavigationBuilder.tsx +22 -7
  139. package/src/useNavigationCache.tsx +4 -4
  140. package/src/useNavigationState.tsx +3 -3
  141. package/src/useOnAction.tsx +1 -1
  142. package/src/useRoute.tsx +4 -2
  143. package/src/utilities.tsx +17 -11
  144. package/src/validatePathConfig.tsx +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","getActiveRoute","state","route","index","routes","length","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","name","params","screen","nestedState","getPathFromState","Error","String","transformedState","path","current","allParams","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","Object","fromEntries","entries","key","value","undefined","optional","find","part","param","stringify","filter","entry","assign","forEach","nextRoute","nestedConfig","segment","Array","from","char","test","encodeURIComponent","join","query","sort","replace","startsWith","createConfigItem","config","parentParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["queryString","getPatternParts","getStateFromRouteParams","validatePathConfig","getActiveRoute","state","route","index","routes","length","Error","cachedNormalizedConfigs","WeakMap","getNormalizedConfigs","options","screens","cached","get","normalizedConfigs","createNormalizedConfigs","set","getTransformedState","configs","map","config","name","params","screen","nestedState","getPathFromState","String","transformedState","path","current","allParams","initialRoute","parts","focusedParams","currentOptions","focusedRoute","nestedRouteNames","hasNext","push","currentParams","Object","fromEntries","entries","key","value","undefined","optional","find","part","param","stringify","filter","entry","assign","forEach","nextRoute","nestedConfig","segment","Array","from","char","test","encodeURIComponent","join","query","sort","replace","startsWith","createConfigItem","parentParts","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
@@ -98,4 +98,7 @@ export function getPatternParts(path) {
98
98
  }
99
99
  return parts;
100
100
  }
101
+ export function combinePatternParts(parentParts, parts, exact = false) {
102
+ return exact ? parts : [...parentParts, ...parts];
103
+ }
101
104
  //# sourceMappingURL=getPatternParts.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getPatternParts","path","parts","current","segment","isRegex","isParam","regexInnerParens","i","length","char","Error","regex","param","optional","replace","push","params","map","part","filter","Boolean","index","entries","indexOf","combinePatternParts","parentParts","exact"],"sourceRoot":"../../src","sources":["getPatternParts.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import escape from 'escape-string-regexp';
4
4
  import queryString from 'query-string';
5
5
  import { arrayStartsWith } from "./arrayStartsWith.js";
6
6
  import { findFocusedRoute } from "./findFocusedRoute.js";
7
- import { getPatternParts } from "./getPatternParts.js";
7
+ import { combinePatternParts, getPatternParts } from "./getPatternParts.js";
8
8
  import { isArrayEqual } from "./isArrayEqual.js";
9
9
  import { validatePathConfig } from "./validatePathConfig.js";
10
10
  const INVALID_SCHEMA_RESULT_ERROR = 'Invalid validation result from schema. It should be an object with either "value" or "issues" property and cannot be asynchronous.';
@@ -50,13 +50,26 @@ const getValidationResult = (schema, value) => {
50
50
  * @param path Path string to parse and convert, e.g. /foo/bar?count=42.
51
51
  * @param options Extra options to fine-tune how to parse the path.
52
52
  */
53
- export function getStateFromPath(path, options) {
53
+ export function getStateFromPath(path, options, previous) {
54
54
  const {
55
55
  initialRoutes,
56
56
  configs,
57
- configsByScreen
57
+ configsByScreen,
58
+ configsByPattern
58
59
  } = getConfigResources(options);
59
60
  const screens = options?.screens;
61
+
62
+ // When a matched config is shared, the same pattern can resolve to multiple branches
63
+ // pick the one that best matches the current navigation state
64
+ const resolveSharedConfig = config => {
65
+ if (config.shared) {
66
+ const candidates = configsByPattern[config.segments.join('/')];
67
+ if (candidates) {
68
+ return selectSharedConfig(config, candidates, previous, initialRoutes);
69
+ }
70
+ }
71
+ return config;
72
+ };
60
73
  let remaining = path.replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
61
74
  .replace(/^\//, '') // Remove extra leading slash
62
75
  .replace(/\?.*$/, ''); // Remove query params which we will handle later
@@ -103,9 +116,10 @@ export function getStateFromPath(path, options) {
103
116
  // When handling empty path, we should only look at the root level config
104
117
  const match = configs.find(config => config.segments.join('/') === '');
105
118
  if (match) {
106
- return createNestedStateObject(path, match.routeNames.map(name => ({
119
+ const config = resolveSharedConfig(match);
120
+ return createNestedStateObject(path, config.routeNames.map(name => ({
107
121
  name
108
- })), initialRoutes, match);
122
+ })), initialRoutes, config);
109
123
  }
110
124
  return undefined;
111
125
  }
@@ -117,7 +131,17 @@ export function getStateFromPath(path, options) {
117
131
  if (routes === undefined) {
118
132
  continue;
119
133
  }
120
- const state = createNestedStateObject(path, routes, initialRoutes, config);
134
+ let selectedConfig = resolveSharedConfig(config);
135
+ let selectedRoutes = routes;
136
+ if (selectedConfig !== config) {
137
+ const rematchedRoutes = matchAgainstConfig(remaining, selectedConfig, configsByScreen);
138
+ if (rematchedRoutes === undefined) {
139
+ selectedConfig = config;
140
+ } else {
141
+ selectedRoutes = rematchedRoutes;
142
+ }
143
+ }
144
+ const state = createNestedStateObject(path, selectedRoutes, initialRoutes, selectedConfig);
121
145
  if (state !== undefined) {
122
146
  return state;
123
147
  }
@@ -145,13 +169,16 @@ function prepareConfigResources(options) {
145
169
  const configs = getSortedNormalizedConfigs(initialRoutes, options?.screens);
146
170
  checkForDuplicatedConfigs(configs);
147
171
  const configsByScreen = {};
172
+ const configsByPattern = {};
148
173
  for (const c of configs) {
149
174
  (configsByScreen[c.screen] ??= []).push(c);
175
+ (configsByPattern[c.segments.join('/')] ??= []).push(c);
150
176
  }
151
177
  return {
152
178
  initialRoutes,
153
179
  configs,
154
- configsByScreen
180
+ configsByScreen,
181
+ configsByPattern
155
182
  };
156
183
  }
157
184
  function getInitialRoutes(options) {
@@ -166,7 +193,10 @@ function getInitialRoutes(options) {
166
193
  }
167
194
  function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
168
195
  // Create a normalized configs array which will be easier to use
169
- return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).sort((a, b) => {
196
+ return [].concat(...Object.keys(screens).map(key => createNormalizedConfigs(key, screens, initialRoutes, [], [], []))).map((config, order) => ({
197
+ ...config,
198
+ order
199
+ })).sort((a, b) => {
170
200
  // Sort config from most specific to least specific:
171
201
  // - more segments
172
202
  // - static segments
@@ -189,21 +219,24 @@ function getSortedNormalizedConfigs(initialRoutes, screens = {}) {
189
219
  return 1;
190
220
  }
191
221
  for (let i = 0; i < Math.max(a.segments.length, b.segments.length); i++) {
222
+ const aSegment = a.segments[i];
223
+ const bSegment = b.segments[i];
224
+
192
225
  // if b is longer, b gets higher priority
193
- if (a.segments[i] == null) {
226
+ if (aSegment == null) {
194
227
  return 1;
195
228
  }
196
229
 
197
230
  // if a is longer, a gets higher priority
198
- if (b.segments[i] == null) {
231
+ if (bSegment == null) {
199
232
  return -1;
200
233
  }
201
- const aWildCard = a.segments[i] === '*';
202
- const bWildCard = b.segments[i] === '*';
203
- const aParam = a.segments[i].startsWith(':');
204
- const bParam = b.segments[i].startsWith(':');
205
- const aRegex = aParam && a.segments[i].includes('(');
206
- const bRegex = bParam && b.segments[i].includes('(');
234
+ const aWildCard = aSegment === '*';
235
+ const bWildCard = bSegment === '*';
236
+ const aParam = aSegment.startsWith(':');
237
+ const bParam = bSegment.startsWith(':');
238
+ const aRegex = aParam && aSegment.includes('(');
239
+ const bRegex = bParam && bSegment.includes('(');
207
240
 
208
241
  // if both are wildcard or regex, we compare next component
209
242
  if (aWildCard && bWildCard || aRegex && bRegex) {
@@ -254,8 +287,8 @@ function checkForDuplicatedConfigs(configs) {
254
287
  // It's not a problem if the path string omitted from a inner most screen
255
288
  // For example, it's ok if a path resolves to `A > B > C` or `A > B`
256
289
  const intersects = a.length > b.length ? b.every((it, i) => a[i] === it) : a.every((it, i) => b[i] === it);
257
- if (!intersects) {
258
- throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`);
290
+ if (!intersects && (!acc[pattern].shared || !config.shared)) {
291
+ throw new Error(`Found conflicting screens with the same pattern. The pattern '${pattern}' resolves to both '${a.join(' > ')}' and '${b.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen unless shared: true is specified.`);
259
292
  }
260
293
  }
261
294
  return Object.assign(acc, {
@@ -273,9 +306,10 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
273
306
  }
274
307
  let validationFailed = false;
275
308
  const matchedRoutes = [];
276
- for (const routeName of config.routeNames) {
277
- // Check matching name AND pattern in case same screen is used at different levels in config
278
- const routeConfig = configsByScreen[routeName]?.find(c => arrayStartsWith(config.segments, c.segments));
309
+ for (const [index, routeName] of config.routeNames.entries()) {
310
+ // Check matching name, route names and pattern in case same screen is used
311
+ // at different levels or branches in config
312
+ const routeConfig = configsByScreen[routeName]?.find(c => index === c.routeNames.length - 1 && arrayStartsWith(config.routeNames, c.routeNames) && arrayStartsWith(config.segments, c.segments));
279
313
  let params;
280
314
  if (routeConfig && match.groups) {
281
315
  const paramEntries = [];
@@ -340,59 +374,47 @@ const matchAgainstConfig = (remaining, config, configsByScreen) => {
340
374
  }
341
375
  return matchedRoutes;
342
376
  };
343
- const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScreens, routeNames) => {
377
+ const createNormalizedConfigs = (screen, routeConfig, initials, parts, parentScreens, routeNames) => {
344
378
  const configs = [];
345
379
  routeNames.push(screen);
346
380
  parentScreens.push(screen);
347
381
  const config = routeConfig[screen];
348
382
  if (typeof config === 'string') {
349
- paths.push({
350
- screen,
351
- path: config
352
- });
353
- configs.push(createConfigItem(screen, [...routeNames], [...paths]));
383
+ const configParts = combinePatternParts(parts, getPatternParts(config).map(part => ({
384
+ ...part,
385
+ screen
386
+ })));
387
+ configs.push(createConfigItem(screen, [...routeNames], configParts));
354
388
  } else if (typeof config === 'object') {
355
389
  // if an object is specified as the value (e.g. Foo: { ... }),
356
390
  // it can have `path` property and
357
391
  // it could have `screens` prop which has nested configs
358
392
  const nestedScreens = 'screens' in config ? config.screens : undefined;
359
393
  const hasNestedScreens = !!nestedScreens;
394
+ const currentParts = typeof config.path === 'string' ? combinePatternParts(parts, getPatternParts(config.path).map(part => ({
395
+ ...part,
396
+ screen
397
+ })), config.exact) : parts;
360
398
  if (typeof config.path === 'string') {
361
- if (config.exact && config.path == null) {
362
- throw new Error(`Screen '${screen}' doesn't specify a 'path'. 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: ''\`.`);
363
- }
364
-
365
399
  // We should add alias configs after the main config
366
400
  // So unless they are more specific, main config will be matched first
367
401
  const aliasConfigs = [];
368
402
  if (config.alias) {
369
403
  for (const alias of config.alias) {
370
404
  if (typeof alias === 'string') {
371
- aliasConfigs.push(createConfigItem(screen, [...routeNames], [...paths, {
372
- screen,
373
- path: alias
374
- }], config.parse, hasNestedScreens));
405
+ aliasConfigs.push(createConfigItem(screen, [...routeNames], combinePatternParts(parts, getPatternParts(alias).map(part => ({
406
+ ...part,
407
+ screen
408
+ }))), config.parse, hasNestedScreens, false));
375
409
  } else if (typeof alias === 'object') {
376
- aliasConfigs.push(createConfigItem(screen, [...routeNames], alias.exact ? [{
377
- screen,
378
- path: alias.path
379
- }] : [...paths, {
380
- screen,
381
- path: alias.path
382
- }], alias.parse, hasNestedScreens));
410
+ aliasConfigs.push(createConfigItem(screen, [...routeNames], combinePatternParts(parts, getPatternParts(alias.path).map(part => ({
411
+ ...part,
412
+ screen
413
+ })), alias.exact), alias.parse, hasNestedScreens, alias.shared === true));
383
414
  }
384
415
  }
385
416
  }
386
- if (config.exact) {
387
- // If it's an exact path, we don't need to keep track of the parent screens
388
- // So we can clear it
389
- paths.length = 0;
390
- }
391
- paths.push({
392
- screen,
393
- path: config.path
394
- });
395
- configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse, hasNestedScreens));
417
+ configs.push(createConfigItem(screen, [...routeNames], currentParts, config.parse, hasNestedScreens, config.shared === true));
396
418
  configs.push(...aliasConfigs);
397
419
  }
398
420
  if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
@@ -407,7 +429,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
407
429
  });
408
430
  }
409
431
  Object.keys(nestedScreens).forEach(nestedConfig => {
410
- const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, [...paths], [...parentScreens], routeNames);
432
+ const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, currentParts, [...parentScreens], routeNames);
411
433
  configs.push(...result);
412
434
  });
413
435
  }
@@ -415,19 +437,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
415
437
  routeNames.pop();
416
438
  return configs;
417
439
  };
418
- const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = false) => {
419
- const parts = [];
420
-
421
- // Parse the path string into parts for easier matching
422
- for (const {
423
- screen,
424
- path
425
- } of paths) {
426
- parts.push(...getPatternParts(path).map(part => ({
427
- ...part,
428
- screen
429
- })));
430
- }
440
+ const createConfigItem = (screen, routeNames, parts, parse, hasNestedScreens = false, shared = false) => {
431
441
  const regex = parts.length ? new RegExp(`^(${parts.map((it, i) => {
432
442
  if (it.param) {
433
443
  const reg = it.regex || '[^/]+';
@@ -443,14 +453,72 @@ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = f
443
453
  } : null).filter(it => it != null);
444
454
  return {
445
455
  screen,
456
+ order: 0,
446
457
  regex,
447
458
  segments,
448
459
  params,
449
460
  routeNames,
450
461
  parse,
451
462
  explicitParamNames: getExplicitParamNames(parse),
452
- hasNestedScreens
463
+ hasNestedScreens,
464
+ shared
465
+ };
466
+ };
467
+ const selectSharedConfig = (match, candidates, previous, initialRoutes) => {
468
+ // Walk the previous state down to the focused leaf to get the active route path
469
+ const focusedRouteNames = [];
470
+ let current = previous;
471
+ while (current?.routes.length) {
472
+ const index = typeof current.index === 'number' ? current.index : current.routes.length - 1;
473
+ const route = current.routes[index];
474
+ if (route == null) {
475
+ break;
476
+ }
477
+ focusedRouteNames.push(route.name);
478
+ current = route.state;
479
+ }
480
+
481
+ // Rank a candidate by how far it aligns with the focused path, then by
482
+ // how many of its levels match a configured initial route
483
+ const score = routeNames => {
484
+ let focused = 0;
485
+ while (routeNames[focused] !== undefined && routeNames[focused] === focusedRouteNames[focused]) {
486
+ focused++;
487
+ }
488
+ let initial = 0;
489
+ for (const config of initialRoutes) {
490
+ if (arrayStartsWith(routeNames, config.parentScreens) && routeNames[config.parentScreens.length] === config.initialRouteName) {
491
+ initial++;
492
+ }
493
+ }
494
+ return {
495
+ focused,
496
+ initial
497
+ };
498
+ };
499
+ let selected = match;
500
+ let best = {
501
+ focused: -1,
502
+ initial: -1
453
503
  };
504
+ for (const candidate of candidates) {
505
+ if (!candidate.shared) {
506
+ continue;
507
+ }
508
+ const {
509
+ focused,
510
+ initial
511
+ } = score(candidate.routeNames);
512
+ const better = focused !== best.focused ? focused > best.focused : initial !== best.initial ? initial > best.initial : candidate.order < selected.order;
513
+ if (better) {
514
+ selected = candidate;
515
+ best = {
516
+ focused,
517
+ initial
518
+ };
519
+ }
520
+ }
521
+ return selected;
454
522
  };
455
523
 
456
524
  // Try to find an initial route connected with the one passed
@@ -459,7 +527,9 @@ const findInitialRoute = (routeName, parentScreens, initialRoutes) => {
459
527
  if (parentScreens.length === config.parentScreens.length) {
460
528
  let sameParents = true;
461
529
  for (let i = 0; i < parentScreens.length; i++) {
462
- if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {
530
+ const parentScreen = parentScreens[i];
531
+ const configParentScreen = config.parentScreens[i];
532
+ if (parentScreen == null || configParentScreen == null || parentScreen.localeCompare(configParentScreen) !== 0) {
463
533
  sameParents = false;
464
534
  break;
465
535
  }
@@ -515,32 +585,48 @@ const createStateObject = (initialRoute, route, isEmpty) => {
515
585
  };
516
586
  const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
517
587
  let route = routes.shift();
588
+ if (route == null) {
589
+ return undefined;
590
+ }
518
591
  const parentScreens = [];
519
592
  let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
520
593
  parentScreens.push(route.name);
521
594
  const state = createStateObject(initialRoute, route, routes.length === 0);
522
595
  if (routes.length > 0) {
523
596
  let nestedState = state;
524
- while (route = routes.shift()) {
597
+ let nextRoute = routes.shift();
598
+ while (nextRoute != null) {
599
+ route = nextRoute;
525
600
  initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
526
601
  const nestedStateIndex = nestedState.index || nestedState.routes.length - 1;
527
- nestedState.routes[nestedStateIndex].state = createStateObject(initialRoute, route, routes.length === 0);
602
+ const nestedRoute = nestedState.routes[nestedStateIndex];
603
+ if (nestedRoute == null) {
604
+ throw new Error(`Couldn't find a route at index ${nestedStateIndex}.`);
605
+ }
606
+ nestedRoute.state = createStateObject(initialRoute, route, routes.length === 0);
528
607
  if (routes.length > 0) {
529
- nestedState = nestedState.routes[nestedStateIndex].state;
608
+ if (nestedRoute.state == null) {
609
+ throw new Error(`Couldn't find nested state for route '${route.name}'.`);
610
+ }
611
+ nestedState = nestedRoute.state;
530
612
  }
531
613
  parentScreens.push(route.name);
614
+ nextRoute = routes.shift();
532
615
  }
533
616
  }
534
- route = findFocusedRoute(state);
535
- route.path = path.replace(/\/$/, '');
617
+ const focusedRoute = findFocusedRoute(state);
618
+ if (focusedRoute == null) {
619
+ return undefined;
620
+ }
621
+ focusedRoute.path = path.replace(/\/$/, '');
536
622
  const pathParamNames = new Set(routeConfig?.params.filter(param => param.screen === routeConfig.screen && typeof param.name === 'string').map(param => param.name));
537
- const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
623
+ const queryParams = parseQueryParams(path, routeConfig?.parse, pathParamNames, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, focusedRoute.params);
538
624
  if (!queryParams.valid) {
539
625
  return undefined;
540
626
  }
541
627
  if (queryParams.params) {
542
- route.params = {
543
- ...route.params,
628
+ focusedRoute.params = {
629
+ ...focusedRoute.params,
544
630
  ...queryParams.params
545
631
  };
546
632
  }
@@ -548,7 +634,7 @@ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
548
634
  };
549
635
  const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explicitParamNames, hasNestedScreens = false, routeParams) => {
550
636
  const query = path.split('?')[1];
551
- const params = queryString.parse(query);
637
+ const params = query ? queryString.parse(query) : {};
552
638
 
553
639
  // Path params should always win over same-named query params.
554
640
  for (const name of pathParamNames) {
@@ -599,7 +685,7 @@ const parseQueryParams = (path, parseConfig, pathParamNames = new Set(), explici
599
685
  throw new Error(INVALID_PARSER_ERROR);
600
686
  }
601
687
  }
602
- if (hasNestedScreens && !explicitParamNames?.has('screen') && (typeof params.screen === 'string' || typeof routeParams?.screen === 'string')) {
688
+ if (hasNestedScreens && !explicitParamNames?.has('screen') && (typeof params.screen === 'string' || routeParams != null && 'screen' in routeParams && typeof routeParams.screen === 'string')) {
603
689
  for (const name of NESTED_SCREEN_PARAM_NAMES) {
604
690
  if (!explicitParamNames?.has(name)) {
605
691
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
@@ -1 +1 @@
1
- {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","filter","parser","map","name","length","Set","undefined","getStandardSchema","version","validate","getValidationResult","schema","value","result","Array","isArray","issues","Error","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","decodedSegments","segment","split","push","decodeURIComponent","routes","createNestedStateObject","match","find","config","segments","join","routeNames","matchAgainstConfig","state","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","assign","regex","validationFailed","matchedRoutes","routeName","routeConfig","params","groups","paramEntries","index","Number","param","decoded","fromEntries","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","pop","parts","part","RegExp","reg","optional","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","shift","nestedState","nestedStateIndex","pathParamNames","queryParams","parseQueryParams","valid","parseConfig","routeParams","query","has","hasOwn"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","combinePatternParts","getPatternParts","isArrayEqual","validatePathConfig","INVALID_SCHEMA_RESULT_ERROR","INVALID_PARSER_ERROR","PARAM_GROUP_PREFIX","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","filter","parser","map","name","length","Set","undefined","getStandardSchema","version","validate","getValidationResult","schema","value","result","Array","isArray","issues","Error","getStateFromPath","path","options","previous","initialRoutes","configs","configsByScreen","configsByPattern","getConfigResources","screens","resolveSharedConfig","config","shared","candidates","segments","join","selectSharedConfig","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","decodedSegments","segment","split","push","decodeURIComponent","routes","createNestedStateObject","match","find","routeNames","matchAgainstConfig","selectedConfig","selectedRoutes","rematchedRoutes","state","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","initialRouteName","parentScreens","concat","keys","key","createNormalizedConfigs","order","sort","a","b","localeCompare","i","Math","max","aSegment","bSegment","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","assign","regex","validationFailed","matchedRoutes","index","routeName","routeConfig","params","groups","paramEntries","Number","param","decoded","fromEntries","initials","parts","configParts","part","createConfigItem","nestedScreens","hasNestedScreens","currentParts","exact","aliasConfigs","alias","forEach","nestedConfig","pop","RegExp","reg","optional","explicitParamNames","focusedRouteNames","current","route","score","focused","initial","selected","best","candidate","better","findInitialRoute","sameParents","parentScreen","configParentScreen","createStateObject","initialRoute","isEmpty","shift","nestedState","nextRoute","nestedStateIndex","nestedRoute","focusedRoute","pathParamNames","queryParams","parseQueryParams","valid","parseConfig","routeParams","query","has","hasOwn"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ export { createPathConfigForStaticNavigation, createScreenFactory } from "./Stat
19
19
  export { ThemeContext } from "./theming/ThemeContext.js";
20
20
  export { ThemeProvider } from "./theming/ThemeProvider.js";
21
21
  export { useTheme } from "./theming/useTheme.js";
22
- export * from "./types.js";
22
+ export { PrivateValueStore } from "./types.js";
23
23
  export { useFocusEffect } from "./useFocusEffect.js";
24
24
  export { IsFocusedContext, useIsFocused } from "./useIsFocused.js";
25
25
  export { useNavigation } from "./useNavigation.js";