@react-navigation/core 8.0.0-alpha.3 → 8.0.0-alpha.31

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 (285) hide show
  1. package/lib/module/BaseNavigationContainer.js +38 -19
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/ConsumedParamsContext.js +5 -0
  4. package/lib/module/ConsumedParamsContext.js.map +1 -0
  5. package/lib/module/DataLoading.js +127 -0
  6. package/lib/module/DataLoading.js.map +1 -0
  7. package/lib/module/NavigationBuilderContext.js +1 -0
  8. package/lib/module/NavigationBuilderContext.js.map +1 -1
  9. package/lib/module/NavigationIndependentTree.js +20 -8
  10. package/lib/module/NavigationIndependentTree.js.map +1 -1
  11. package/lib/module/NavigationProvider.js +22 -11
  12. package/lib/module/NavigationProvider.js.map +1 -1
  13. package/lib/module/NavigationStateContext.js +3 -0
  14. package/lib/module/NavigationStateContext.js.map +1 -1
  15. package/lib/module/PreventRemoveContext.js.map +1 -1
  16. package/lib/module/PreventRemoveProvider.js +37 -27
  17. package/lib/module/PreventRemoveProvider.js.map +1 -1
  18. package/lib/module/SceneView.js +10 -41
  19. package/lib/module/SceneView.js.map +1 -1
  20. package/lib/module/StaticNavigation.js +179 -50
  21. package/lib/module/StaticNavigation.js.map +1 -1
  22. package/lib/module/StaticTreeContext.js +5 -0
  23. package/lib/module/StaticTreeContext.js.map +1 -0
  24. package/lib/module/checkSerializable.js +18 -13
  25. package/lib/module/checkSerializable.js.map +1 -1
  26. package/lib/module/createNavigationContainerRef.js +6 -8
  27. package/lib/module/createNavigationContainerRef.js.map +1 -1
  28. package/lib/module/createNavigatorFactory.js +27 -5
  29. package/lib/module/createNavigatorFactory.js.map +1 -1
  30. package/lib/module/findFocusedRoute.js +7 -4
  31. package/lib/module/findFocusedRoute.js.map +1 -1
  32. package/lib/module/getActionFromState.js +45 -20
  33. package/lib/module/getActionFromState.js.map +1 -1
  34. package/lib/module/getPathFromState.js +171 -90
  35. package/lib/module/getPathFromState.js.map +1 -1
  36. package/lib/module/getPatternParts.js +20 -4
  37. package/lib/module/getPatternParts.js.map +1 -1
  38. package/lib/module/getStateFromPath.js +487 -217
  39. package/lib/module/getStateFromPath.js.map +1 -1
  40. package/lib/module/getStateFromRouteParams.js +23 -0
  41. package/lib/module/getStateFromRouteParams.js.map +1 -0
  42. package/lib/module/index.js +5 -4
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/theming/useTheme.js +1 -1
  45. package/lib/module/theming/useTheme.js.map +1 -1
  46. package/lib/module/types.js +35 -0
  47. package/lib/module/types.js.map +1 -1
  48. package/lib/module/useDescriptors.js +21 -11
  49. package/lib/module/useDescriptors.js.map +1 -1
  50. package/lib/module/useEventEmitter.js +48 -33
  51. package/lib/module/useEventEmitter.js.map +1 -1
  52. package/lib/module/useFocusEvents.js +12 -4
  53. package/lib/module/useFocusEvents.js.map +1 -1
  54. package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
  55. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  56. package/lib/module/useIsFocused.js +7 -12
  57. package/lib/module/useIsFocused.js.map +1 -1
  58. package/lib/module/useKeyedChildListeners.js +4 -2
  59. package/lib/module/useKeyedChildListeners.js.map +1 -1
  60. package/lib/module/useLazyValue.js.map +1 -1
  61. package/lib/module/useNavigation.js +2 -15
  62. package/lib/module/useNavigation.js.map +1 -1
  63. package/lib/module/useNavigationBuilder.js +204 -131
  64. package/lib/module/useNavigationBuilder.js.map +1 -1
  65. package/lib/module/useNavigationCache.js +22 -17
  66. package/lib/module/useNavigationCache.js.map +1 -1
  67. package/lib/module/useNavigationHelpers.js +28 -10
  68. package/lib/module/useNavigationHelpers.js.map +1 -1
  69. package/lib/module/useNavigationIndependentTree.js +1 -1
  70. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  71. package/lib/module/useNavigationState.js +125 -45
  72. package/lib/module/useNavigationState.js.map +1 -1
  73. package/lib/module/useOnAction.js +37 -7
  74. package/lib/module/useOnAction.js.map +1 -1
  75. package/lib/module/useOnGetState.js +6 -3
  76. package/lib/module/useOnGetState.js.map +1 -1
  77. package/lib/module/useOnPreventRemove.js +39 -30
  78. package/lib/module/useOnPreventRemove.js.map +1 -1
  79. package/lib/module/useOnRouteFocus.js +1 -1
  80. package/lib/module/useOnRouteFocus.js.map +1 -1
  81. package/lib/module/useOptionsGetters.js +10 -5
  82. package/lib/module/useOptionsGetters.js.map +1 -1
  83. package/lib/module/usePreventRemove.js +10 -3
  84. package/lib/module/usePreventRemove.js.map +1 -1
  85. package/lib/module/usePreventRemoveContext.js +1 -1
  86. package/lib/module/usePreventRemoveContext.js.map +1 -1
  87. package/lib/module/useRegisterNavigator.js +2 -2
  88. package/lib/module/useRegisterNavigator.js.map +1 -1
  89. package/lib/module/useRoute.js +2 -0
  90. package/lib/module/useRoute.js.map +1 -1
  91. package/lib/module/useRouteCache.js +17 -11
  92. package/lib/module/useRouteCache.js.map +1 -1
  93. package/lib/module/useScheduleUpdate.js +9 -9
  94. package/lib/module/useScheduleUpdate.js.map +1 -1
  95. package/lib/module/useStateForPath.js +1 -1
  96. package/lib/module/useStateForPath.js.map +1 -1
  97. package/lib/module/useSyncState.js +32 -9
  98. package/lib/module/useSyncState.js.map +1 -1
  99. package/lib/module/validatePathConfig.js +50 -36
  100. package/lib/module/validatePathConfig.js.map +1 -1
  101. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  102. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  103. package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
  104. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  105. package/lib/typescript/src/DataLoading.d.ts +21 -0
  106. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  107. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  108. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  109. package/lib/typescript/src/Group.d.ts +1 -1
  110. package/lib/typescript/src/Group.d.ts.map +1 -1
  111. package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -8
  112. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  113. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  114. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  115. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  116. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  117. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  118. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  119. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  120. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  121. package/lib/typescript/src/NavigationProvider.d.ts +12 -13
  122. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  123. package/lib/typescript/src/NavigationStateContext.d.ts +4 -3
  124. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  125. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  126. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  127. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  128. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  129. package/lib/typescript/src/SceneView.d.ts +4 -2
  130. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  131. package/lib/typescript/src/Screen.d.ts +1 -1
  132. package/lib/typescript/src/Screen.d.ts.map +1 -1
  133. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  134. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  135. package/lib/typescript/src/StaticNavigation.d.ts +189 -109
  136. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  137. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  138. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  139. package/lib/typescript/src/checkSerializable.d.ts +8 -4
  140. package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
  141. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  142. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  143. package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
  144. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  145. package/lib/typescript/src/findFocusedRoute.d.ts +3 -8
  146. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  147. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  148. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  149. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  150. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  151. package/lib/typescript/src/getPatternParts.d.ts +1 -0
  152. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  153. package/lib/typescript/src/getStateFromPath.d.ts +4 -7
  154. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  155. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  156. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  157. package/lib/typescript/src/index.d.ts +36 -33
  158. package/lib/typescript/src/index.d.ts.map +1 -1
  159. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  160. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  161. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  162. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  163. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  164. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  165. package/lib/typescript/src/types.d.ts +260 -159
  166. package/lib/typescript/src/types.d.ts.map +1 -1
  167. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  168. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  169. package/lib/typescript/src/useComponent.d.ts +1 -1
  170. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  171. package/lib/typescript/src/useDescriptors.d.ts +10 -9
  172. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  173. package/lib/typescript/src/useEventEmitter.d.ts +2 -2
  174. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  175. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  176. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  177. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  178. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  179. package/lib/typescript/src/useIsFocused.d.ts +3 -0
  180. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  181. package/lib/typescript/src/useKeyedChildListeners.d.ts +3 -3
  182. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  183. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  184. package/lib/typescript/src/useNavigation.d.ts +4 -2
  185. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  186. package/lib/typescript/src/useNavigationBuilder.d.ts +23 -30
  187. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  188. package/lib/typescript/src/useNavigationCache.d.ts +3 -3
  189. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  190. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  191. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  192. package/lib/typescript/src/useNavigationHelpers.d.ts +19 -27
  193. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  194. package/lib/typescript/src/useNavigationState.d.ts +17 -3
  195. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  196. package/lib/typescript/src/useOnAction.d.ts +9 -9
  197. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  198. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  199. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  200. package/lib/typescript/src/useOnPreventRemove.d.ts +5 -9
  201. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  202. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  203. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  204. package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
  205. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  206. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  207. package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
  208. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  209. package/lib/typescript/src/useRoute.d.ts +7 -3
  210. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  211. package/lib/typescript/src/useRouteCache.d.ts +5 -5
  212. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  213. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  214. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  215. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  216. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  217. package/lib/typescript/src/useSyncState.d.ts +1 -0
  218. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  219. package/lib/typescript/src/utilities.d.ts +74 -37
  220. package/lib/typescript/src/utilities.d.ts.map +1 -1
  221. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  222. package/package.json +23 -22
  223. package/src/BaseNavigationContainer.tsx +362 -334
  224. package/src/ConsumedParamsContext.tsx +5 -0
  225. package/src/DataLoading.tsx +203 -0
  226. package/src/NavigationBuilderContext.tsx +14 -9
  227. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  228. package/src/NavigationIndependentTree.tsx +23 -12
  229. package/src/NavigationProvider.tsx +26 -15
  230. package/src/NavigationStateContext.tsx +9 -6
  231. package/src/PreventRemoveContext.tsx +1 -0
  232. package/src/PreventRemoveProvider.tsx +51 -46
  233. package/src/SceneView.tsx +11 -39
  234. package/src/StaticNavigation.tsx +659 -307
  235. package/src/StaticTreeContext.tsx +7 -0
  236. package/src/checkSerializable.tsx +35 -19
  237. package/src/createNavigationContainerRef.tsx +12 -9
  238. package/src/createNavigatorFactory.tsx +92 -8
  239. package/src/findFocusedRoute.tsx +16 -16
  240. package/src/getActionFromState.tsx +87 -51
  241. package/src/getPathFromState.tsx +254 -128
  242. package/src/getPatternParts.tsx +25 -4
  243. package/src/getStateFromPath.tsx +821 -331
  244. package/src/getStateFromRouteParams.tsx +59 -0
  245. package/src/index.tsx +55 -5
  246. package/src/theming/useTheme.tsx +1 -1
  247. package/src/types.tsx +798 -373
  248. package/src/useDescriptors.tsx +31 -14
  249. package/src/useEventEmitter.tsx +52 -38
  250. package/src/useFocusEvents.tsx +15 -7
  251. package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
  252. package/src/useIsFocused.tsx +14 -21
  253. package/src/useKeyedChildListeners.tsx +4 -2
  254. package/src/useLazyValue.tsx +2 -2
  255. package/src/useNavigation.tsx +7 -24
  256. package/src/useNavigationBuilder.tsx +314 -186
  257. package/src/useNavigationCache.tsx +32 -25
  258. package/src/useNavigationHelpers.tsx +27 -10
  259. package/src/useNavigationIndependentTree.tsx +1 -1
  260. package/src/useNavigationState.tsx +168 -69
  261. package/src/useOnAction.tsx +61 -13
  262. package/src/useOnGetState.tsx +5 -3
  263. package/src/useOnPreventRemove.tsx +75 -42
  264. package/src/useOnRouteFocus.tsx +10 -12
  265. package/src/useOptionsGetters.tsx +11 -5
  266. package/src/usePreventRemove.tsx +12 -3
  267. package/src/usePreventRemoveContext.tsx +1 -1
  268. package/src/useRegisterNavigator.tsx +2 -2
  269. package/src/useRoute.tsx +20 -6
  270. package/src/useRouteCache.tsx +22 -16
  271. package/src/useScheduleUpdate.tsx +9 -10
  272. package/src/useStateForPath.tsx +1 -1
  273. package/src/useSyncState.tsx +35 -9
  274. package/src/utilities.tsx +144 -31
  275. package/src/validatePathConfig.tsx +86 -57
  276. package/lib/module/CurrentRenderContext.js +0 -10
  277. package/lib/module/CurrentRenderContext.js.map +0 -1
  278. package/lib/module/useCurrentRender.js +0 -19
  279. package/lib/module/useCurrentRender.js.map +0 -1
  280. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  281. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  282. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  283. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  284. package/src/CurrentRenderContext.tsx +0 -9
  285. package/src/useCurrentRender.tsx +0 -31
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import useLatestCallback from 'use-latest-callback';
6
6
  import { checkDuplicateRouteNames } from "./checkDuplicateRouteNames.js";
