@react-navigation/core 8.0.0-alpha.33 → 8.0.0-alpha.35

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 (136) hide show
  1. package/README.md +17 -14
  2. package/lib/module/BaseNavigationContainer.js +14 -2
  3. package/lib/module/BaseNavigationContainer.js.map +1 -1
  4. package/lib/module/NavigationBuilderContext.js +8 -13
  5. package/lib/module/NavigationBuilderContext.js.map +1 -1
  6. package/lib/module/NavigationIndependentTree.js +45 -15
  7. package/lib/module/NavigationIndependentTree.js.map +1 -1
  8. package/lib/module/NavigationProvider.js +9 -4
  9. package/lib/module/NavigationProvider.js.map +1 -1
  10. package/lib/module/PreventRemoveProvider.js +2 -2
  11. package/lib/module/PreventRemoveProvider.js.map +1 -1
  12. package/lib/module/SceneView.js +2 -1
  13. package/lib/module/SceneView.js.map +1 -1
  14. package/lib/module/getPathFromState.js +41 -16
  15. package/lib/module/getPathFromState.js.map +1 -1
  16. package/lib/module/getPatternParts.js +43 -12
  17. package/lib/module/getPatternParts.js.map +1 -1
  18. package/lib/module/getStateFromPath.js +175 -109
  19. package/lib/module/getStateFromPath.js.map +1 -1
  20. package/lib/module/index.js +1 -0
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/useDescriptors.js +9 -6
  23. package/lib/module/useDescriptors.js.map +1 -1
  24. package/lib/module/useFocusEffect.js +4 -2
  25. package/lib/module/useFocusEffect.js.map +1 -1
  26. package/lib/module/useFocusEvents.js +4 -2
  27. package/lib/module/useFocusEvents.js.map +1 -1
  28. package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
  29. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  30. package/lib/module/useIsFocused.js +1 -0
  31. package/lib/module/useIsFocused.js.map +1 -1
  32. package/lib/module/useNavigationBuilder.js +42 -39
  33. package/lib/module/useNavigationBuilder.js.map +1 -1
  34. package/lib/module/useNavigationCache.js +85 -81
  35. package/lib/module/useNavigationCache.js.map +1 -1
  36. package/lib/module/useNavigationHelpers.js +2 -2
  37. package/lib/module/useNavigationHelpers.js.map +1 -1
  38. package/lib/module/useNavigationState.js +48 -23
  39. package/lib/module/useNavigationState.js.map +1 -1
  40. package/lib/module/useOnAction.js +6 -4
  41. package/lib/module/useOnAction.js.map +1 -1
  42. package/lib/module/useOnGetNavigation.js +2 -2
  43. package/lib/module/useOnGetNavigation.js.map +1 -1
  44. package/lib/module/useOnGetState.js +2 -2
  45. package/lib/module/useOnGetState.js.map +1 -1
  46. package/lib/module/useOnPreventRemove.js +2 -2
  47. package/lib/module/useOnPreventRemove.js.map +1 -1
  48. package/lib/module/useOnRouteFocus.js +2 -2
  49. package/lib/module/useOnRouteFocus.js.map +1 -1
  50. package/lib/module/useOptionsGetters.js +19 -20
  51. package/lib/module/useOptionsGetters.js.map +1 -1
  52. package/lib/module/usePreventRemoveContext.js +1 -1
  53. package/lib/module/usePreventRemoveContext.js.map +1 -1
  54. package/lib/module/useRouteCache.js +43 -33
  55. package/lib/module/useRouteCache.js.map +1 -1
  56. package/lib/module/useScheduleUpdate.js +5 -3
  57. package/lib/module/useScheduleUpdate.js.map +1 -1
  58. package/lib/module/useSyncState.js +9 -10
  59. package/lib/module/useSyncState.js.map +1 -1
  60. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  61. package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -6
  62. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  63. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  64. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  65. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  66. package/lib/typescript/src/SceneView.d.ts +2 -1
  67. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  68. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  69. package/lib/typescript/src/getPatternParts.d.ts +4 -2
  70. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  71. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  72. package/lib/typescript/src/index.d.ts +1 -0
  73. package/lib/typescript/src/index.d.ts.map +1 -1
  74. package/lib/typescript/src/types.d.ts +1 -1
  75. package/lib/typescript/src/types.d.ts.map +1 -1
  76. package/lib/typescript/src/useDescriptors.d.ts +2 -2
  77. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  78. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
  79. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  80. package/lib/typescript/src/useIsFocused.d.ts +1 -0
  81. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  82. package/lib/typescript/src/useNavigationBuilder.d.ts +1 -3
  83. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  84. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  85. package/lib/typescript/src/useNavigationState.d.ts +1 -0
  86. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  87. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  88. package/lib/typescript/src/useOnGetNavigation.d.ts.map +1 -1
  89. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  90. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  91. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  92. package/lib/typescript/src/useOptionsGetters.d.ts +2 -4
  93. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  94. package/lib/typescript/src/useRouteCache.d.ts +7 -12
  95. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  96. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  97. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  98. package/lib/typescript/src/utilities.d.ts +3 -0
  99. package/lib/typescript/src/utilities.d.ts.map +1 -1
  100. package/package.json +2 -3
  101. package/src/BaseNavigationContainer.tsx +19 -2
  102. package/src/NavigationBuilderContext.tsx +22 -18
  103. package/src/NavigationIndependentTree.tsx +56 -22
  104. package/src/NavigationProvider.tsx +13 -4
  105. package/src/PreventRemoveProvider.tsx +2 -8
  106. package/src/SceneView.tsx +3 -1
  107. package/src/getPathFromState.tsx +63 -15
  108. package/src/getPatternParts.tsx +75 -14
  109. package/src/getStateFromPath.tsx +250 -113
  110. package/src/index.tsx +1 -0
  111. package/src/types.tsx +1 -1
  112. package/src/useDescriptors.tsx +20 -6
  113. package/src/useFocusEffect.tsx +5 -2
  114. package/src/useFocusEvents.tsx +5 -2
  115. package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
  116. package/src/useIsFocused.tsx +4 -0
  117. package/src/useNavigationBuilder.tsx +54 -48
  118. package/src/useNavigationCache.tsx +130 -108
  119. package/src/useNavigationHelpers.tsx +2 -2
  120. package/src/useNavigationState.tsx +60 -29
  121. package/src/useOnAction.tsx +6 -5
  122. package/src/useOnGetNavigation.tsx +3 -2
  123. package/src/useOnGetState.tsx +4 -2
  124. package/src/useOnPreventRemove.tsx +4 -2
  125. package/src/useOnRouteFocus.tsx +2 -4
  126. package/src/useOptionsGetters.tsx +26 -25
  127. package/src/usePreventRemoveContext.tsx +1 -1
  128. package/src/useRouteCache.tsx +49 -33
  129. package/src/useScheduleUpdate.tsx +6 -3
  130. package/src/useSyncState.tsx +9 -11
  131. package/src/utilities.tsx +5 -2
  132. package/lib/module/useComponent.js +0 -34
  133. package/lib/module/useComponent.js.map +0 -1
  134. package/lib/typescript/src/useComponent.d.ts +0 -7
  135. package/lib/typescript/src/useComponent.d.ts.map +0 -1
  136. package/src/useComponent.tsx +0 -37
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","NavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","IsScreenContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useComponent","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetNavigation","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKeys","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","error","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","use","consumedParams","isNestedParamsConsumed","has","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","subscribe","setKey","getKey","getIsInitial","onEmitEvent","getIsStateEmitted","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useInsertionEffect","previousRouteKeyList","routeKeyChanges","filter","previous","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","didConsumeNestedParams","action","reset","payload","merge","pop","updatedState","getStateForAction","names","join","useEffect","set","shouldUpdate","lastNotifiedStateRef","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","descriptor","descriptors","navigation","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","focusedListeners","focus","getStateListeners","NavigationContent","focusedRoute","element","Provider","value","isSynced"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","useNavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","IsScreenContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetNavigation","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKeys","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","error","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","use","consumedParams","isNestedParamsConsumed","has","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","subscribe","setKey","getKey","getIsInitial","onEmitEvent","getIsStateEmitted","mountStateRef","useRef","previousStateRef","savedStateRef","current","lastState","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useInsertionEffect","previousRouteKeyList","routeKeyChanges","filter","previous","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","didConsumeNestedParams","action","reset","payload","merge","pop","updatedState","getStateForAction","names","join","set","shouldUpdate","useEffect","savedState","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","descriptor","descriptors","navigation","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","focusedListeners","focus","getStateListeners","render","focusedRoute","element","Provider","value","isSynced"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { CommonActions } from '@react-navigation/routers';
4
4
  import * as React from 'react';
