@react-navigation/core 7.17.3 → 7.17.4

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.
@@ -7,6 +7,12 @@ import { findFocusedRoute } from "./findFocusedRoute.js";
7
7
  import { getPatternParts } from "./getPatternParts.js";
8
8
  import { isArrayEqual } from "./isArrayEqual.js";
9
9
  import { validatePathConfig } from "./validatePathConfig.js";
10
+ const NESTED_SCREEN_PARAM_NAMES = ['screen', 'params', 'initial', 'path', 'merge', 'pop'];
11
+ const getExplicitParamNames = parse => {
12
+ const names = Object.entries(parse ?? {}).map(([name]) => name);
13
+ return names.length ? new Set(names) : undefined;
14
+ };
15
+
10
16
  /**
11
17
  * Utility to parse a path string to initial state object accepted by the container.
12
18
  * This is useful for deep linking when we need to handle the incoming URL.
@@ -55,14 +61,22 @@ export function getStateFromPath(path, options) {
55
61
  // Remove the prefix from the path
56
62
  remaining = remaining.replace(normalizedPrefix, '');
57
63
  }
64
+ const decodedSegments = [];
65
+ for (const segment of remaining.split('/')) {
66
+ if (!segment) {
67
+ continue;
68
+ }
69
+ try {
70
+ decodedSegments.push(decodeURIComponent(segment));
71
+ } catch {
72
+ return undefined;
73
+ }
74
+ }
58
75
  if (screens === undefined) {
59
76
  // When no config is specified, use the path segments as route names
60
- const routes = remaining.split('/').filter(Boolean).map(segment => {
61
- const name = decodeURIComponent(segment);
62
- return {
63
- name
64
- };
65
- });
77
+ const routes = decodedSegments.map(name => ({
78
+ name
79
+ }));
66
80
  if (routes.length) {
67
81
  return createNestedStateObject(path, routes, initialRoutes);
68
82
  }
@@ -75,29 +89,21 @@ export function getStateFromPath(path, options) {
75
89
  if (match) {
76
90
  return createNestedStateObject(path, match.routeNames.map(name => ({
77
91
  name
78
- })), initialRoutes, configs);
92
+ })), initialRoutes, match);
79
93
  }
80
94
  return undefined;
81
95
  }
82
- let result;
83
- let current;
84
96
 
85
97
  // We match the whole path against the regex instead of segments
86
98
  // This makes sure matches such as wildcard will catch any unmatched routes, even if nested
87
99
  const {
88
100
  routes,
89
- remainingPath
101
+ config
90
102
  } = matchAgainstConfigs(remaining, configs, configsByScreen);
91
- if (routes !== undefined) {
92
- // This will always be empty if full path matched
93
- current = createNestedStateObject(path, routes, initialRoutes, configs);
94
- remaining = remainingPath;
95
- result = current;
96
- }
97
- if (current == null || result == null) {
103
+ if (routes === undefined || config === undefined) {
98
104
  return undefined;
99
105
  }
100
- return result;
106
+ return createNestedStateObject(path, routes, initialRoutes, config);
101
107
  }
102
108
 
103
109
  /**
@@ -241,6 +247,7 @@ function checkForDuplicatedConfigs(configs) {
241
247
  const matchAgainstConfigs = (remaining, configs, configsByScreen) => {
242
248
  let routes;
243
249
  let remainingPath = remaining;
250
+ let matchingConfig;
244
251
 
245
252
  // Go through all configs, and see if the next path segment matches our regex
246
253
  for (const config of configs) {
@@ -251,41 +258,59 @@ const matchAgainstConfigs = (remaining, configs, configsByScreen) => {
251
258
 
252
259
  // If our regex matches, we need to extract params from the path
253
260
  if (match) {
254
- routes = config.routeNames.map(routeName => {
261
+ routes = [];
262
+ matchingConfig = config;
263
+ for (const routeName of config.routeNames) {
255
264
  // Check matching name AND pattern in case same screen is used at different levels in config
256
265
  const routeConfig = configsByScreen[routeName]?.find(c => arrayStartsWith(config.segments, c.segments));
257
- const params = routeConfig && match.groups ? Object.fromEntries(Object.entries(match.groups).map(([key, value]) => {
258
- const index = Number(key.replace('param_', ''));
259
- const param = routeConfig.params.find(it => it.index === index);
260
- if (param?.screen === routeName && param?.name) {
261
- return [param.name, value];
266
+ let params;
267
+ if (routeConfig && match.groups) {
268
+ const paramEntries = [];
269
+ for (const [key, value] of Object.entries(match.groups)) {
270
+ const index = Number(key.replace('param_', ''));
271
+ const param = routeConfig.params.find(it => it.index === index);
272
+ if (param?.screen !== routeName || !param.name) {
273
+ continue;
274
+ }
275
+ if (value == null) {
276
+ paramEntries.push([param.name, undefined]);
277
+ continue;
278
+ }
279
+ let decoded;
280
+ try {
281
+ decoded = decodeURIComponent(value);
282
+ } catch {
283
+ return {
284
+ routes: undefined,
285
+ remainingPath
286
+ };
287
+ }
288
+ const parser = routeConfig.parse?.[param.name];
289
+ paramEntries.push([param.name, parser ? parser(decoded) : decoded]);
262
290
  }
263
- return null;
264
- }).filter(it => it != null).map(([key, value]) => {
265
- if (value == null) {
266
- return [key, undefined];
291
+ if (paramEntries.length) {
292
+ params = Object.fromEntries(paramEntries);
267
293
  }
268
- const decoded = decodeURIComponent(value);
269
- const parsed = routeConfig.parse?.[key] ? routeConfig.parse[key](decoded) : decoded;
270
- return [key, parsed];
271
- })) : undefined;
294
+ }
272
295
  if (params && Object.keys(params).length) {
273
- return {
296
+ routes.push({
274
297
  name: routeName,
275
298
  params
276
- };
299
+ });
300
+ } else {
301
+ routes.push({
302
+ name: routeName
303
+ });
277
304
  }
278
- return {
279
- name: routeName
280
- };
281
- });
305
+ }
282
306
  remainingPath = remainingPath.replace(match[0], '');
283
307
  break;
284
308
  }
285
309
  }
286
310
  return {
287
311
  routes,
288
- remainingPath
312
+ remainingPath,
313
+ config: matchingConfig
289
314
  };
290
315
  };
291
316
  const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScreens, routeNames) => {
@@ -303,6 +328,8 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
303
328
  // if an object is specified as the value (e.g. Foo: { ... }),
304
329
  // it can have `path` property and
305
330
  // it could have `screens` prop which has nested configs
331
+ const nestedScreens = config.screens;
332
+ const hasNestedScreens = !!nestedScreens;
306
333
  if (typeof config.path === 'string') {
307
334
  if (config.exact && config.path == null) {
308
335
  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: ''\`.`);
@@ -317,7 +344,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
317
344
  aliasConfigs.push(createConfigItem(screen, [...routeNames], [...paths, {
318
345
  screen,
319
346
  path: alias
320
- }], config.parse));
347
+ }], config.parse, hasNestedScreens));
321
348
  } else if (typeof alias === 'object') {
322
349
  aliasConfigs.push(createConfigItem(screen, [...routeNames], alias.exact ? [{
323
350
  screen,
@@ -325,7 +352,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
325
352
  }] : [...paths, {
326
353
  screen,
327
354
  path: alias.path
328
- }], alias.parse));
355
+ }], alias.parse, hasNestedScreens));
329
356
  }
330
357
  }
331
358
  }
@@ -338,13 +365,13 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
338
365
  screen,
339
366
  path: config.path
340
367
  });
341
- configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse));
368
+ configs.push(createConfigItem(screen, [...routeNames], [...paths], config.parse, hasNestedScreens));
342
369
  configs.push(...aliasConfigs);
343
370
  }
344
371
  if (typeof config !== 'string' && typeof config.path !== 'string' && config.alias?.length) {
345
372
  throw new Error(`Screen '${screen}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);
346
373
  }
347
- if (config.screens) {
374
+ if (nestedScreens) {
348
375
  // property `initialRouteName` without `screens` has no purpose
349
376
  if (config.initialRouteName) {
350
377
  initials.push({
@@ -352,8 +379,8 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
352
379
  parentScreens
353
380
  });
354
381
  }
355
- Object.keys(config.screens).forEach(nestedConfig => {
356
- const result = createNormalizedConfigs(nestedConfig, config.screens, initials, [...paths], [...parentScreens], routeNames);
382
+ Object.keys(nestedScreens).forEach(nestedConfig => {
383
+ const result = createNormalizedConfigs(nestedConfig, nestedScreens, initials, [...paths], [...parentScreens], routeNames);
357
384
  configs.push(...result);
358
385
  });
359
386
  }
@@ -361,7 +388,7 @@ const createNormalizedConfigs = (screen, routeConfig, initials, paths, parentScr
361
388
  routeNames.pop();
362
389
  return configs;
363
390
  };
364
- const createConfigItem = (screen, routeNames, paths, parse) => {
391
+ const createConfigItem = (screen, routeNames, paths, parse, hasNestedScreens = false) => {
365
392
  const parts = [];
366
393
 
367
394
  // Parse the path string into parts for easier matching
@@ -393,17 +420,11 @@ const createConfigItem = (screen, routeNames, paths, parse) => {
393
420
  segments,
394
421
  params,
395
422
  routeNames,
396
- parse
423
+ parse,
424
+ explicitParamNames: getExplicitParamNames(parse),
425
+ hasNestedScreens
397
426
  };
398
427
  };
399
- const findParseConfigForRoute = (routeName, flatConfig) => {
400
- for (const config of flatConfig) {
401
- if (routeName === config.routeNames[config.routeNames.length - 1]) {
402
- return config.parse;
403
- }
404
- }
405
- return undefined;
406
- };
407
428
 
408
429
  // Try to find an initial route connected with the one passed
409
430
  const findInitialRoute = (routeName, parentScreens, initialRoutes) => {
@@ -465,7 +486,7 @@ const createStateObject = (initialRoute, route, isEmpty) => {
465
486
  }
466
487
  }
467
488
  };
468
- const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
489
+ const createNestedStateObject = (path, routes, initialRoutes, routeConfig) => {
469
490
  let route = routes.shift();
470
491
  const parentScreens = [];
471
492
  let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);
@@ -485,7 +506,7 @@ const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
485
506
  }
486
507
  route = findFocusedRoute(state);
487
508
  route.path = path.replace(/\/$/, '');
488
- const params = parseQueryParams(path, flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined);
509
+ const params = parseQueryParams(path, routeConfig?.parse, routeConfig?.explicitParamNames, routeConfig?.hasNestedScreens, route.params);
489
510
  if (params) {
490
511
  route.params = {
491
512
  ...route.params,
@@ -494,7 +515,7 @@ const createNestedStateObject = (path, routes, initialRoutes, flatConfig) => {
494
515
  }
495
516
  return state;
496
517
  };
497
- const parseQueryParams = (path, parseConfig) => {
518
+ const parseQueryParams = (path, parseConfig, explicitParamNames, hasNestedScreens = false, routeParams) => {
498
519
  const query = path.split('?')[1];
499
520
  const params = queryString.parse(query);
500
521
  if (parseConfig) {
@@ -504,6 +525,14 @@ const parseQueryParams = (path, parseConfig) => {
504
525
  }
505
526
  });
506
527
  }
528
+ if (hasNestedScreens && !explicitParamNames?.has('screen') && (typeof params.screen === 'string' || typeof routeParams?.screen === 'string')) {
529
+ for (const name of NESTED_SCREEN_PARAM_NAMES) {
530
+ if (!explicitParamNames?.has(name)) {
531
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
532
+ delete params[name];
533
+ }
534
+ }
535
+ }
507
536
  return Object.keys(params).length ? params : undefined;
508
537
  };
509
538
  //# sourceMappingURL=getStateFromPath.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","getStateFromPath","path","options","initialRoutes","configs","configsByScreen","getConfigResources","screens","remaining","replace","endsWith","prefix","normalizedPrefix","startsWith","undefined","routes","split","filter","Boolean","map","segment","name","decodeURIComponent","length","createNestedStateObject","match","find","config","segments","join","routeNames","result","current","remainingPath","matchAgainstConfigs","cachedConfigResources","WeakMap","prepareConfigResources","cached","get","resources","set","getInitialRoutes","getSortedNormalizedConfigs","checkForDuplicatedConfigs","c","screen","push","initialRouteName","parentScreens","concat","Object","keys","key","createNormalizedConfigs","sort","a","b","localeCompare","i","Math","max","aWildCard","bWildCard","aParam","bParam","aRegex","includes","bRegex","reduce","acc","pattern","intersects","every","it","Error","assign","regex","routeName","routeConfig","params","groups","fromEntries","entries","value","index","Number","param","decoded","parsed","parse","initials","paths","createConfigItem","exact","aliasConfigs","alias","forEach","nestedConfig","pop","parts","part","RegExp","reg","optional","findParseConfigForRoute","flatConfig","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","query","hasOwnProperty","call"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["escape","queryString","arrayStartsWith","findFocusedRoute","getPatternParts","isArrayEqual","validatePathConfig","NESTED_SCREEN_PARAM_NAMES","getExplicitParamNames","parse","names","Object","entries","map","name","length","Set","undefined","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","matchAgainstConfigs","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","Error","assign","remainingPath","matchingConfig","regex","routeName","routeConfig","params","groups","paramEntries","value","index","Number","param","decoded","parser","fromEntries","initials","paths","createConfigItem","nestedScreens","hasNestedScreens","exact","aliasConfigs","alias","forEach","nestedConfig","result","pop","parts","part","RegExp","reg","optional","filter","explicitParamNames","findInitialRoute","sameParents","createStateObject","initialRoute","route","isEmpty","state","shift","nestedState","nestedStateIndex","parseQueryParams","parseConfig","routeParams","query","hasOwnProperty","call","has"],"sourceRoot":"../../src","sources":["getStateFromPath.tsx"],"mappings":"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","ignoreList":[]}
@@ -41,6 +41,7 @@ import { useScheduleUpdate } from "./useScheduleUpdate.js";
41
41
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
42
42
  import { jsx as _jsx } from "react/jsx-runtime";
43
43
  PrivateValueStore;
44
+ const isNavigationState = state => state != null && typeof state === 'object' && 'routes' in state && Array.isArray(state.routes);
44
45
  const isScreen = child => {
45
46
  return child.type === Screen;
46
47
  };
@@ -139,8 +140,9 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions, groupLayo
139
140
  return configs;
140
141
  };
141
142
  const getStateFromParams = params => {
142
- if (params?.state != null) {
143
- return params.state;
143
+ const state = params?.state;
144
+ if (isNavigationState(state)) {
145
+ return state;
144
146
  } else if (typeof params?.screen === 'string' && params?.initial !== false) {
145
147
  return {
146
148
  routes: [{
@@ -337,15 +339,16 @@ export function useNavigationBuilder(createRouter, options) {
337
339
  let didConsumeNestedParams = route?.params === paramsUsedForInitialization;
338
340
  if (route?.params && !didConsumeNestedParams) {
339
341
  let action;
340
- if (typeof route.params.state === 'object' && route.params.state != null && !isNestedParamsConsumed) {
342
+ const stateFromParams = route.params.state;
343
+ if (isNavigationState(stateFromParams) && !isNestedParamsConsumed) {
341
344
  didConsumeNestedParams = true;
342
- if (options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(route.params.state)) {
343
- if (route.params.state !== unhandledState) {
344
- setUnhandledState(route.params.state);
345
+ if (options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' && doesStateHaveOnlyInvalidRoutes(stateFromParams)) {
346
+ if (stateFromParams !== unhandledState) {
347
+ setUnhandledState(stateFromParams);
345
348
  }
346
349
  } else {
347
350
  // If the route was updated with new state, we should reset to it
348
- action = CommonActions.reset(route.params.state);
351
+ action = CommonActions.reset(stateFromParams);
349
352
  }
350
353
  } else if (typeof route.params.screen === 'string' && (route.params.initial === false && isFirstStateInitialization || !isNestedParamsConsumed)) {
351
354
  didConsumeNestedParams = true;
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useClientLayoutEffect","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","state","screen","initial","routes","path","useNavigationBuilder","createRouter","navigatorKey","route","useContext","consumedParams","isNestedParamsConsumed","isConsumed","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","join","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","UNSTABLE_routeNamesChangeBehavior","previousRouteKeyListRef","useEffect","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","didConsumeNestedParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","setConsumedParams","setConsumed","shouldUpdate","lastNotifiedStateRef","stateRef","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","navigation","descriptors","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","payload","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useClientLayoutEffect","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","useContext","consumedParams","isNestedParamsConsumed","isConsumed","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","join","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","UNSTABLE_routeNamesChangeBehavior","previousRouteKeyListRef","useEffect","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","didConsumeNestedParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","setConsumedParams","setConsumed","shouldUpdate","lastNotifiedStateRef","stateRef","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","navigation","descriptors","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","payload","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../../src/getStateFromPath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAQnC,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAGzD,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACnC,CAAC;AAkBF,KAAK,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,WAAW,GAAG,SAAS,CAsFzB"}
1
+ {"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../../src/getStateFromPath.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAQnC,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAGzD,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACnC,CAAC;AAoBF,KAAK,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AA6BF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,WAAW,GAAG,SAAS,CAoFzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAuQjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAC5D,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,EACnE,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAurBhB"}
1
+ {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAiRjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAC5D,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,EACnE,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAorBhB"}
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.3",
4
+ "version": "7.17.4",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -40,7 +40,7 @@
40
40
  "clean": "del lib"
41
41
  },
42
42
  "dependencies": {
43
- "@react-navigation/routers": "^7.5.4",
43
+ "@react-navigation/routers": "^7.5.5",
44
44
  "escape-string-regexp": "^4.0.0",
45
45
  "fast-deep-equal": "^3.1.3",
46
46
  "nanoid": "^3.3.11",
@@ -83,5 +83,5 @@
83
83
  ]
84
84
  ]
85
85
  },
86
- "gitHead": "e8a05bbfaf33a2fd0c6b67e9a186b823d697d323"
86
+ "gitHead": "01ae31e084223989654cbaafeffc88b4448b5d4f"
87
87
  }
@@ -29,6 +29,8 @@ type RouteConfig = {
29
29
  params: { screen: string; name?: string; index: number }[];
30
30
  routeNames: string[];
31
31
  parse?: ParseConfig;
32
+ explicitParamNames?: Set<string>;
33
+ hasNestedScreens: boolean;
32
34
  };
33
35
 
34
36
  type InitialRouteConfig = {
@@ -52,6 +54,21 @@ type ConfigResources = {
52
54
  configsByScreen: Record<string, RouteConfig[]>;
53
55
  };
54
56
 
57
+ const NESTED_SCREEN_PARAM_NAMES = [
58
+ 'screen',
59
+ 'params',
60
+ 'initial',
61
+ 'path',
62
+ 'merge',
63
+ 'pop',
64
+ ];
65
+
66
+ const getExplicitParamNames = (parse?: ParseConfig) => {
67
+ const names = Object.entries(parse ?? {}).map(([name]) => name);
68
+
69
+ return names.length ? new Set(names) : undefined;
70
+ };
71
+
55
72
  /**
56
73
  * Utility to parse a path string to initial state object accepted by the container.
57
74
  * This is useful for deep linking when we need to handle the incoming URL.
@@ -105,15 +122,23 @@ export function getStateFromPath<ParamList extends {}>(
105
122
  remaining = remaining.replace(normalizedPrefix, '');
106
123
  }
107
124
 
125
+ const decodedSegments: string[] = [];
126
+
127
+ for (const segment of remaining.split('/')) {
128
+ if (!segment) {
129
+ continue;
130
+ }
131
+
132
+ try {
133
+ decodedSegments.push(decodeURIComponent(segment));
134
+ } catch {
135
+ return undefined;
136
+ }
137
+ }
138
+
108
139
  if (screens === undefined) {
109
140
  // When no config is specified, use the path segments as route names
110
- const routes = remaining
111
- .split('/')
112
- .filter(Boolean)
113
- .map((segment) => {
114
- const name = decodeURIComponent(segment);
115
- return { name };
116
- });
141
+ const routes = decodedSegments.map((name) => ({ name }));
117
142
 
118
143
  if (routes.length) {
119
144
  return createNestedStateObject(path, routes, initialRoutes);
@@ -132,36 +157,26 @@ export function getStateFromPath<ParamList extends {}>(
132
157
  path,
133
158
  match.routeNames.map((name) => ({ name })),
134
159
  initialRoutes,
135
- configs
160
+ match
136
161
  );
137
162
  }
138
163
 
139
164
  return undefined;
140
165
  }
141
166
 
142
- let result: PartialState<NavigationState> | undefined;
143
- let current: PartialState<NavigationState> | undefined;
144
-
145
167
  // We match the whole path against the regex instead of segments
146
168
  // This makes sure matches such as wildcard will catch any unmatched routes, even if nested
147
- const { routes, remainingPath } = matchAgainstConfigs(
169
+ const { routes, config } = matchAgainstConfigs(
148
170
  remaining,
149
171
  configs,
150
172
  configsByScreen
151
173
  );
152
174
 
153
- if (routes !== undefined) {
154
- // This will always be empty if full path matched
155
- current = createNestedStateObject(path, routes, initialRoutes, configs);
156
- remaining = remainingPath;
157
- result = current;
158
- }
159
-
160
- if (current == null || result == null) {
175
+ if (routes === undefined || config === undefined) {
161
176
  return undefined;
162
177
  }
163
178
 
164
- return result;
179
+ return createNestedStateObject(path, routes, initialRoutes, config);
165
180
  }
166
181
 
167
182
  /**
@@ -354,6 +369,7 @@ const matchAgainstConfigs = (
354
369
  ) => {
355
370
  let routes: ParsedRoute[] | undefined;
356
371
  let remainingPath = remaining;
372
+ let matchingConfig: RouteConfig | undefined;
357
373
 
358
374
  // Go through all configs, and see if the next path segment matches our regex
359
375
  for (const config of configs) {
@@ -365,50 +381,57 @@ const matchAgainstConfigs = (
365
381
 
366
382
  // If our regex matches, we need to extract params from the path
367
383
  if (match) {
368
- routes = config.routeNames.map((routeName) => {
384
+ routes = [];
385
+ matchingConfig = config;
386
+
387
+ for (const routeName of config.routeNames) {
369
388
  // Check matching name AND pattern in case same screen is used at different levels in config
370
389
  const routeConfig = configsByScreen[routeName]?.find((c) =>
371
390
  arrayStartsWith(config.segments, c.segments)
372
391
  );
373
392
 
374
- const params =
375
- routeConfig && match.groups
376
- ? Object.fromEntries(
377
- Object.entries(match.groups)
378
- .map(([key, value]) => {
379
- const index = Number(key.replace('param_', ''));
380
- const param = routeConfig.params.find(
381
- (it) => it.index === index
382
- );
383
-
384
- if (param?.screen === routeName && param?.name) {
385
- return [param.name, value];
386
- }
387
-
388
- return null;
389
- })
390
- .filter((it) => it != null)
391
- .map(([key, value]) => {
392
- if (value == null) {
393
- return [key, undefined];
394
- }
395
-
396
- const decoded = decodeURIComponent(value);
397
- const parsed = routeConfig.parse?.[key]
398
- ? routeConfig.parse[key](decoded)
399
- : decoded;
400
-
401
- return [key, parsed];
402
- })
403
- )
404
- : undefined;
393
+ let params: Record<string, unknown> | undefined;
405
394
 
406
- if (params && Object.keys(params).length) {
407
- return { name: routeName, params };
395
+ if (routeConfig && match.groups) {
396
+ const paramEntries: [string, unknown][] = [];
397
+
398
+ for (const [key, value] of Object.entries(match.groups)) {
399
+ const index = Number(key.replace('param_', ''));
400
+ const param = routeConfig.params.find((it) => it.index === index);
401
+
402
+ if (param?.screen !== routeName || !param.name) {
403
+ continue;
404
+ }
405
+
406
+ if (value == null) {
407
+ paramEntries.push([param.name, undefined]);
408
+ continue;
409
+ }
410
+
411
+ let decoded: string;
412
+
413
+ try {
414
+ decoded = decodeURIComponent(value);
415
+ } catch {
416
+ return { routes: undefined, remainingPath };
417
+ }
418
+
419
+ const parser = routeConfig.parse?.[param.name];
420
+
421
+ paramEntries.push([param.name, parser ? parser(decoded) : decoded]);
422
+ }
423
+
424
+ if (paramEntries.length) {
425
+ params = Object.fromEntries(paramEntries);
426
+ }
408
427
  }
409
428
 
410
- return { name: routeName };
411
- });
429
+ if (params && Object.keys(params).length) {
430
+ routes.push({ name: routeName, params });
431
+ } else {
432
+ routes.push({ name: routeName });
433
+ }
434
+ }
412
435
 
413
436
  remainingPath = remainingPath.replace(match[0], '');
414
437
 
@@ -416,7 +439,7 @@ const matchAgainstConfigs = (
416
439
  }
417
440
  }
418
441
 
419
- return { routes, remainingPath };
442
+ return { routes, remainingPath, config: matchingConfig };
420
443
  };
421
444
 
422
445
  const createNormalizedConfigs = (
@@ -442,6 +465,9 @@ const createNormalizedConfigs = (
442
465
  // if an object is specified as the value (e.g. Foo: { ... }),
443
466
  // it can have `path` property and
444
467
  // it could have `screens` prop which has nested configs
468
+ const nestedScreens = config.screens;
469
+ const hasNestedScreens = !!nestedScreens;
470
+
445
471
  if (typeof config.path === 'string') {
446
472
  if (config.exact && config.path == null) {
447
473
  throw new Error(
@@ -461,7 +487,8 @@ const createNormalizedConfigs = (
461
487
  screen,
462
488
  [...routeNames],
463
489
  [...paths, { screen, path: alias }],
464
- config.parse
490
+ config.parse,
491
+ hasNestedScreens
465
492
  )
466
493
  );
467
494
  } else if (typeof alias === 'object') {
@@ -472,7 +499,8 @@ const createNormalizedConfigs = (
472
499
  alias.exact
473
500
  ? [{ screen, path: alias.path }]
474
501
  : [...paths, { screen, path: alias.path }],
475
- alias.parse
502
+ alias.parse,
503
+ hasNestedScreens
476
504
  )
477
505
  );
478
506
  }
@@ -487,7 +515,13 @@ const createNormalizedConfigs = (
487
515
 
488
516
  paths.push({ screen, path: config.path });
489
517
  configs.push(
490
- createConfigItem(screen, [...routeNames], [...paths], config.parse)
518
+ createConfigItem(
519
+ screen,
520
+ [...routeNames],
521
+ [...paths],
522
+ config.parse,
523
+ hasNestedScreens
524
+ )
491
525
  );
492
526
 
493
527
  configs.push(...aliasConfigs);
@@ -503,7 +537,7 @@ const createNormalizedConfigs = (
503
537
  );
504
538
  }
505
539
 
506
- if (config.screens) {
540
+ if (nestedScreens) {
507
541
  // property `initialRouteName` without `screens` has no purpose
508
542
  if (config.initialRouteName) {
509
543
  initials.push({
@@ -512,10 +546,10 @@ const createNormalizedConfigs = (
512
546
  });
513
547
  }
514
548
 
515
- Object.keys(config.screens).forEach((nestedConfig) => {
549
+ Object.keys(nestedScreens).forEach((nestedConfig) => {
516
550
  const result = createNormalizedConfigs(
517
551
  nestedConfig,
518
- config.screens as Record<string, string | PathConfig<ParamListBase>>,
552
+ nestedScreens as Record<string, string | PathConfig<ParamListBase>>,
519
553
  initials,
520
554
  [...paths],
521
555
  [...parentScreens],
@@ -536,7 +570,8 @@ const createConfigItem = (
536
570
  screen: string,
537
571
  routeNames: string[],
538
572
  paths: { screen: string; path: string }[],
539
- parse?: ParseConfig
573
+ parse?: ParseConfig,
574
+ hasNestedScreens = false
540
575
  ): RouteConfig => {
541
576
  const parts: (PatternPart & { screen: string })[] = [];
542
577
 
@@ -581,22 +616,11 @@ const createConfigItem = (
581
616
  params,
582
617
  routeNames,
583
618
  parse,
619
+ explicitParamNames: getExplicitParamNames(parse),
620
+ hasNestedScreens,
584
621
  };
585
622
  };
586
623
 
587
- const findParseConfigForRoute = (
588
- routeName: string,
589
- flatConfig: RouteConfig[]
590
- ): ParseConfig | undefined => {
591
- for (const config of flatConfig) {
592
- if (routeName === config.routeNames[config.routeNames.length - 1]) {
593
- return config.parse;
594
- }
595
- }
596
-
597
- return undefined;
598
- };
599
-
600
624
  // Try to find an initial route connected with the one passed
601
625
  const findInitialRoute = (
602
626
  routeName: string,
@@ -658,7 +682,7 @@ const createNestedStateObject = (
658
682
  path: string,
659
683
  routes: ParsedRoute[],
660
684
  initialRoutes: InitialRouteConfig[],
661
- flatConfig?: RouteConfig[]
685
+ routeConfig?: RouteConfig
662
686
  ) => {
663
687
  let route = routes.shift() as ParsedRoute;
664
688
  const parentScreens: string[] = [];
@@ -702,7 +726,10 @@ const createNestedStateObject = (
702
726
 
703
727
  const params = parseQueryParams(
704
728
  path,
705
- flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined
729
+ routeConfig?.parse,
730
+ routeConfig?.explicitParamNames,
731
+ routeConfig?.hasNestedScreens,
732
+ route.params
706
733
  );
707
734
 
708
735
  if (params) {
@@ -714,7 +741,10 @@ const createNestedStateObject = (
714
741
 
715
742
  const parseQueryParams = (
716
743
  path: string,
717
- parseConfig?: Record<string, (value: string) => unknown>
744
+ parseConfig?: ParseConfig,
745
+ explicitParamNames?: Set<string>,
746
+ hasNestedScreens = false,
747
+ routeParams?: Record<string, unknown>
718
748
  ) => {
719
749
  const query = path.split('?')[1];
720
750
  const params: Record<string, unknown> = queryString.parse(query);
@@ -730,5 +760,19 @@ const parseQueryParams = (
730
760
  });
731
761
  }
732
762
 
763
+ if (
764
+ hasNestedScreens &&
765
+ !explicitParamNames?.has('screen') &&
766
+ (typeof params.screen === 'string' ||
767
+ typeof routeParams?.screen === 'string')
768
+ ) {
769
+ for (const name of NESTED_SCREEN_PARAM_NAMES) {
770
+ if (!explicitParamNames?.has(name)) {
771
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
772
+ delete params[name];
773
+ }
774
+ }
775
+ }
776
+
733
777
  return Object.keys(params).length ? params : undefined;
734
778
  };
@@ -63,6 +63,14 @@ type NavigatorRoute = {
63
63
  params?: NavigatorScreenParams<ParamListBase>;
64
64
  };
65
65
 
66
+ const isNavigationState = (
67
+ state: unknown
68
+ ): state is NavigationState | PartialState<NavigationState> =>
69
+ state != null &&
70
+ typeof state === 'object' &&
71
+ 'routes' in state &&
72
+ Array.isArray(state.routes);
73
+
66
74
  const isScreen = (
67
75
  child: React.ReactElement<unknown>
68
76
  ): child is React.ReactElement<{
@@ -279,8 +287,10 @@ const getRouteConfigsFromChildren = <
279
287
  };
280
288
 
281
289
  const getStateFromParams = (params: NavigatorRoute['params']) => {
282
- if (params?.state != null) {
283
- return params.state;
290
+ const state = params?.state;
291
+
292
+ if (isNavigationState(state)) {
293
+ return state;
284
294
  } else if (typeof params?.screen === 'string' && params?.initial !== false) {
285
295
  return {
286
296
  routes: [
@@ -647,24 +657,21 @@ export function useNavigationBuilder<
647
657
 
648
658
  if (route?.params && !didConsumeNestedParams) {
649
659
  let action: CommonActions.Action | undefined;
660
+ const stateFromParams = route.params.state;
650
661
 
651
- if (
652
- typeof route.params.state === 'object' &&
653
- route.params.state != null &&
654
- !isNestedParamsConsumed
655
- ) {
662
+ if (isNavigationState(stateFromParams) && !isNestedParamsConsumed) {
656
663
  didConsumeNestedParams = true;
657
664
 
658
665
  if (
659
666
  options.UNSTABLE_routeNamesChangeBehavior === 'lastUnhandled' &&
660
- doesStateHaveOnlyInvalidRoutes(route.params.state)
667
+ doesStateHaveOnlyInvalidRoutes(stateFromParams)
661
668
  ) {
662
- if (route.params.state !== unhandledState) {
663
- setUnhandledState(route.params.state);
669
+ if (stateFromParams !== unhandledState) {
670
+ setUnhandledState(stateFromParams);
664
671
  }
665
672
  } else {
666
673
  // If the route was updated with new state, we should reset to it
667
- action = CommonActions.reset(route.params.state);
674
+ action = CommonActions.reset(stateFromParams);
668
675
  }
669
676
  } else if (
670
677
  typeof route.params.screen === 'string' &&