7
7
  import { checkSerializable } from "./checkSerializable.js";
8
+ import { ConsumedParamsContext } from "./ConsumedParamsContext.js";
8
9
  import { NOT_INITIALIZED_ERROR } from "./createNavigationContainerRef.js";
9
10
  import { EnsureSingleNavigator } from "./EnsureSingleNavigator.js";
10
11
  import { findFocusedRoute } from "./findFocusedRoute.js";
@@ -17,13 +18,13 @@ import { UnhandledActionContext } from "./UnhandledActionContext.js";
17
18
  import { useChildListeners } from "./useChildListeners.js";
18
19
  import { useEventEmitter } from "./useEventEmitter.js";
19
20
  import { useKeyedChildListeners } from "./useKeyedChildListeners.js";
21
+ import { useLazyValue } from "./useLazyValue.js";
20
22
  import { useNavigationIndependentTree } from "./useNavigationIndependentTree.js";
21
23
  import { useOptionsGetters } from "./useOptionsGetters.js";
22
24
  import { useSyncState } from "./useSyncState.js";
23
25
  import { jsx as _jsx } from "react/jsx-runtime";
24
26
  const serializableWarnings = [];
25
27
  const duplicateNameWarnings = [];
26
-
27
28
  /**
28
29
  * Remove `key` and `routeNames` from the state objects recursively to get partial state.
29
30
  *
@@ -67,15 +68,16 @@ const getPartialState = state => {
67
68
  * @param props.children Child elements to render the content.
68
69
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
69
70
  */