5
- import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
5
+ import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
6
6
  import { NavigationContext } from "./NavigationProvider.js";
7
7
  /**
8
8
  * Hook to cache navigation objects for each screen in the navigator.
@@ -17,102 +17,106 @@ export function useNavigationCache({
17
17
  router,
18
18
  emitter
19
19
  }) {
20
- const parentNavigation = React.use(NavigationContext);
21
20
  const {
22
21
  withStackTrace
23
- } = React.use(NavigationBuilderContext);
22
+ } = useNavigationBuilderContext();
23
+ const parentNavigation = React.use(NavigationContext);
24
24
 
25
25
  // Cache object which holds navigation objects for each screen
26
26
  // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change
27
27
  // In reality, these deps will rarely change, if ever
28
28
  const cache = React.useMemo(() => ({
29
- current: {}
29
+ current: {},
30
+ routeNames: {}
30
31
  }),
31
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
32
- [getState, parentNavigation, navigation, setOptions, emitter]);
33
- const next = routes.reduce((acc, route) => {
34
- const previous = cache.current[route.key];
35
- if (previous) {
36
- // If a cached navigation object already exists, reuse it
37
- acc[route.key] = previous;
38
- } else {
39
- const dispatch = thunk => {
40
- withStackTrace(dispatch, () => {
41
- React.startTransition(() => {
42
- const action = typeof thunk === 'function' ? thunk(getState()) : thunk;
43
- if (action != null) {
44
- navigation.dispatch({
45
- source: route.key,
46
- ...action
47
- });
48
- }
33
+ [getState, parentNavigation, navigation, setOptions, router, emitter, withStackTrace]);
34
+ const next = React.useMemo(() => {
35
+ return routes.reduce((acc, route) => {
36
+ const previous = cache.routeNames[route.key] === route.name ? cache.current[route.key] : undefined;
37
+ if (previous) {
38
+ // If a cached navigation object already exists, reuse it
39
+ acc[route.key] = previous;
40
+ } else {
41
+ const dispatch = thunk => {
42
+ withStackTrace(dispatch, () => {
43
+ React.startTransition(() => {
44
+ const action = typeof thunk === 'function' ? thunk(getState()) : thunk;
45
+ if (action != null) {
46
+ navigation.dispatch({
47
+ source: route.key,
48
+ ...action
49
+ });
50
+ }
51
+ });
49
52
  });
50
- });
51
- };
52
- const actions = {
53
- ...router.actionCreators,
54
- ...CommonActions
55
- };
56
- const helpers = Object.keys(actions).reduce((acc, name) => {
57
- const helper = (...args) => withStackTrace(helper, () =>
58
- // @ts-expect-error: name is a valid key, but TypeScript is dumb
59
- dispatch(actions[name](...args)));
60
- acc[name] = helper;
61
- return acc;
62
- }, {});
53
+ };
54
+ const actions = {
55
+ ...router.actionCreators,
56
+ ...CommonActions
57
+ };
58
+ const helpers = Object.keys(actions).reduce((acc, name) => {
59
+ const helper = (...args) => withStackTrace(helper, () =>
60
+ // @ts-expect-error: name is a valid key, but TypeScript is dumb
61
+ dispatch(actions[name](...args)));
62
+ acc[name] = helper;
63
+ return acc;
64
+ }, {});
63
65
 
64
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
65
- const {
66
- emit,
67
- ...rest
68
- } = navigation;
69
- acc[route.key] = {
70
- ...rest,
71
- ...helpers,
72
- // FIXME: too much work to fix the types for now
73
- ...emitter.create(route.key),
74
- dispatch,
75
- getParent: routeName => {
76
- if (routeName === route.name) {
77
- // If the passed route name is the same as the current route's name,
78
- // we return the cached navigation object for the route
79
- return acc[route.key];
80
- }
81
- if (routeName !== undefined) {
82
- const parent = parentNavigation?.getParent(routeName);
83
- if (parent === undefined) {
84
- throw new Error(`Couldn't find a navigation object for '${routeName}' in current or any parent screens. Is your component inside the correct screen?`);
66
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
+ const {
68
+ emit,
69
+ ...rest
70
+ } = navigation;
71
+ acc[route.key] = {
72
+ ...rest,
73
+ ...helpers,
74
+ // FIXME: too much work to fix the types for now
75
+ ...emitter.create(route.key),
76
+ dispatch,
77
+ getParent: routeName => {
78
+ if (routeName === route.name) {
79
+ // If the passed route name is the same as the current route's name,
80
+ // we return the cached navigation object for the route
81
+ return acc[route.key];
85
82
  }
86
- return parent;
87
- }
88
- return parentNavigation;
89
- },
90
- setOptions: options => {
91
- setOptions(o => ({
92
- ...o,
93
- [route.key]: {
94
- ...o[route.key],
95
- ...options
83
+ if (routeName !== undefined) {
84
+ const parent = parentNavigation?.getParent(routeName);
85
+ if (parent === undefined) {
86
+ throw new Error(`Couldn't find a navigation object for '${routeName}' in current or any parent screens. Is your component inside the correct screen?`);
87
+ }
88
+ return parent;
89
+ }
90
+ return parentNavigation;
91
+ },
92
+ setOptions: options => {
93
+ setOptions(o => ({
94
+ ...o,
95
+ [route.key]: {
96
+ ...o[route.key],
97
+ ...options
98
+ }
99
+ }));
100
+ },
101
+ isFocused: () => {
102
+ const state = rest.getState();
103
+ if (state.routes[state.index]?.key !== route.key) {
104
+ return false;
96
105
  }
97
- }));
98
- },
99
- isFocused: () => {
100
- const state = rest.getState();
101
- if (state.routes[state.index]?.key !== route.key) {
102
- return false;
103
- }
104
106
 
105
- // If the current screen is focused, we also need to check if parent navigator is focused
106
- // This makes sure that we return the focus state in the whole tree, not just this navigator
107
- return navigation ? navigation.isFocused() : true;
108
- }
109
- };
110
- }
111
- return acc;
112
- }, {});
107
+ // If the current screen is focused, we also need to check if parent navigator is focused
108
+ // This makes sure that we return the focus state in the whole tree, not just this navigator
109
+ return navigation ? navigation.isFocused() : true;
110
+ }
111
+ };
112
+ }
113
+ return acc;
114
+ }, {});
115
+ }, [cache, routes, getState, navigation, router, withStackTrace, emitter, parentNavigation, setOptions]);
113
116
  React.useInsertionEffect(() => {
114
117
  cache.current = next;
115
- });
118
+ cache.routeNames = Object.fromEntries(routes.map(route => [route.key, route.name]));
119
+ }, [cache, next, routes]);
116
120
  return next;
117
121
  }
118
122
  //# sourceMappingURL=useNavigationCache.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","NavigationBuilderContext","NavigationContext","useNavigationCache","routes","getState","navigation","setOptions","router","emitter","parentNavigation","use","withStackTrace","cache","useMemo","current","next","reduce","acc","route","previous","key","dispatch","thunk","startTransition","action","source","actions","actionCreators","helpers","Object","keys","name","helper","args","emit","rest","create","getParent","routeName","undefined","parent","Error","options","o","isFocused","state","index","useInsertionEffect"],"sourceRoot":"../../src","sources":["useNavigationCache.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","React","useNavigationBuilderContext","NavigationContext","useNavigationCache","routes","getState","navigation","setOptions","router","emitter","withStackTrace","parentNavigation","use","cache","useMemo","current","routeNames","next","reduce","acc","route","previous","key","name","undefined","dispatch","thunk","startTransition","action","source","actions","actionCreators","helpers","Object","keys","helper","args","emit","rest","create","getParent","routeName","parent","Error","options","o","isFocused","state","index","useInsertionEffect","fromEntries","map"],"sourceRoot":"../../src","sources":["useNavigationCache.tsx"],"mappings":";;AAAA,SACEA,aAAa,QAKR,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,2BAA2B,QAAQ,+BAA4B;AACxE,SAASC,iBAAiB,QAAQ,yBAAsB;AA8CxD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAKhC;EACAC,MAAM;EACNC,QAAQ;EACRC,UAAU;EACVC,UAAU;EACVC,MAAM;EACNC;AACuC,CAAC,EAAE;EAC1C,MAAM;IAAEC;EAAe,CAAC,GAAGT,2BAA2B,CAAC,CAAC;EAExD,MAAMU,gBAAgB,GAAGX,KAAK,CAACY,GAAG,CAACV,iBAAiB,CAAC;;EAErD;EACA;EACA;EACA,MAAMW,KAAK,GAAGb,KAAK,CAACc,OAAO,CAIzB,OAAO;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,UAAU,EAAE,CAAC;EAAE,CAAC,CAAC;EACvC;EACA,CACEX,QAAQ,EACRM,gBAAgB,EAChBL,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,cAAc,CAElB,CAAC;EAED,MAAMO,IAAI,GAAGjB,KAAK,CAACc,OAAO,CAAC,MAAM;IAC/B,OAAOV,MAAM,CAACc,MAAM,CAElB,CAACC,GAAG,EAAEC,KAAK,KAAK;MAChB,MAAMC,QAAQ,GACZR,KAAK,CAACG,UAAU,CAACI,KAAK,CAACE,GAAG,CAAC,KAAKF,KAAK,CAACG,IAAI,GACtCV,KAAK,CAACE,OAAO,CAACK,KAAK,CAACE,GAAG,CAAC,GACxBE,SAAS;MAEf,IAAIH,QAAQ,EAAE;QACZ;QACAF,GAAG,CAACC,KAAK,CAACE,GAAG,CAAC,GAAGD,QAAQ;MAC3B,CAAC,MAAM;QACL,MAAMI,QAAQ,GACZC,KAE2D,IACxD;UACHhB,cAAc,CAACe,QAAQ,EAAE,MAAM;YAC7BzB,KAAK,CAAC2B,eAAe,CAAC,MAAM;cAC1B,MAAMC,MAAM,GACV,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACrB,QAAQ,CAAC,CAAC,CAAC,GAAGqB,KAAK;cAEzD,IAAIE,MAAM,IAAI,IAAI,EAAE;gBAClBtB,UAAU,CAACmB,QAAQ,CAAC;kBAAEI,MAAM,EAAET,KAAK,CAACE,GAAG;kBAAE,GAAGM;gBAAO,CAAC,CAAC;cACvD;YACF,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC;QAED,MAAME,OAAO,GAAG;UACd,GAAGtB,MAAM,CAACuB,cAAc;UACxB,GAAGhC;QACL,CAAC;QAED,MAAMiC,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACZ,MAAM,CACzC,CAACC,GAAG,EAAEI,IAAI,KAAK;UACb,MAAMY,MAAM,GAAGA,CAAC,GAAGC,IAAS,KAC1B1B,cAAc,CAACyB,MAAM,EAAE;UACrB;UACAV,QAAQ,CAACK,OAAO,CAACP,IAAI,CAAC,CAAC,GAAGa,IAAI,CAAC,CACjC,CAAC;UAEHjB,GAAG,CAACI,IAAI,CAAC,GAAGY,MAAM;UAElB,OAAOhB,GAAG;QACZ,CAAC,EACD,CAAC,CACH,CAAC;;QAED;QACA,MAAM;UAAEkB,IAAI;UAAE,GAAGC;QAAK,CAAC,GAAGhC,UAAU;QAEpCa,GAAG,CAACC,KAAK,CAACE,GAAG,CAAC,GAAG;UACf,GAAGgB,IAAI;UACP,GAAGN,OAAO;UACV;UACA,GAAIvB,OAAO,CAAC8B,MAAM,CAACnB,KAAK,CAACE,GAAG,CAAS;UACrCG,QAAQ;UACRe,SAAS,EAAGC,SAAS,IAAK;YACxB,IAAIA,SAAS,KAAKrB,KAAK,CAACG,IAAI,EAAE;cAC5B;cACA;cACA,OAAOJ,GAAG,CAACC,KAAK,CAACE,GAAG,CAAC;YACvB;YAEA,IAAImB,SAAS,KAAKjB,SAAS,EAAE;cAC3B,MAAMkB,MAAM,GAAG/B,gBAAgB,EAAE6B,SAAS,CAACC,SAAS,CAAC;cAErD,IAAIC,MAAM,KAAKlB,SAAS,EAAE;gBACxB,MAAM,IAAImB,KAAK,CACb,0CAA0CF,SAAS,kFACrD,CAAC;cACH;cAEA,OAAOC,MAAM;YACf;YAEA,OAAO/B,gBAAgB;UACzB,CAAC;UACDJ,UAAU,EAAGqC,OAA+B,IAAK;YAC/CrC,UAAU,CAAEsC,CAAC,KAAM;cACjB,GAAGA,CAAC;cACJ,CAACzB,KAAK,CAACE,GAAG,GAAG;gBAAE,GAAGuB,CAAC,CAACzB,KAAK,CAACE,GAAG,CAAC;gBAAE,GAAGsB;cAAQ;YAC7C,CAAC,CAAC,CAAC;UACL,CAAC;UACDE,SAAS,EAAEA,CAAA,KAAM;YACf,MAAMC,KAAK,GAAGT,IAAI,CAACjC,QAAQ,CAAC,CAAC;YAE7B,IAAI0C,KAAK,CAAC3C,MAAM,CAAC2C,KAAK,CAACC,KAAK,CAAC,EAAE1B,GAAG,KAAKF,KAAK,CAACE,GAAG,EAAE;cAChD,OAAO,KAAK;YACd;;YAEA;YACA;YACA,OAAOhB,UAAU,GAAGA,UAAU,CAACwC,SAAS,CAAC,CAAC,GAAG,IAAI;UACnD;QACF,CAAC;MACH;MAEA,OAAO3B,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR,CAAC,EAAE,CACDN,KAAK,EACLT,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVE,MAAM,EACNE,cAAc,EACdD,OAAO,EACPE,gBAAgB,EAChBJ,UAAU,CACX,CAAC;EAEFP,KAAK,CAACiD,kBAAkB,CAAC,MAAM;IAC7BpC,KAAK,CAACE,OAAO,GAAGE,IAAI;IACpBJ,KAAK,CAACG,UAAU,GAAGiB,MAAM,CAACiB,WAAW,CACnC9C,MAAM,CAAC+C,GAAG,CAAE/B,KAAK,IAAK,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,IAAI,CAAC,CAC/C,CAAC;EACH,CAAC,EAAE,CAACV,KAAK,EAAEI,IAAI,EAAEb,MAAM,CAAC,CAAC;EAEzB,OAAOa,IAAI;AACb","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { CommonActions } from '@react-navigation/routers';
4
4
  import * as React from 'react';
5
- import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
5
+ import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
6
6
  import { NavigationContext } from "./NavigationProvider.js";
7
7
  import { PrivateValueStore } from "./types.js";
8
8
  // This is to make TypeScript compiler happy
@@ -22,7 +22,7 @@ export function useNavigationHelpers({
22
22
  const parentNavigationHelpers = React.use(NavigationContext);
23
23
  const {
24
24
  withStackTrace
25
- } = React.use(NavigationBuilderContext);
25
+ } = useNavigationBuilderContext();
26
26
  return React.useMemo(() => {
27
27
  const dispatch = op => {
28
28
  withStackTrace(dispatch, () => {
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","NavigationBuilderContext","NavigationContext","PrivateValueStore","useNavigationHelpers","onAction","onUnhandledAction","getState","emitter","router","parentNavigationHelpers","use","withStackTrace","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","helper","args","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList"],"sourceRoot":"../../src","sources":["useNavigationHelpers.tsx"],"mappings":";;AAAA,SACEA,aAAa,QAKR,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,iBAAiB,QAAQ,yBAAsB;AACxD,SAAiCC,iBAAiB,QAAQ,YAAS;AAGnE;AACA;AACAA,iBAAiB;AAUjB;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAKlC;EACAC,QAAQ;EACRC,iBAAiB;EACjBC,QAAQ;EACRC,OAAO;EACPC;AACsB,CAAC,EAAE;EACzB,MAAMC,uBAAuB,GAAGV,KAAK,CAACW,GAAG,CAACT,iBAAiB,CAAC;EAC5D,MAAM;IAAEU;EAAe,CAAC,GAAGZ,KAAK,CAACW,GAAG,CAACV,wBAAwB,CAAC;EAE9D,OAAOD,KAAK,CAACa,OAAO,CAAC,MAAM;IACzB,MAAMC,QAAQ,GAAIC,EAAuC,IAAK;MAC5DH,cAAc,CAACE,QAAQ,EAAE,MAAM;QAC7B,MAAME,MAAM,GAAG,OAAOD,EAAE,KAAK,UAAU,GAAGA,EAAE,CAACR,QAAQ,CAAC,CAAC,CAAC,GAAGQ,EAAE;QAE7D,MAAME,OAAO,GAAGZ,QAAQ,CAACW,MAAM,CAAC;QAEhC,IAAI,CAACC,OAAO,EAAE;UACZX,iBAAiB,GAAGU,MAAM,CAAC;QAC7B;MACF,CAAC,CAAC;IACJ,CAAC;IAED,MAAME,OAAO,GAAG;MACd,GAAGT,MAAM,CAACU,cAAc;MACxB,GAAGpB;IACL,CAAC;IAED,MAAMqB,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MACzD,MAAMC,MAAM,GAAGA,CAAC,GAAGC,IAAS,KAC1Bf,cAAc,CAACc,MAAM,EAAE;MACrB;MACAZ,QAAQ,CAACI,OAAO,CAACO,IAAI,CAAC,CAAC,GAAGE,IAAI,CAAC,CACjC,CAAC;;MAEH;MACAH,GAAG,CAACC,IAAI,CAAC,GAAGC,MAAM;MAElB,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAkB,CAAC;IAEvB,MAAMI,iBAAiB,GAAG;MACxB,GAAGlB,uBAAuB;MAC1B,GAAGU,OAAO;MACVN,QAAQ;MACRe,IAAI,EAAErB,OAAO,CAACqB,IAAI;MAClBC,SAAS,EAAEpB,uBAAuB,GAC9BA,uBAAuB,CAACoB,SAAS,GACjC,MAAM,IAAI;MACdC,SAAS,EAAEA,CAAA,KAAM;QACf,MAAMC,KAAK,GAAGzB,QAAQ,CAAC,CAAC;QAExB,OACEE,MAAM,CAACwB,iBAAiB,CAACD,KAAK,EAAEjC,aAAa,CAACmC,MAAM,CAAC,CAAC,EAAY;UAChEC,UAAU,EAAEH,KAAK,CAACG,UAAU;UAC5BC,cAAc,EAAE,CAAC,CAAC;UAClBC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,KAAK,IAAI,IACX3B,uBAAuB,EAAEqB,SAAS,CAAC,CAAC,IACpC,KAAK;MAET,CAAC;MACDxB;IACF,CAA+D;IAE/D,OAAOqB,iBAAiB;EAC1B,CAAC,EAAE,CACDnB,MAAM,EACNC,uBAAuB,EACvBF,OAAO,CAACqB,IAAI,EACZtB,QAAQ,EACRF,QAAQ,EACRC,iBAAiB,EACjBM,cAAc,CACf,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","React","useNavigationBuilderContext","NavigationContext","PrivateValueStore","useNavigationHelpers","onAction","onUnhandledAction","getState","emitter","router","parentNavigationHelpers","use","withStackTrace","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","helper","args","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList"],"sourceRoot":"../../src","sources":["useNavigationHelpers.tsx"],"mappings":";;AAAA,SACEA,aAAa,QAKR,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,2BAA2B,QAAQ,+BAA4B;AACxE,SAASC,iBAAiB,QAAQ,yBAAsB;AACxD,SAAiCC,iBAAiB,QAAQ,YAAS;AAGnE;AACA;AACAA,iBAAiB;AAUjB;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAKlC;EACAC,QAAQ;EACRC,iBAAiB;EACjBC,QAAQ;EACRC,OAAO;EACPC;AACsB,CAAC,EAAE;EACzB,MAAMC,uBAAuB,GAAGV,KAAK,CAACW,GAAG,CAACT,iBAAiB,CAAC;EAC5D,MAAM;IAAEU;EAAe,CAAC,GAAGX,2BAA2B,CAAC,CAAC;EAExD,OAAOD,KAAK,CAACa,OAAO,CAAC,MAAM;IACzB,MAAMC,QAAQ,GAAIC,EAAuC,IAAK;MAC5DH,cAAc,CAACE,QAAQ,EAAE,MAAM;QAC7B,MAAME,MAAM,GAAG,OAAOD,EAAE,KAAK,UAAU,GAAGA,EAAE,CAACR,QAAQ,CAAC,CAAC,CAAC,GAAGQ,EAAE;QAE7D,MAAME,OAAO,GAAGZ,QAAQ,CAACW,MAAM,CAAC;QAEhC,IAAI,CAACC,OAAO,EAAE;UACZX,iBAAiB,GAAGU,MAAM,CAAC;QAC7B;MACF,CAAC,CAAC;IACJ,CAAC;IAED,MAAME,OAAO,GAAG;MACd,GAAGT,MAAM,CAACU,cAAc;MACxB,GAAGpB;IACL,CAAC;IAED,MAAMqB,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACK,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MACzD,MAAMC,MAAM,GAAGA,CAAC,GAAGC,IAAS,KAC1Bf,cAAc,CAACc,MAAM,EAAE;MACrB;MACAZ,QAAQ,CAACI,OAAO,CAACO,IAAI,CAAC,CAAC,GAAGE,IAAI,CAAC,CACjC,CAAC;;MAEH;MACAH,GAAG,CAACC,IAAI,CAAC,GAAGC,MAAM;MAElB,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAkB,CAAC;IAEvB,MAAMI,iBAAiB,GAAG;MACxB,GAAGlB,uBAAuB;MAC1B,GAAGU,OAAO;MACVN,QAAQ;MACRe,IAAI,EAAErB,OAAO,CAACqB,IAAI;MAClBC,SAAS,EAAEpB,uBAAuB,GAC9BA,uBAAuB,CAACoB,SAAS,GACjC,MAAM,IAAI;MACdC,SAAS,EAAEA,CAAA,KAAM;QACf,MAAMC,KAAK,GAAGzB,QAAQ,CAAC,CAAC;QAExB,OACEE,MAAM,CAACwB,iBAAiB,CAACD,KAAK,EAAEjC,aAAa,CAACmC,MAAM,CAAC,CAAC,EAAY;UAChEC,UAAU,EAAEH,KAAK,CAACG,UAAU;UAC5BC,cAAc,EAAE,CAAC,CAAC;UAClBC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,KAAK,IAAI,IACX3B,uBAAuB,EAAEqB,SAAS,CAAC,CAAC,IACpC,KAAK;MAET,CAAC;MACDxB;IACF,CAA+D;IAE/D,OAAOqB,iBAAiB;EAC1B,CAAC,EAAE,CACDnB,MAAM,EACNC,uBAAuB,EACvBF,OAAO,CAACqB,IAAI,EACZtB,QAAQ,EACRF,QAAQ,EACRC,iBAAiB,EACjBM,cAAc,CACf,CAAC;AACJ","ignoreList":[]}
@@ -39,6 +39,22 @@ export function useNavigationState(...args) {
39
39
  getSnapshot,
40
40
  subscribe
41
41
  } = listener;
42
+ const initialRef = React.useRef(true);
43
+
44
+ // We read the initial state from context on mount instead of using getState
45
+ // This ensures that we get proper state for the current render,
46
+ // even if the external store has been updated.
47
+ // We conditionally use `use` to avoid more unnecessary re-renders after first mount.
48
+ // The context subscription is removed on the next render, which can cause one extra render.
49
+ const initialState = initialRef.current ? React.use(listener.initialStateContext) : undefined;
50
+
51
+ // We track the last committed reducer entry, navigation state, and selector,
52
+ // so we can check if an update changes the value the component last committed.
53
+ const committedRef = React.useRef({
54
+ entry: null,
55
+ state: initialState ?? getSnapshot(),
56
+ select
57
+ });
42
58
 
43
59
  // The store can contain state from a transition that hasn't committed yet.
44
60
  // Reading it during render can show state that doesn't match the navigator in that render.
@@ -47,7 +63,21 @@ export function useNavigationState(...args) {
47
63
  // Navigation state can change between the dispatch and the reducer running.
48
64
  // Reading here ensures the processed event uses the state for that render.
49
65
  const state = event === 'update' ? getState() : getSnapshot();
50
- if (previous.listener === listener && (previous.state === state || event === 'update' && Object.is(select(previous.state), select(state)))) {
66
+
67
+ // If we're processing the same reducer entry as the last commit,
68
+ // we compare against the state last committed by the component.
69
+ // We keep the reducer entry to avoid re-renders for unchanged selections.
70
+ // This means the reducer entry can still hold older navigation state.
71
+ // If a parent causes another render,
72
+ // we use the latest snapshot so the selector doesn't read stale state.
73
+ // We leave the reducer entry unchanged to avoid an extra render.
74
+ // We save that snapshot in committedRef when the render commits,
75
+ // so later updates compare against the state we actually rendered,
76
+ // including when the selector changed.
77
+ // If the reducer entry is different, we use its own navigation state,
78
+ // so comparisons include updates already processed in the pending render.
79
+ const previousState = previous === committedRef.current.entry ? committedRef.current.state : previous.state;
80
+ if (previous.listener === listener && (previousState === state || event === 'update' && Object.is(select(previousState), select(state)))) {
51
81
  return previous;
52
82
  }
53
83
  return {
@@ -56,33 +86,23 @@ export function useNavigationState(...args) {
56
86
  };
57
87
  }, undefined, () => ({
58
88
  listener,
59
- state: getState()
89
+ state: initialState ?? getSnapshot()
60
90
  }));
61
- let state = entry.state;
62
- const committedRef = React.useRef({
63
- entry: null,
64
- state,
65
- select
66
- });
91
+ const state =
92
+ // A different listener means the state belongs to another navigator.
93
+ // This can happen when the passed route name changes.
94
+ entry.listener !== listener ||
95
+ // An entry that advanced past the last commit is at least as new as the snapshot.
96
+ // An entry that didn't advance while the committed state changed is older.
97
+ entry === committedRef.current.entry ? getSnapshot() : entry.state;
67
98
  React.useInsertionEffect(() => {
99
+ initialRef.current = false;
68
100
  committedRef.current = {
69
101
  entry,
70
102
  state,
71
103
  select
72
104
  };
73
105
  });
74
- const snapshot = getSnapshot();
75
- const behind = state !== snapshot && (
76
- // A different listener means the state belongs to another navigator.
77
- // This can happen when the passed route name changes.
78
- entry.listener !== listener ||
79
- // An entry that advanced past the last commit is at least as new as the snapshot.
80
- // An entry that didn't advance while the committed state changed is older.
81
- entry === committedRef.current.entry);
82
- if (behind) {
83
- state = snapshot;
84
- dispatch('commit');
85
- }
86
106
  React.useLayoutEffect(() => {
87
107
  const check = event => {
88
108
  const {
@@ -113,6 +133,7 @@ export function NavigationStateListenerProvider({
113
133
  subscribe,
114
134
  children
115
135
  }) {
136
+ const [InitialStateContext] = React.useState(() => /*#__PURE__*/React.createContext(state));
116
137
  const [listeners] = React.useState(() => new Set());