70
- export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer({
71
+ export function BaseNavigationContainer({
71
72
  initialState,
72
73
  onStateChange,
73
74
  onReady,
74
75
  onUnhandledAction,
75
76
  theme,
76
- children
77
- }, ref) {
78
- const parent = React.useContext(NavigationStateContext);
77
+ children,
78
+ ref
79
+ }) {
80
+ const parent = React.use(NavigationStateContext);
79
81
  const independent = useNavigationIndependentTree();
80
82
  if (!parent.isDefault && !independent) {
81
83
  throw new Error("Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, wrap the container in 'NavigationIndependentTree' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.");
@@ -84,9 +86,11 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
84
86
  state,
85
87
  getState,
86
88
  setState,
89
+ subscribe,
87
90
  scheduleUpdate,
88
91
  flushUpdates
89
92
  } = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));
93
+ const consumedParams = useLazyValue(() => new WeakMap());
90
94
  const isFirstMountRef = React.useRef(true);
91
95
  const navigatorKeyRef = React.useRef(undefined);
92
96
  const getKey = React.useCallback(() => navigatorKeyRef.current, []);
@@ -102,10 +106,13 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
102
106
  addKeyedListener
103
107
  } = useKeyedChildListeners();
104
108
  const dispatch = useLatestCallback(action => {
105
- if (listeners.focus[0] == null) {
109
+ const listener = listeners.focus[0];
110
+ if (listener == null) {
106
111
  console.error(NOT_INITIALIZED_ERROR);
107
112
  } else {
108
- listeners.focus[0](navigation => navigation.dispatch(action));
113
+ listener(navigation => React.startTransition(() => {
114
+ navigation.dispatch(action);
115
+ }));
109
116
  }
110
117
  });
111
118
  const canGoBack = useLatestCallback(() => {
@@ -123,11 +130,12 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
123
130
  }
124
131
  });