117
138
  React.useLayoutEffect(() => {
118
139
  listeners.forEach(listener => listener('commit'));
@@ -128,6 +149,7 @@ export function NavigationStateListenerProvider({
128
149
  // We keep this `undefined` for other scenarios, so the context isn't recreated.
129
150
  const nextState = isSynced ? undefined : state;
130
151
  const context = React.useMemo(() => ({
152
+ initialStateContext: InitialStateContext,
131
153
  getState,
132
154
  getSnapshot: () => nextState ?? snapshotRef.current,
133
155
  subscribe: callback => {
@@ -138,10 +160,13 @@ export function NavigationStateListenerProvider({
138
160
  unsubscribe();
139
161
  };
140
162
  }
141
- }), [getState, listeners, nextState, subscribe]);
163
+ }), [InitialStateContext, getState, listeners, nextState, subscribe]);
142
164
  return /*#__PURE__*/_jsx(NavigationStateListenerContext.Provider, {
143
165
  value: context,
144
- children: children
166
+ children: /*#__PURE__*/_jsx(InitialStateContext.Provider, {
167
+ value: state,
168
+ children: children
169
+ })
145
170
  });
146
171
  }
147
172
  export function NamedNavigationStateListenerProvider({
@@ -150,7 +175,7 @@ export function NamedNavigationStateListenerProvider({
150
175
  }) {
151
176
  const listener = React.use(NavigationStateListenerContext);
152
177
  if (listener == null) {
153
- throw new Error("Couldn't find a navigation state listener. This is likely because the navigator doesn't render its content under 'NavigationContent'.");
178
+ throw new Error("Couldn't find a navigation state listener. This is likely a bug in the navigator.\n\nIf you're using a custom navigator, make sure that the navigator content is wrapped by the 'render' function returned by 'useNavigationBuilder'.");
154
179
  }
155
180
  const parents = React.use(NamedNavigationStateListenerListContext);
156
181
  const listeners = React.useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","jsx","_jsx","useNavigationState","args","selector","Error","select","listener","name","listeners","use","NamedNavigationStateListenerListContext","NavigationStateListenerContext","getState","getSnapshot","subscribe","entry","dispatch","useReducer","previous","event","state","Object","is","undefined","committedRef","useRef","useInsertionEffect","current","snapshot","behind","useLayoutEffect","check","target","unsubscribe","NavigationStateListenerProvider","isSynced","children","useState","Set","forEach","snapshotRef","nextState","context","useMemo","callback","add","delete","Provider","value","NamedNavigationStateListenerProvider","parents","createContext"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","jsx","_jsx","useNavigationState","args","selector","Error","select","listener","name","listeners","use","NamedNavigationStateListenerListContext","NavigationStateListenerContext","getState","getSnapshot","subscribe","initialRef","useRef","initialState","current","initialStateContext","undefined","committedRef","entry","state","dispatch","useReducer","previous","event","previousState","Object","is","useInsertionEffect","useLayoutEffect","check","target","unsubscribe","NavigationStateListenerProvider","isSynced","children","InitialStateContext","useState","createContext","Set","forEach","snapshotRef","nextState","context","useMemo","callback","add","delete","Provider","value","NamedNavigationStateListenerProvider","parents"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import { ConsumedParamsContext } from "./ConsumedParamsContext.js";
5
5
  import { getLoaderForStateChange } from "./DataLoading.js";
6
- import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
6
+ import { useNavigationBuilderContext } from "./NavigationBuilderContext.js";
7
7
  import { StaticTreeContext } from "./StaticTreeContext.js";
8
8
  import { shouldPreventRemove, useOnPreventRemove } from "./useOnPreventRemove.js";
9
9
  /**
@@ -31,7 +31,7 @@ export function useOnAction({
31
31
  addListener: addListenerParent,
32
32
  onDispatchAction,
33
33
  flushUpdates
34
- } = React.use(NavigationBuilderContext);
34
+ } = useNavigationBuilderContext();
35
35
  const tree = React.use(StaticTreeContext);
36
36
  const consumedParams = React.use(ConsumedParamsContext);
37
37
  const routerConfigOptionsRef = React.useRef(routerConfigOptions);
@@ -55,8 +55,10 @@ export function useOnAction({
55
55
  let result = router.getStateForAction(state, action, routerConfigOptionsRef.current);
56
56
 
57
57
  // If a target is specified and set to current navigator, the action shouldn't bubble
58
- // So instead of `null`, we use the state object for such cases to signal that action was handled
59
- result = result === null && action.target === state.key ? state : result;
58
+ // So we immediately return `false` to mark it as unhandled
59
+ if (result === null && action.target === state.key) {
60
+ return false;
61
+ }
60
62
  if (result !== null && result.stale !== false) {
61
63
  // Some actions (e.g. `RESET`) may return a stale state from the router
62
64
  // We rehydrate it before storing so the stored state is always usable
@@ -1 +1 @@
1
- {"version":3,"names":["React","ConsumedParamsContext","getLoaderForStateChange","NavigationBuilderContext","StaticTreeContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","flushUpdates","use","tree","consumedParams","routerConfigOptionsRef","useRef","useInsertionEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","stale","getRehydratedState","isPrevented","routes","loader","undefined","shouldFocus","shouldActionChangeFocus","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","ConsumedParamsContext","getLoaderForStateChange","useNavigationBuilderContext","StaticTreeContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","flushUpdates","tree","use","consumedParams","routerConfigOptionsRef","useRef","useInsertionEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","stale","getRehydratedState","isPrevented","routes","loader","undefined","shouldFocus","shouldActionChangeFocus","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":";;AAOA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,uBAAuB,QAAQ,kBAAe;AACvD,SAGEC,2BAA2B,QACtB,+BAA4B;AACnC,SAASC,iBAAiB,QAAQ,wBAAqB;AAGvD,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,yBAAsB;AAa9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAgC;EACzDC,MAAM;EACNC,QAAQ;EACRC,QAAQ;EACRC,GAAG;EACHC,eAAe;EACfC,qBAAqB;EACrBC,mBAAmB;EACnBC;AACc,CAAC,EAAE;EACjB,MAAM;IACJC,QAAQ,EAAEC,cAAc;IACxBC,YAAY,EAAEC,kBAAkB;IAChCC,WAAW,EAAEC,iBAAiB;IAC9BC,gBAAgB;IAChBC;EACF,CAAC,GAAGpB,2BAA2B,CAAC,CAAC;EAEjC,MAAMqB,IAAI,GAAGxB,KAAK,CAACyB,GAAG,CAACrB,iBAAiB,CAAC;EACzC,MAAMsB,cAAc,GAAG1B,KAAK,CAACyB,GAAG,CAACxB,qBAAqB,CAAC;EAEvD,MAAM0B,sBAAsB,GAC1B3B,KAAK,CAAC4B,MAAM,CAAsBd,mBAAmB,CAAC;EAExDd,KAAK,CAAC6B,kBAAkB,CAAC,MAAM;IAC7BF,sBAAsB,CAACG,OAAO,GAAGhB,mBAAmB;EACtD,CAAC,CAAC;EAEF,MAAME,QAAQ,GAAGhB,KAAK,CAAC+B,WAAW,CAChC,CACEC,MAAwB,EACxBC,iBAA8B,GAAG,IAAIC,GAAG,CAAS,CAAC,KAC/C;IACH;IACA;IACA;IACAX,YAAY,CAAC,CAAC;IAEd,MAAMY,KAAK,GAAG1B,QAAQ,CAAC,CAAC;;IAExB;IACA;IACA,IAAIwB,iBAAiB,CAACG,GAAG,CAACD,KAAK,CAACxB,GAAG,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEAsB,iBAAiB,CAACI,GAAG,CAACF,KAAK,CAACxB,GAAG,CAAC;IAEhC,IAAI,OAAOqB,MAAM,CAACM,MAAM,KAAK,QAAQ,IAAIN,MAAM,CAACM,MAAM,KAAKH,KAAK,CAACxB,GAAG,EAAE;MACpE,IAAI4B,MAAM,GAAG/B,MAAM,CAACgC,iBAAiB,CACnCL,KAAK,EACLH,MAAM,EACNL,sBAAsB,CAACG,OACzB,CAAC;;MAED;MACA;MACA,IAAIS,MAAM,KAAK,IAAI,IAAIP,MAAM,CAACM,MAAM,KAAKH,KAAK,CAACxB,GAAG,EAAE;QAClD,OAAO,KAAK;MACd;MAEA,IAAI4B,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACE,KAAK,KAAK,KAAK,EAAE;QAC7C;QACA;QACA;QACA;QACAF,MAAM,GAAG/B,MAAM,CAACkC,kBAAkB,CAChCH,MAAM,EACNZ,sBAAsB,CAACG,OACzB,CAAC;MACH;MAEA,IAAIS,MAAM,KAAK,IAAI,EAAE;QACnB,IAAIJ,KAAK,KAAKI,MAAM,EAAE;UACpB,MAAMI,WAAW,GAAGtC,mBAAmB,CACrCU,OAAO,EACPF,qBAAqB,EACrBsB,KAAK,CAACS,MAAM,EACZL,MAAM,CAACK,MAAM,EACbZ,MACF,CAAC;UAED,IAAIW,WAAW,EAAE;YACfrB,gBAAgB,CAACU,MAAM,EAAE,IAAI,CAAC;YAE9B,OAAO,IAAI;UACb;UAEA,IAAIvB,QAAQ,CAAC,CAAC,KAAK0B,KAAK,EAAE;YACxB;YACA;YACA;YACA,OAAOnB,QAAQ,CAACgB,MAAM,EAAE,IAAIE,GAAG,CAAS,CAAC,CAAC;UAC5C;UAEAZ,gBAAgB,CAACU,MAAM,EAAE,KAAK,CAAC;UAE/B,IAAIR,IAAI,EAAE;YACR,MAAMqB,MAAM,GAAG3C,uBAAuB,CACpCsB,IAAI,EACJe,MAAM,EACNJ,KAAK,EACLT,cACF,CAAC;YAEDmB,MAAM,GAAG,CAAC;UACZ;UAEAnC,QAAQ,CAAC6B,MAAM,CAAC;QAClB,CAAC,MAAM;UACLjB,gBAAgB,CAACU,MAAM,EAAE,IAAI,CAAC;QAChC;QAEA,IAAIb,kBAAkB,KAAK2B,SAAS,EAAE;UACpC;UACA;UACA,MAAMC,WAAW,GAAGvC,MAAM,CAACwC,uBAAuB,CAAChB,MAAM,CAAC;UAE1D,IAAIe,WAAW,IAAIpC,GAAG,KAAKmC,SAAS,EAAE;YACpC3B,kBAAkB,CAACR,GAAG,CAAC;UACzB;QACF;QAEA,OAAO,IAAI;MACb;IACF;IAEA,IAAIM,cAAc,KAAK6B,SAAS,EAAE;MAChC;MACA,IAAI7B,cAAc,CAACe,MAAM,EAAEC,iBAAiB,CAAC,EAAE;QAC7C,OAAO,IAAI;MACb;IACF;IAEA,IAAI,OAAOD,MAAM,CAACM,MAAM,KAAK,QAAQ,EAAE;MACrC;MACA,KAAK,IAAIW,CAAC,GAAGrC,eAAe,CAACsC,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACpD,MAAME,QAAQ,GAAGvC,eAAe,CAACqC,CAAC,CAAC;QAEnC,IAAIE,QAAQ,GAAGnB,MAAM,EAAEC,iBAAiB,CAAC,EAAE;UACzC,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC,EACD,CACErB,eAAe,EACfC,qBAAqB,EACrBa,cAAc,EACdX,OAAO,EACPQ,YAAY,EACZd,QAAQ,EACRE,GAAG,EACHM,cAAc,EACdK,gBAAgB,EAChBH,kBAAkB,EAClBX,MAAM,EACNE,QAAQ,EACRc,IAAI,CAER,CAAC;EAEDlB,kBAAkB,CAAC;IACjBG,QAAQ;IACRM,OAAO;IACPF;EACF,CAAC,CAAC;EAEFb,KAAK,CAAC6B,kBAAkB,CACtB,MAAMR,iBAAiB,GAAG,QAAQ,EAAEL,QAAQ,CAAC,EAC7C,CAACK,iBAAiB,EAAEL,QAAQ,CAC9B,CAAC;EAED,OAAOA,QAAQ;AACjB","ignoreList":[]}