125
132
  const resetRoot = useLatestCallback(state => {
126
- const target = state?.key ?? keyedListeners.getState.root?.().key;
127
- if (target == null) {
133
+ const target = keyedListeners.getState.root?.().key;
134
+ const listener = listeners.focus[0];
135
+ if (target == null || listener == null) {
128
136
  console.error(NOT_INITIALIZED_ERROR);
129
137
  } else {
130
- listeners.focus[0](navigation => navigation.dispatch({
138
+ listener(navigation => navigation.dispatch({
131
139
  ...CommonActions.reset(state),
132
140
  target
133
141
  }));
@@ -203,27 +211,31 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
203
211
  });
204
212
  });
205
213
  const stackRef = React.useRef(undefined);
214
+ const lastEmittedStateRef = React.useRef(undefined);
215
+ const getIsStateEmitted = useLatestCallback(() => !isFirstMountRef.current && lastEmittedStateRef.current === getState());
206
216
  const builderContext = React.useMemo(() => ({
207
217
  addListener,
208
218
  addKeyedListener,
209
219
  onDispatchAction,
210
220
  onEmitEvent,
211
221
  onOptionsChange,
222
+ getIsStateEmitted,
212
223
  scheduleUpdate,
213
224
  flushUpdates,
214
225
  stackRef
215
- }), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, scheduleUpdate, flushUpdates]);
226
+ }), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, getIsStateEmitted, scheduleUpdate, flushUpdates]);
216
227
  const isInitialRef = React.useRef(true);
217
228
  const getIsInitial = React.useCallback(() => isInitialRef.current, []);
218
229
  const context = React.useMemo(() => ({
219
230
  state,
220
231
  getState,
221
232
  setState,
233
+ subscribe,
222
234
  getKey,
223
235
  setKey,
224
236
  getIsInitial,
225
237
  addOptionsGetter
226
- }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);
238
+ }), [state, getState, setState, subscribe, getKey, setKey, getIsInitial, addOptionsGetter]);
227
239
  const onReadyRef = React.useRef(onReady);
228
240
  const onStateChangeRef = React.useRef(onStateChange);
229
241
  React.useEffect(() => {
@@ -257,6 +269,9 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
257
269
  for (let i = 0; i < location.length; i++) {
258
270
  const curr = location[i];
259
271
  const prev = location[i - 1];
272
+ if (curr == null) {
273
+ continue;
274
+ }
260
275
  pointer = pointer[curr];
261
276
  if (!params && curr === 'state') {
262
277
  continue;
@@ -295,6 +310,7 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
295
310
  }
296
311
  }
297
312
  }
313
+ lastEmittedStateRef.current = state;
298
314
  emitter.emit({
299
315
  type: 'state',
300
316
  data: {
@@ -347,12 +363,15 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
347
363
  value: builderContext,
348
364
  children: /*#__PURE__*/_jsx(NavigationStateContext.Provider, {
349
365
  value: context,
350
- children: /*#__PURE__*/_jsx(UnhandledActionContext.Provider, {
351
- value: onUnhandledAction ?? defaultOnUnhandledAction,
352
- children: /*#__PURE__*/_jsx(EnsureSingleNavigator, {
353
- children: /*#__PURE__*/_jsx(ThemeProvider, {
354
- value: theme,
355
- children: children
366
+ children: /*#__PURE__*/_jsx(ConsumedParamsContext.Provider, {
367
+ value: consumedParams,
368
+ children: /*#__PURE__*/_jsx(UnhandledActionContext.Provider, {
369
+ value: onUnhandledAction ?? defaultOnUnhandledAction,
370
+ children: /*#__PURE__*/_jsx(EnsureSingleNavigator, {
371
+ children: /*#__PURE__*/_jsx(ThemeProvider, {
372
+ value: theme,
373
+ children: children
374
+ })
356
375
  })
357
376
  })
358
377
  })
@@ -360,5 +379,5 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
360
379
  })
361
380
  })
362
381
  });
363
- });
382
+ }
364
383
  //# sourceMappingURL=BaseNavigationContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationIndependentTreeContext","NavigationStateContext","ThemeProvider","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useNavigationIndependentTree","useOptionsGetters","useSyncState","jsx","_jsx","serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","forwardRef","initialState","onStateChange","onReady","onUnhandledAction","theme","children","ref","parent","useContext","independent","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","navigation","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","isReady","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","args","create","isFocused","getParent","setOptions","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","onEmitEvent","event","lastEmittedOptionsRef","onOptionsChange","options","builderContext","isInitialRef","getIsInitial","context","onReadyRef","onStateChangeRef","useEffect","onReadyCalledRef","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","Provider","value"],"sourceRoot":"../../src","sources":["BaseNavigationContainer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","React","useLatestCallback","checkDuplicateRouteNames","checkSerializable","ConsumedParamsContext","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationIndependentTreeContext","NavigationStateContext","ThemeProvider","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useLazyValue","useNavigationIndependentTree","useOptionsGetters","useSyncState","jsx","_jsx","serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","initialState","onStateChange","onReady","onUnhandledAction","theme","children","ref","parent","use","independent","isDefault","Error","getState","setState","subscribe","scheduleUpdate","flushUpdates","consumedParams","WeakMap","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","listener","focus","console","error","navigation","startTransition","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","isReady","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","args","create","isFocused","getParent","setOptions","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","onEmitEvent","event","lastEmittedOptionsRef","onOptionsChange","options","lastEmittedStateRef","getIsStateEmitted","builderContext","isInitialRef","getIsInitial","context","onReadyRef","onStateChangeRef","useEffect","onReadyCalledRef","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","Provider","value"],"sourceRoot":"../../src","sources":["BaseNavigationContainer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ export const ConsumedParamsContext = /*#__PURE__*/React.createContext(undefined);
5
+ //# sourceMappingURL=ConsumedParamsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ConsumedParamsContext","createContext","undefined"],"sourceRoot":"../../src","sources":["ConsumedParamsContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,MAAMC,qBAAqB,gBAAGD,KAAK,CAACE,aAAa,CAEtDC,SAAS,CAAC","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ import { getStateFromRouteParams } from "./getStateFromRouteParams.js";
4
+ function findScreenInConfig(config, name) {
5
+ const screens = config.screens;
6
+ if (screens?.[name] != null) {
7
+ return screens[name];
8
+ }
9
+ if (config.groups) {
10
+ for (const group of Object.values(config.groups)) {
11
+ if (group.screens[name] != null) {
12
+ return group.screens[name];
13
+ }
14
+ }
15
+ }
16
+ return undefined;
17
+ }
18
+ function findInitialRouteName(config) {
19
+ if (config.initialRouteName != null) {
20
+ return config.initialRouteName;
21
+ }
22
+ for (const key in config) {
23
+ if (key === 'screens' && config.screens) {
24
+ const name = Object.keys(config.screens)[0];
25
+ if (name != null) {
26
+ return name;
27
+ }
28
+ }
29
+ if (key === 'groups' && config.groups) {
30
+ for (const group of Object.values(config.groups)) {
31
+ const name = Object.keys(group.screens)[0];
32
+ if (name != null) {
33
+ return name;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+
41
+ /**
42
+ * Get loader for the focused route in a static config tree with given navigation state.
43
+ *
44
+ * @param tree The static navigation config.
45
+ * @param state The navigation state to extract the focused route path from.
46
+ * @returns A function that returns a `Promise<void>`, or `undefined` if no loaders are found.
47
+ *
48
+ * @example
49
+ * ```js
50
+ * const loader = getLoaderForState(RootStack, {
51
+ * index: 0,
52
+ * routes: [{ name: 'Home' }],
53
+ * });
54
+ * await loader?.();
55
+ * ```
56
+ */
57
+ export function getLoaderForState(tree, state) {
58
+ return getLoaderForStateChange(tree, state, undefined, undefined);
59
+ }
60
+ export function getLoaderForStateChange(tree, state, previousState, consumedParams) {
61
+ const focusedRoute = state?.routes[state.index ?? state.routes.length - 1];
62
+ const previousFocusedRoute = previousState?.routes[previousState.index ?? previousState.routes.length - 1];
63
+ if (!focusedRoute) {
64
+ return undefined;
65
+ }
66
+ const isNewlyFocused = previousState === undefined || previousFocusedRoute == null || focusedRoute.name !== previousFocusedRoute.name || focusedRoute.key != null && previousFocusedRoute.key != null && focusedRoute.key !== previousFocusedRoute.key;
67
+ const item = findScreenInConfig(tree.config, focusedRoute.name);
68
+ if (item == null) {
69
+ return undefined;
70
+ }
71
+ const initialParams = typeof item === 'object' && 'initialParams' in item ? item.initialParams : undefined;
72
+ const params = initialParams != null || focusedRoute.params != null ? {
73
+ ...initialParams,
74
+ ...focusedRoute.params
75
+ } : undefined;
76
+ const loaders = [];
77
+ if (isNewlyFocused && 'UNSTABLE_loader' in item && typeof item.UNSTABLE_loader === 'function') {
78
+ const loader = item.UNSTABLE_loader;
79
+ loaders.push(() => loader({
80
+ name: focusedRoute.name,
81
+ params
82
+ }));
83
+ }
84
+ const nested = 'config' in item ? item : 'screen' in item && 'config' in item.screen ? item.screen : undefined;
85
+ if (nested) {
86
+ const initialRouteName = findInitialRouteName(nested.config);
87
+ const stateFromParams = focusedRoute.params != null && consumedParams?.has(focusedRoute.params) ? undefined : getStateFromRouteParams(params);
88
+ let childState = previousState !== undefined && stateFromParams != null ? stateFromParams : focusedRoute.state ?? stateFromParams;
89
+ if (childState == null && initialRouteName != null) {
90
+ childState = {
91
+ routes: [{
92
+ name: initialRouteName
93
+ }]
94
+ };
95
+ }
96
+ let previousChildState;
97
+ if (!isNewlyFocused) {
98
+ const previousRouteParams = previousFocusedRoute?.params;
99
+ const previousParams = initialParams != null || previousRouteParams != null ? {
100
+ ...initialParams,
101
+ ...previousRouteParams
102
+ } : undefined;
103
+ const previousStateFromParams = previousRouteParams != null && consumedParams?.has(previousRouteParams) ? undefined : getStateFromRouteParams(previousParams);
104
+ previousChildState = previousFocusedRoute?.state ?? previousStateFromParams;
105
+ if (previousChildState == null && initialRouteName != null) {
106
+ previousChildState = {
107
+ routes: [{
108
+ name: initialRouteName
109
+ }]
110
+ };
111
+ }
112
+ }
113
+ const childLoader = getLoaderForStateChange(nested, childState, previousState === undefined ? undefined : previousChildState ?? {
114
+ routes: []
115
+ }, consumedParams);
116
+ if (childLoader) {
117
+ loaders.push(childLoader);
118
+ }
119
+ }
120
+ if (loaders.length === 0) {
121
+ return undefined;
122
+ }
123
+ return async () => {
124
+ await Promise.all(loaders.map(l => l()));
125
+ };
126
+ }
127
+ //# sourceMappingURL=DataLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getStateFromRouteParams","findScreenInConfig","config","name","screens","groups","group","Object","values","undefined","findInitialRouteName","initialRouteName","key","keys","getLoaderForState","tree","state","getLoaderForStateChange","previousState","consumedParams","focusedRoute","routes","index","length","previousFocusedRoute","isNewlyFocused","item","initialParams","params","loaders","UNSTABLE_loader","loader","push","nested","screen","stateFromParams","has","childState","previousChildState","previousRouteParams","previousParams","previousStateFromParams","childLoader","Promise","all","map","l"],"sourceRoot":"../../src","sources":["DataLoading.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ export const NavigationBuilderContext = /*#__PURE__*/React.createContext({
8
8
  onDispatchAction: () => undefined,
9
9
  onEmitEvent: () => undefined,
10
10
  onOptionsChange: () => undefined,
11
+ getIsStateEmitted: () => false,
11
12
  scheduleUpdate: () => {
12
13
  throw new Error("Couldn't find a context for scheduling updates.");
13
14
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AA6C9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAmBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","getIsStateEmitted","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAgD9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAmBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,iBAAiB,EAAEA,CAAA,KAAM,KAAK;EAC9BC,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
+ import { NavigationFocusedRouteStateContext } from "./NavigationFocusedRouteStateContext.js";
4
5
  import { NavigationIndependentTreeContext } from "./NavigationIndependentTreeContext.js";
5
- import { NamedRouteContextListContext, NavigationContext, NavigationRouteContext, NavigationRouteNameContext } from "./NavigationProvider.js";
6
+ import { NamedRouteContextListContext, NavigationContext, NavigationRouteContext } from "./NavigationProvider.js";
7
+ import { IsFocusedContext } from "./useIsFocused.js";
8
+ import { NamedNavigationStateListenerListContext, NavigationStateListenerContext } from "./useNavigationState.js";
6
9
 
7
10
  /**
8
11
  * Component to make the child navigation container independent of parent containers.
@@ -14,17 +17,26 @@ export function NavigationIndependentTree({
14
17
  return (
15
18
  /*#__PURE__*/
16
19
  // We need to clear any existing contexts for nested independent container to work correctly
17
- _jsx(NamedRouteContextListContext.Provider, {
20
+ _jsx(NavigationStateListenerContext.Provider, {
18
21
  value: undefined,
19
- children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
22
+ children: /*#__PURE__*/_jsx(NamedNavigationStateListenerListContext.Provider, {
20
23
  value: undefined,
21
- children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
24
+ children: /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
22
25
  value: undefined,
23
- children: /*#__PURE__*/_jsx(NavigationRouteNameContext.Provider, {
26
+ children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
24
27
  value: undefined,
25
- children: /*#__PURE__*/_jsx(NavigationIndependentTreeContext.Provider, {
26
- value: true,
27
- children: children
28
+ children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
29
+ value: undefined,
30
+ children: /*#__PURE__*/_jsx(NavigationFocusedRouteStateContext.Provider, {
31
+ value: undefined,
32
+ children: /*#__PURE__*/_jsx(IsFocusedContext.Provider, {
33
+ value: undefined,
34
+ children: /*#__PURE__*/_jsx(NavigationIndependentTreeContext.Provider, {
35
+ value: true,
36
+ children: children
37
+ })
38
+ })
39
+ })
28
40
  })
29
41
  })
30
42
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationIndependentTreeContext","NamedRouteContextListContext","NavigationContext","NavigationRouteContext","NavigationRouteNameContext","jsx","_jsx","NavigationIndependentTree","children","Provider","value","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gCAAgC,QAAQ,uCAAoC;AACrF,SACEC,4BAA4B,EAC5BC,iBAAiB,EACjBC,sBAAsB,EACtBC,0BAA0B,QACrB,yBAAsB;;AAE7B;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,SAASC,yBAAyBA,CAAC;EACxCC;AAGF,CAAC,EAAE;EACD;IAAA;IACE;IACAF,IAAA,CAACL,4BAA4B,CAACQ,QAAQ;MAACC,KAAK,EAAEC,SAAU;MAAAH,QAAA,eACtDF,IAAA,CAACH,sBAAsB,CAACM,QAAQ;QAACC,KAAK,EAAEC,SAAU;QAAAH,QAAA,eAChDF,IAAA,CAACJ,iBAAiB,CAACO,QAAQ;UAACC,KAAK,EAAEC,SAAU;UAAAH,QAAA,eAC3CF,IAAA,CAACF,0BAA0B,CAACK,QAAQ;YAACC,KAAK,EAAEC,SAAU;YAAAH,QAAA,eACpDF,IAAA,CAACN,gCAAgC,CAACS,QAAQ;cAACC,KAAK,EAAE,IAAK;cAAAF,QAAA,EACpDA;YAAQ,CACgC;UAAC,CACT;QAAC,CACZ;MAAC,CACE;IAAC,CACG;EAAC;AAE5C","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationFocusedRouteStateContext","NavigationIndependentTreeContext","NamedRouteContextListContext","NavigationContext","NavigationRouteContext","IsFocusedContext","NamedNavigationStateListenerListContext","NavigationStateListenerContext","jsx","_jsx","NavigationIndependentTree","children","Provider","value","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,kCAAkC,QAAQ,yCAAsC;AACzF,SAASC,gCAAgC,QAAQ,uCAAoC;AACrF,SACEC,4BAA4B,EAC5BC,iBAAiB,EACjBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,gBAAgB,QAAQ,mBAAgB;AACjD,SACEC,uCAAuC,EACvCC,8BAA8B,QACzB,yBAAsB;;AAE7B;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,SAASC,yBAAyBA,CAAC;EACxCC;AAGF,CAAC,EAAE;EACD;IAAA;IACE;IACAF,IAAA,CAACF,8BAA8B,CAACK,QAAQ;MAACC,KAAK,EAAEC,SAAU;MAAAH,QAAA,eACxDF,IAAA,CAACH,uCAAuC,CAACM,QAAQ;QAACC,KAAK,EAAEC,SAAU;QAAAH,QAAA,eACjEF,IAAA,CAACP,4BAA4B,CAACU,QAAQ;UAACC,KAAK,EAAEC,SAAU;UAAAH,QAAA,eACtDF,IAAA,CAACL,sBAAsB,CAACQ,QAAQ;YAACC,KAAK,EAAEC,SAAU;YAAAH,QAAA,eAChDF,IAAA,CAACN,iBAAiB,CAACS,QAAQ;cAACC,KAAK,EAAEC,SAAU;cAAAH,QAAA,eAC3CF,IAAA,CAACT,kCAAkC,CAACY,QAAQ;gBAACC,KAAK,EAAEC,SAAU;gBAAAH,QAAA,eAC5DF,IAAA,CAACJ,gBAAgB,CAACO,QAAQ;kBAACC,KAAK,EAAEC,SAAU;kBAAAH,QAAA,eAC1CF,IAAA,CAACR,gCAAgC,CAACW,QAAQ;oBAACC,KAAK,EAAE,IAAK;oBAAAF,QAAA,EACpDA;kBAAQ,CACgC;gBAAC,CACnB;cAAC,CACe;YAAC,CACpB;UAAC,CACE;QAAC,CACG;MAAC,CACQ;IAAC,CACZ;EAAC;AAE9C","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
+ import { FocusedRouteKeyContext, IsFocusedContext } from "./useIsFocused.js";
4
5
  import { useLazyValue } from "./useLazyValue.js";
6
+ import { NamedNavigationStateListenerProvider } from "./useNavigationState.js";
5
7
 
6
8
  /**
7
9
  * Context which holds the route prop for a screen.
@@ -13,7 +15,6 @@ export const NavigationRouteContext = /*#__PURE__*/React.createContext(undefined
13
15
  * Context which holds the navigation prop for a screen.
14
16
  */
15
17
  export const NavigationContext = /*#__PURE__*/React.createContext(undefined);
16
- export const NavigationRouteNameContext = /*#__PURE__*/React.createContext(undefined);
17
18
  /**
18
19
  * Component to provide the navigation and route contexts to its children.
19
20
  */
@@ -29,17 +30,27 @@ export function NavigationProvider({
29
30
  ...parents,
30
31
  [route.name]: NamedRouteContext
31
32
  }), [NamedRouteContext, parents, route.name]);
32
- return /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
33
- value: NamedRouteContextList,
34
- children: /*#__PURE__*/_jsx(NamedRouteContext.Provider, {
35
- value: route,
36
- children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
33
+ const parentIsFocused = React.use(IsFocusedContext);
34
+ const focusedRouteKey = React.use(FocusedRouteKeyContext);
35
+
36
+ // Mark route as focused only if:
37
+ // - It doesn't have a parent navigator
38
+ // - Parent navigator is focused
39
+ const isFocused = parentIsFocused == null || parentIsFocused ? focusedRouteKey === route.key : false;
40
+ return /*#__PURE__*/_jsx(NamedNavigationStateListenerProvider, {
41
+ name: route.name,
42
+ children: /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
43
+ value: NamedRouteContextList,
44
+ children: /*#__PURE__*/_jsx(NamedRouteContext.Provider, {
37
45
  value: route,
38
- children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
39
- value: navigation,
40
- children: /*#__PURE__*/_jsx(NavigationRouteNameContext.Provider, {
41
- value: route.name,
42
- children: children
46
+ children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
47
+ value: route,
48
+ children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
49
+ value: navigation,
50
+ children: /*#__PURE__*/_jsx(IsFocusedContext.Provider, {
51
+ value: isFocused,
52
+ children: children
53
+ })
43
54
  })
44
55
  })
45
56
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLazyValue","jsx","_jsx","NavigationRouteContext","createContext","undefined","NavigationContext","NavigationRouteNameContext","NamedRouteContextListContext","NavigationProvider","route","navigation","children","NamedRouteContext","parents","use","NamedRouteContextList","useMemo","name","Provider","value"],"sourceRoot":"../../src","sources":["NavigationProvider.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,YAAY,QAAQ,mBAAgB;;AAE7C;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,sBAAsB,gBAAGJ,KAAK,CAACK,aAAa,CAEvDC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,gBAAGP,KAAK,CAACK,aAAa,CAElDC,SAAS,CAAC;AAEZ,OAAO,MAAME,0BAA0B,gBAAGR,KAAK,CAACK,aAAa,CAE3DC,SAAS,CAAC;AAQZ;AACA;AACA;AACA,OAAO,MAAMG,4BAA4B,gBAAGT,KAAK,CAACK,aAAa,CAE7DC,SAAS,CAAC;AAEZ,OAAO,SAASI,kBAAkBA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgB,CAAC,EAAE;EACzE,MAAMC,iBAAiB,GAAGb,YAAY,CAAC,mBAAMD,KAAK,CAACK,aAAa,CAACM,KAAK,CAAC,CAAC;EAExE,MAAMI,OAAO,GAAGf,KAAK,CAACgB,GAAG,CAACP,4BAA4B,CAAC;EAEvD,MAAMQ,qBAAqB,GAAGjB,KAAK,CAACkB,OAAO,CACzC,OAAO;IACL,GAAGH,OAAO;IACV,CAACJ,KAAK,CAACQ,IAAI,GAAGL;EAChB,CAAC,CAAC,EACF,CAACA,iBAAiB,EAAEC,OAAO,EAAEJ,KAAK,CAACQ,IAAI,CACzC,CAAC;EAED,oBACEhB,IAAA,CAACM,4BAA4B,CAACW,QAAQ;IAACC,KAAK,EAAEJ,qBAAsB;IAAAJ,QAAA,eAClEV,IAAA,CAACW,iBAAiB,CAACM,QAAQ;MAACC,KAAK,EAAEV,KAAM;MAAAE,QAAA,eACvCV,IAAA,CAACC,sBAAsB,CAACgB,QAAQ;QAACC,KAAK,EAAEV,KAAM;QAAAE,QAAA,eAC5CV,IAAA,CAACI,iBAAiB,CAACa,QAAQ;UAACC,KAAK,EAAET,UAAW;UAAAC,QAAA,eAC5CV,IAAA,CAACK,0BAA0B,CAACY,QAAQ;YAACC,KAAK,EAAEV,KAAK,CAACQ,IAAK;YAAAN,QAAA,EACpDA;UAAQ,CAC0B;QAAC,CACZ;MAAC,CACE;IAAC,CACR;EAAC,CACQ,CAAC;AAE5C","ignoreList":[]}
1
+ {"version":3,"names":["React","FocusedRouteKeyContext","IsFocusedContext","useLazyValue","NamedNavigationStateListenerProvider","jsx","_jsx","NavigationRouteContext","createContext","undefined","NavigationContext","NamedRouteContextListContext","NavigationProvider","route","navigation","children","NamedRouteContext","parents","use","NamedRouteContextList","useMemo","name","parentIsFocused","focusedRouteKey","isFocused","key","Provider","value"],"sourceRoot":"../../src","sources":["NavigationProvider.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,sBAAsB,EAAEC,gBAAgB,QAAQ,mBAAgB;AACzE,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,oCAAoC,QAAQ,yBAAsB;;AAE3E;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,sBAAsB,gBAAGP,KAAK,CAACQ,aAAa,CAEvDC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,gBAAGV,KAAK,CAACQ,aAAa,CAElDC,SAAS,CAAC;AAQZ;AACA;AACA;AACA,OAAO,MAAME,4BAA4B,gBAAGX,KAAK,CAACQ,aAAa,CAE7DC,SAAS,CAAC;AAEZ,OAAO,SAASG,kBAAkBA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgB,CAAC,EAAE;EACzE,MAAMC,iBAAiB,GAAGb,YAAY,CAAC,mBAAMH,KAAK,CAACQ,aAAa,CAACK,KAAK,CAAC,CAAC;EAExE,MAAMI,OAAO,GAAGjB,KAAK,CAACkB,GAAG,CAACP,4BAA4B,CAAC;EAEvD,MAAMQ,qBAAqB,GAAGnB,KAAK,CAACoB,OAAO,CACzC,OAAO;IACL,GAAGH,OAAO;IACV,CAACJ,KAAK,CAACQ,IAAI,GAAGL;EAChB,CAAC,CAAC,EACF,CAACA,iBAAiB,EAAEC,OAAO,EAAEJ,KAAK,CAACQ,IAAI,CACzC,CAAC;EAED,MAAMC,eAAe,GAAGtB,KAAK,CAACkB,GAAG,CAAChB,gBAAgB,CAAC;EACnD,MAAMqB,eAAe,GAAGvB,KAAK,CAACkB,GAAG,CAACjB,sBAAsB,CAAC;;EAEzD;EACA;EACA;EACA,MAAMuB,SAAS,GACbF,eAAe,IAAI,IAAI,IAAIA,eAAe,GACtCC,eAAe,KAAKV,KAAK,CAACY,GAAG,GAC7B,KAAK;EAEX,oBACEnB,IAAA,CAACF,oCAAoC;IAACiB,IAAI,EAAER,KAAK,CAACQ,IAAK;IAAAN,QAAA,eACrDT,IAAA,CAACK,4BAA4B,CAACe,QAAQ;MAACC,KAAK,EAAER,qBAAsB;MAAAJ,QAAA,eAClET,IAAA,CAACU,iBAAiB,CAACU,QAAQ;QAACC,KAAK,EAAEd,KAAM;QAAAE,QAAA,eACvCT,IAAA,CAACC,sBAAsB,CAACmB,QAAQ;UAACC,KAAK,EAAEd,KAAM;UAAAE,QAAA,eAC5CT,IAAA,CAACI,iBAAiB,CAACgB,QAAQ;YAACC,KAAK,EAAEb,UAAW;YAAAC,QAAA,eAC5CT,IAAA,CAACJ,gBAAgB,CAACwB,QAAQ;cAACC,KAAK,EAAEH,SAAU;cAAAT,QAAA,EACzCA;YAAQ,CACgB;UAAC,CACF;QAAC,CACE;MAAC,CACR;IAAC,CACQ;EAAC,CACJ,CAAC;AAE3C","ignoreList":[]}
@@ -16,6 +16,9 @@ export const NavigationStateContext = /*#__PURE__*/React.createContext({
16
16
  get setState() {
17
17
  throw new Error(MISSING_CONTEXT_ERROR);
18
18
  },
19
+ get subscribe() {
20
+ throw new Error(MISSING_CONTEXT_ERROR);
21
+ },
19
22
  get getIsInitial() {
20
23
  throw new Error(MISSING_CONTEXT_ERROR);
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAIC,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIM,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAID,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIO,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIF,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIQ,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIH,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIS,YAAYA,CAAA,EAAQ;IACtB,MAAM,IAAIJ,KAAK,CAACL,qBAAqB,CAAC;EACxC;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","subscribe","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAIC,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIM,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAID,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIO,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIF,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIQ,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIH,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIS,SAASA,CAAA,EAAQ;IACnB,MAAM,IAAIJ,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIU,YAAYA,CAAA,EAAQ;IACtB,MAAM,IAAIL,KAAK,CAACL,qBAAqB,CAAC;EACxC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAUrDC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAWrDC,SAAS,CAAC","ignoreList":[]}