@react-navigation/core 8.0.0-alpha.4 → 8.0.0-alpha.40

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 (323) hide show
  1. package/README.md +17 -14
  2. package/lib/module/BaseNavigationContainer.js +168 -87
  3. package/lib/module/BaseNavigationContainer.js.map +1 -1
  4. package/lib/module/ConsumedParamsContext.js +5 -0
  5. package/lib/module/ConsumedParamsContext.js.map +1 -0
  6. package/lib/module/DataLoading.js +129 -0
  7. package/lib/module/DataLoading.js.map +1 -0
  8. package/lib/module/NavigationBuilderContext.js +7 -10
  9. package/lib/module/NavigationBuilderContext.js.map +1 -1
  10. package/lib/module/NavigationIndependentTree.js +54 -9
  11. package/lib/module/NavigationIndependentTree.js.map +1 -1
  12. package/lib/module/NavigationProvider.js +36 -11
  13. package/lib/module/NavigationProvider.js.map +1 -1
  14. package/lib/module/NavigationRootContext.js +8 -0
  15. package/lib/module/NavigationRootContext.js.map +1 -0
  16. package/lib/module/NavigationStateContext.js +3 -0
  17. package/lib/module/NavigationStateContext.js.map +1 -1
  18. package/lib/module/PreventRemoveContext.js.map +1 -1
  19. package/lib/module/PreventRemoveProvider.js +40 -31
  20. package/lib/module/PreventRemoveProvider.js.map +1 -1
  21. package/lib/module/SceneView.js +12 -42
  22. package/lib/module/SceneView.js.map +1 -1
  23. package/lib/module/StaticNavigation.js +219 -67
  24. package/lib/module/StaticNavigation.js.map +1 -1
  25. package/lib/module/StaticTreeContext.js +5 -0
  26. package/lib/module/StaticTreeContext.js.map +1 -0
  27. package/lib/module/createNavigationContainerRef.js +7 -9
  28. package/lib/module/createNavigationContainerRef.js.map +1 -1
  29. package/lib/module/createNavigatorFactory.js +27 -5
  30. package/lib/module/createNavigatorFactory.js.map +1 -1
  31. package/lib/module/findFocusedRoute.js +7 -4
  32. package/lib/module/findFocusedRoute.js.map +1 -1
  33. package/lib/module/getActionFromState.js +45 -20
  34. package/lib/module/getActionFromState.js.map +1 -1
  35. package/lib/module/getPathFromState.js +204 -94
  36. package/lib/module/getPathFromState.js.map +1 -1
  37. package/lib/module/getPatternParts.js +61 -14
  38. package/lib/module/getPatternParts.js.map +1 -1
  39. package/lib/module/getStateFromPath.js +608 -272
  40. package/lib/module/getStateFromPath.js.map +1 -1
  41. package/lib/module/getStateFromRouteParams.js +23 -0
  42. package/lib/module/getStateFromRouteParams.js.map +1 -0
  43. package/lib/module/index.js +7 -6
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/internal.js +2 -0
  46. package/lib/module/internal.js.map +1 -0
  47. package/lib/module/isRecordEqual.js +1 -1
  48. package/lib/module/isRecordEqual.js.map +1 -1
  49. package/lib/module/queryString.js +71 -0
  50. package/lib/module/queryString.js.map +1 -0
  51. package/lib/module/theming/useTheme.js +1 -1
  52. package/lib/module/theming/useTheme.js.map +1 -1
  53. package/lib/module/types.js +35 -1
  54. package/lib/module/types.js.map +1 -1
  55. package/lib/module/useDescriptors.js +65 -25
  56. package/lib/module/useDescriptors.js.map +1 -1
  57. package/lib/module/useEventEmitter.js +48 -33
  58. package/lib/module/useEventEmitter.js.map +1 -1
  59. package/lib/module/useFocusEffect.js +4 -2
  60. package/lib/module/useFocusEffect.js.map +1 -1
  61. package/lib/module/useFocusEvents.js +15 -5
  62. package/lib/module/useFocusEvents.js.map +1 -1
  63. package/lib/module/useFocusedListenersChildrenAdapter.js +3 -3
  64. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  65. package/lib/module/useIsFocused.js +8 -12
  66. package/lib/module/useIsFocused.js.map +1 -1
  67. package/lib/module/useKeyedChildListeners.js +5 -2
  68. package/lib/module/useKeyedChildListeners.js.map +1 -1
  69. package/lib/module/useLazyValue.js.map +1 -1
  70. package/lib/module/useNavigation.js +4 -17
  71. package/lib/module/useNavigation.js.map +1 -1
  72. package/lib/module/useNavigationBuilder.js +244 -147
  73. package/lib/module/useNavigationBuilder.js.map +1 -1
  74. package/lib/module/useNavigationCache.js +92 -89
  75. package/lib/module/useNavigationCache.js.map +1 -1
  76. package/lib/module/useNavigationHelpers.js +22 -29
  77. package/lib/module/useNavigationHelpers.js.map +1 -1
  78. package/lib/module/useNavigationIndependentTree.js +1 -1
  79. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  80. package/lib/module/useNavigationState.js +158 -46
  81. package/lib/module/useNavigationState.js.map +1 -1
  82. package/lib/module/useOnAction.js +58 -11
  83. package/lib/module/useOnAction.js.map +1 -1
  84. package/lib/module/useOnGetNavigation.js +26 -0
  85. package/lib/module/useOnGetNavigation.js.map +1 -0
  86. package/lib/module/useOnGetState.js +7 -4
  87. package/lib/module/useOnGetState.js.map +1 -1
  88. package/lib/module/useOnPreventRemove.js +40 -31
  89. package/lib/module/useOnPreventRemove.js.map +1 -1
  90. package/lib/module/useOnRouteFocus.js +2 -2
  91. package/lib/module/useOnRouteFocus.js.map +1 -1
  92. package/lib/module/useOptionsGetters.js +34 -24
  93. package/lib/module/useOptionsGetters.js.map +1 -1
  94. package/lib/module/usePreventRemove.js +11 -5
  95. package/lib/module/usePreventRemove.js.map +1 -1
  96. package/lib/module/usePreventRemoveContext.js +2 -2
  97. package/lib/module/usePreventRemoveContext.js.map +1 -1
  98. package/lib/module/useRegisterNavigator.js +3 -4
  99. package/lib/module/useRegisterNavigator.js.map +1 -1
  100. package/lib/module/useRoute.js +2 -0
  101. package/lib/module/useRoute.js.map +1 -1
  102. package/lib/module/useRouteCache.js +51 -35
  103. package/lib/module/useRouteCache.js.map +1 -1
  104. package/lib/module/useScheduleUpdate.js +12 -10
  105. package/lib/module/useScheduleUpdate.js.map +1 -1
  106. package/lib/module/useStateForPath.js +1 -1
  107. package/lib/module/useStateForPath.js.map +1 -1
  108. package/lib/module/useSyncState.js +37 -15
  109. package/lib/module/useSyncState.js.map +1 -1
  110. package/lib/module/validatePathConfig.js +50 -36
  111. package/lib/module/validatePathConfig.js.map +1 -1
  112. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  113. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  114. package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
  115. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  116. package/lib/typescript/src/DataLoading.d.ts +21 -0
  117. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  118. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  119. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  120. package/lib/typescript/src/Group.d.ts +1 -1
  121. package/lib/typescript/src/Group.d.ts.map +1 -1
  122. package/lib/typescript/src/NavigationBuilderContext.d.ts +22 -14
  123. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  124. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  125. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  126. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  127. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  128. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  129. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  130. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  131. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  132. package/lib/typescript/src/NavigationProvider.d.ts +21 -18
  133. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  134. package/lib/typescript/src/NavigationRootContext.d.ts +8 -0
  135. package/lib/typescript/src/NavigationRootContext.d.ts.map +1 -0
  136. package/lib/typescript/src/NavigationStateContext.d.ts +4 -3
  137. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  138. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  139. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  140. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  141. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  142. package/lib/typescript/src/SceneView.d.ts +5 -2
  143. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  144. package/lib/typescript/src/Screen.d.ts +1 -1
  145. package/lib/typescript/src/Screen.d.ts.map +1 -1
  146. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  147. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  148. package/lib/typescript/src/StaticNavigation.d.ts +189 -111
  149. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  150. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  151. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  152. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  153. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  154. package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
  155. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  156. package/lib/typescript/src/findFocusedRoute.d.ts +3 -8
  157. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  158. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  159. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  160. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  161. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  162. package/lib/typescript/src/getPatternParts.d.ts +5 -2
  163. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  164. package/lib/typescript/src/getStateFromPath.d.ts +4 -7
  165. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  166. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  167. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  168. package/lib/typescript/src/index.d.ts +36 -33
  169. package/lib/typescript/src/index.d.ts.map +1 -1
  170. package/lib/typescript/src/internal.d.ts +3 -0
  171. package/lib/typescript/src/internal.d.ts.map +1 -0
  172. package/lib/typescript/src/isRecordEqual.d.ts.map +1 -1
  173. package/lib/typescript/src/queryString.d.ts +5 -0
  174. package/lib/typescript/src/queryString.d.ts.map +1 -0
  175. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  176. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  177. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  178. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  179. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  180. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  181. package/lib/typescript/src/types.d.ts +265 -167
  182. package/lib/typescript/src/types.d.ts.map +1 -1
  183. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  184. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  185. package/lib/typescript/src/useDescriptors.d.ts +13 -11
  186. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  187. package/lib/typescript/src/useEventEmitter.d.ts +2 -2
  188. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  189. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
  190. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  191. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  192. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  193. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  194. package/lib/typescript/src/useIsFocused.d.ts +4 -0
  195. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  196. package/lib/typescript/src/useKeyedChildListeners.d.ts +4 -3
  197. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  198. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  199. package/lib/typescript/src/useNavigation.d.ts +4 -2
  200. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  201. package/lib/typescript/src/useNavigationBuilder.d.ts +22 -63
  202. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  203. package/lib/typescript/src/useNavigationCache.d.ts +6 -5
  204. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  205. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  206. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  207. package/lib/typescript/src/useNavigationHelpers.d.ts +18 -58
  208. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  209. package/lib/typescript/src/useNavigationState.d.ts +19 -3
  210. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  211. package/lib/typescript/src/useOnAction.d.ts +9 -9
  212. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  213. package/lib/typescript/src/useOnGetNavigation.d.ts +12 -0
  214. package/lib/typescript/src/useOnGetNavigation.d.ts.map +1 -0
  215. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  216. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  217. package/lib/typescript/src/useOnPreventRemove.d.ts +5 -9
  218. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  219. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  220. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  221. package/lib/typescript/src/useOptionsGetters.d.ts +2 -4
  222. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  223. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  224. package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
  225. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  226. package/lib/typescript/src/useRegisterNavigator.d.ts.map +1 -1
  227. package/lib/typescript/src/useRoute.d.ts +7 -3
  228. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  229. package/lib/typescript/src/useRouteCache.d.ts +7 -12
  230. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  231. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  232. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  233. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  234. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  235. package/lib/typescript/src/useSyncState.d.ts +1 -0
  236. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  237. package/lib/typescript/src/utilities.d.ts +79 -39
  238. package/lib/typescript/src/utilities.d.ts.map +1 -1
  239. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  240. package/package.json +26 -22
  241. package/src/BaseNavigationContainer.tsx +468 -333
  242. package/src/ConsumedParamsContext.tsx +5 -0
  243. package/src/DataLoading.tsx +206 -0
  244. package/src/NavigationBuilderContext.tsx +44 -25
  245. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  246. package/src/NavigationIndependentTree.tsx +60 -12
  247. package/src/NavigationProvider.tsx +47 -20
  248. package/src/NavigationRootContext.tsx +11 -0
  249. package/src/NavigationStateContext.tsx +9 -6
  250. package/src/PreventRemoveContext.tsx +1 -0
  251. package/src/PreventRemoveProvider.tsx +55 -56
  252. package/src/SceneView.tsx +14 -40
  253. package/src/StaticNavigation.tsx +715 -328
  254. package/src/StaticTreeContext.tsx +7 -0
  255. package/src/createNavigationContainerRef.tsx +12 -11
  256. package/src/createNavigatorFactory.tsx +92 -8
  257. package/src/findFocusedRoute.tsx +16 -16
  258. package/src/getActionFromState.tsx +87 -51
  259. package/src/getPathFromState.tsx +310 -134
  260. package/src/getPatternParts.tsx +98 -16
  261. package/src/getStateFromPath.tsx +971 -344
  262. package/src/getStateFromRouteParams.tsx +59 -0
  263. package/src/index.tsx +57 -6
  264. package/src/internal.tsx +2 -0
  265. package/src/isRecordEqual.tsx +3 -1
  266. package/src/queryString.ts +109 -0
  267. package/src/theming/useTheme.tsx +1 -1
  268. package/src/types.tsx +799 -377
  269. package/src/useDescriptors.tsx +151 -43
  270. package/src/useEventEmitter.tsx +53 -39
  271. package/src/useFocusEffect.tsx +5 -2
  272. package/src/useFocusEvents.tsx +19 -8
  273. package/src/useFocusedListenersChildrenAdapter.tsx +3 -3
  274. package/src/useIsFocused.tsx +18 -21
  275. package/src/useKeyedChildListeners.tsx +5 -2
  276. package/src/useLazyValue.tsx +2 -2
  277. package/src/useNavigation.tsx +9 -26
  278. package/src/useNavigationBuilder.tsx +370 -201
  279. package/src/useNavigationCache.tsx +148 -123
  280. package/src/useNavigationHelpers.tsx +27 -37
  281. package/src/useNavigationIndependentTree.tsx +1 -1
  282. package/src/useNavigationState.tsx +207 -69
  283. package/src/useOnAction.tsx +92 -18
  284. package/src/useOnGetNavigation.tsx +30 -0
  285. package/src/useOnGetState.tsx +8 -4
  286. package/src/useOnPreventRemove.tsx +78 -43
  287. package/src/useOnRouteFocus.tsx +11 -15
  288. package/src/useOptionsGetters.tsx +41 -28
  289. package/src/usePreventRemove.tsx +13 -5
  290. package/src/usePreventRemoveContext.tsx +2 -2
  291. package/src/useRegisterNavigator.tsx +4 -4
  292. package/src/useRoute.tsx +20 -6
  293. package/src/useRouteCache.tsx +57 -35
  294. package/src/useScheduleUpdate.tsx +13 -11
  295. package/src/useStateForPath.tsx +1 -1
  296. package/src/useSyncState.tsx +39 -15
  297. package/src/utilities.tsx +151 -35
  298. package/src/validatePathConfig.tsx +86 -57
  299. package/lib/module/CurrentRenderContext.js +0 -10
  300. package/lib/module/CurrentRenderContext.js.map +0 -1
  301. package/lib/module/NavigationMetaContext.js +0 -15
  302. package/lib/module/NavigationMetaContext.js.map +0 -1
  303. package/lib/module/checkSerializable.js +0 -46
  304. package/lib/module/checkSerializable.js.map +0 -1
  305. package/lib/module/useComponent.js +0 -34
  306. package/lib/module/useComponent.js.map +0 -1
  307. package/lib/module/useCurrentRender.js +0 -19
  308. package/lib/module/useCurrentRender.js.map +0 -1
  309. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  310. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  311. package/lib/typescript/src/NavigationMetaContext.d.ts +0 -12
  312. package/lib/typescript/src/NavigationMetaContext.d.ts.map +0 -1
  313. package/lib/typescript/src/checkSerializable.d.ts +0 -10
  314. package/lib/typescript/src/checkSerializable.d.ts.map +0 -1
  315. package/lib/typescript/src/useComponent.d.ts +0 -7
  316. package/lib/typescript/src/useComponent.d.ts.map +0 -1
  317. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  318. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  319. package/src/CurrentRenderContext.tsx +0 -9
  320. package/src/NavigationMetaContext.tsx +0 -14
  321. package/src/checkSerializable.tsx +0 -74
  322. package/src/useComponent.tsx +0 -37
  323. package/src/useCurrentRender.tsx +0 -31
package/README.md CHANGED
@@ -17,28 +17,31 @@ A basic custom navigator bundling a router and a view looks like this:
17
17
  ```js
18
18
  import {
19
19
  createNavigatorFactory,
20
+ createScreenFactory,
20
21
  useNavigationBuilder,
21
22
  } from '@react-navigation/core';
22
23
  import { StackRouter } from '@react-navigation/routers';
23
24
 
24
25
  function StackNavigator({ initialRouteName, children, ...rest }) {
25
- const { state, navigation, descriptors, NavigationContent } =
26
- useNavigationBuilder(StackRouter, {
26
+ const { state, navigation, descriptors, render } = useNavigationBuilder(
27
+ StackRouter,
28
+ {
27
29
  initialRouteName,
28
30
  children,
29
- });
30
-
31
- return (
32
- <NavigationContent>
33
- <StackView
34
- state={state}
35
- navigation={navigation}
36
- descriptors={descriptors}
37
- {...rest}
38
- />
39
- </NavigationContent>
31
+ }
32
+ );
33
+
34
+ return render(
35
+ <StackView
36
+ state={state}
37
+ navigation={navigation}
38
+ descriptors={descriptors}
39
+ {...rest}
40
+ />
40
41
  );
41
42
  }
42
43
 
43
- export default createNavigatorFactory(StackNavigator);
44
+ export const createStackNavigator = createNavigatorFactory(StackNavigator);
45
+
46
+ export const createStackScreen = createScreenFactory();
44
47
  ```
@@ -3,27 +3,27 @@
3
3
  import { CommonActions } from '@react-navigation/routers';
4
4
  import * as React from 'react';
5
5
  import useLatestCallback from 'use-latest-callback';
6
+ import warnOnce from 'warn-once';
6
7
  import { checkDuplicateRouteNames } from "./checkDuplicateRouteNames.js";
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";
11
12
  import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
12
13
  import { NavigationContainerRefContext } from "./NavigationContainerRefContext.js";
13
14
  import { NavigationIndependentTreeContext } from "./NavigationIndependentTreeContext.js";
15
+ import { NavigationRootContext } from "./NavigationRootContext.js";
14
16
  import { NavigationStateContext } from "./NavigationStateContext.js";
15
17
  import { ThemeProvider } from "./theming/ThemeProvider.js";
16
18
  import { UnhandledActionContext } from "./UnhandledActionContext.js";
17
19
  import { useChildListeners } from "./useChildListeners.js";
18
20
  import { useEventEmitter } from "./useEventEmitter.js";
19
21
  import { useKeyedChildListeners } from "./useKeyedChildListeners.js";
22
+ import { useLazyValue } from "./useLazyValue.js";
20
23
  import { useNavigationIndependentTree } from "./useNavigationIndependentTree.js";
21
24
  import { useOptionsGetters } from "./useOptionsGetters.js";
22
25
  import { useSyncState } from "./useSyncState.js";
23
26
  import { jsx as _jsx } from "react/jsx-runtime";
24
- const serializableWarnings = [];
25
- const duplicateNameWarnings = [];
26
-
27
27
  /**
28
28
  * Remove `key` and `routeNames` from the state objects recursively to get partial state.
29
29
  *
@@ -67,15 +67,16 @@ const getPartialState = state => {
67
67
  * @param props.children Child elements to render the content.
68
68
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
69
69
  */
70
- export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer({
70
+ export function BaseNavigationContainer({
71
71
  initialState,
72
72
  onStateChange,
73
73
  onReady,
74
74
  onUnhandledAction,
75
75
  theme,
76
- children
77
- }, ref) {
78
- const parent = React.useContext(NavigationStateContext);
76
+ children,
77
+ ref
78
+ }) {
79
+ const parent = React.use(NavigationStateContext);
79
80
  const independent = useNavigationIndependentTree();
80
81
  if (!parent.isDefault && !independent) {
81
82
  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 +85,11 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
84
85
  state,
85
86
  getState,
86
87
  setState,
88
+ subscribe,
87
89
  scheduleUpdate,
88
90
  flushUpdates
89
91
  } = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));
92
+ const consumedParams = useLazyValue(() => new WeakMap());
90
93
  const isFirstMountRef = React.useRef(true);
91
94
  const navigatorKeyRef = React.useRef(undefined);
92
95
  const getKey = React.useCallback(() => navigatorKeyRef.current, []);
@@ -101,11 +104,39 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
101
104
  keyedListeners,
102
105
  addKeyedListener
103
106
  } = useKeyedChildListeners();
107
+ const stackRef = React.useRef(undefined);
108
+ const withStackTrace = React.useCallback((entry, callback) => {
109
+ if (process.env.NODE_ENV === 'production' || stackRef.current != null) {
110
+ callback();
111
+ return;
112
+ }
113
+ const error = new Error();
114
+ if (Error.captureStackTrace) {
115
+ // Available on V8 and Hermes, omits the frames of `entry` and what it called
116
+ Error.captureStackTrace(error, entry);
117
+ stackRef.current = error.stack;
118
+ } else {
119
+ // Other engines always include them, so we drop the frames up to `entry` ourselves
120
+ const frames = error.stack?.split('\n') ?? [];
121
+ const index = frames.findIndex(frame => frame.includes(`${entry.name}@`));
122
+ stackRef.current = frames.slice(index + 1).join('\n');
123
+ }
124
+ try {
125
+ callback();
126
+ } finally {
127
+ stackRef.current = undefined;
128
+ }
129
+ }, []);
104
130
  const dispatch = useLatestCallback(action => {
105
- if (listeners.focus[0] == null) {
131
+ const listener = listeners.focus[0];
132
+ if (listener == null) {
106
133
  console.error(NOT_INITIALIZED_ERROR);
107
134
  } else {
108
- listeners.focus[0](navigation => navigation.dispatch(action));
135
+ withStackTrace(dispatch, () => {
136
+ listener(navigation => React.startTransition(() => {
137
+ navigation.dispatch(action);
138
+ }));
139
+ });
109
140
  }
110
141
  });
111
142
  const canGoBack = useLatestCallback(() => {
@@ -123,11 +154,12 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
123
154
  }
124
155
  });
125
156
  const resetRoot = useLatestCallback(state => {
126
- const target = state?.key ?? keyedListeners.getState.root?.().key;
127
- if (target == null) {
157
+ const target = keyedListeners.getState.root?.().key;
158
+ const listener = listeners.focus[0];
159
+ if (target == null || listener == null) {
128
160
  console.error(NOT_INITIALIZED_ERROR);
129
161
  } else {
130
- listeners.focus[0](navigation => navigation.dispatch({
162
+ listener(navigation => navigation.dispatch({
131
163
  ...CommonActions.reset(state),
132
164
  target
133
165
  }));
@@ -150,29 +182,97 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
150
182
  addOptionsGetter,
151
183
  getCurrentOptions
152
184
  } = useOptionsGetters({});
153
- const navigation = React.useMemo(() => ({
185
+ const container = React.useMemo(() => ({
154
186
  ...Object.keys(CommonActions).reduce((acc, name) => {
155
- acc[name] = (...args) =>
187
+ const helper = (...args) => withStackTrace(helper, () =>
156
188
  // @ts-expect-error: this is ok
157
- dispatch(CommonActions[name](...args));
189
+ dispatch(CommonActions[name](...args)));
190
+ acc[name] = helper;
158
191
  return acc;
159
192
  }, {}),
160
193
  ...emitter.create('root'),
161
194
  dispatch,
162
195
  resetRoot,
163
- isFocused: () => true,
164
196
  canGoBack,
165
- getParent: () => undefined,
166
197
  getState,
167
198
  getRootState,
168
199
  getCurrentRoute,
169
200
  getCurrentOptions,
170
- isReady,
171
- setOptions: () => {
172
- throw new Error('Cannot call setOptions outside a screen');
173
- }
174
- }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, getState, isReady, resetRoot]);
175
- React.useImperativeHandle(ref, () => navigation, [navigation]);
201
+ isReady
202
+ }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, getState, isReady, resetRoot, withStackTrace]);
203
+ const navigation = React.useMemo(() => {
204
+ const events = emitter.create('root');
205
+ const dispatch = thunk => {
206
+ const root = keyedListeners.getNavigation.root?.();
207
+ if (root == null) {
208
+ console.error(NOT_INITIALIZED_ERROR);
209
+ return;
210
+ }
211
+ withStackTrace(dispatch, () => {
212
+ React.startTransition(() => {
213
+ root.dispatch(thunk);
214
+ });
215
+ });
216
+ };
217
+ const helpers = Object.keys(CommonActions).reduce((acc, name) => {
218
+ const helper = (...args) => {
219
+ if (name === 'setParams' || name === 'replaceParams' || name === 'pushParams') {
220
+ throw new Error(`Cannot call ${name} outside a screen`);
221
+ }
222
+ withStackTrace(helper, () =>
223
+ // @ts-expect-error name is a valid key, but TypeScript cannot infer it.
224
+ dispatch(CommonActions[name](...args)));
225
+ };
226
+ acc[name] = helper;
227
+ return acc;
228
+ }, {});
229
+ const listeners = new WeakMap();
230
+ return {
231
+ ...helpers,
232
+ dispatch,
233
+ addListener: (type, callback) => {
234
+ if (type === 'state') {
235
+ let listener = listeners.get(callback);
236
+ if (listener === undefined) {
237
+ // Root's state change events can contain stale and undefined state
238
+ // But navigation objects should only receive non-stale state
239
+ // So we add a wrapper to filter out stale events
240
+ listener = event => {
241
+ if (event.data.state?.stale === false) {
242
+ // @ts-expect-error TypeScript doesn't narrow the generic event callback with its type.
243
+ callback(event);
244
+ }
245
+ };
246
+ listeners.set(callback, listener);
247
+ }
248
+ return events.addListener('state', listener);
249
+ }
250
+ return () => {};
251
+ },
252
+ removeListener: (type, callback) => {
253
+ if (type === 'state') {
254
+ const listener = listeners.get(callback);
255
+ if (listener) {
256
+ events.removeListener('state', listener);
257
+ listeners.delete(callback);
258
+ }
259
+ }
260
+ },
261
+ canGoBack: () => keyedListeners.getNavigation.root?.().canGoBack() ?? false,
262
+ getState: () => keyedListeners.getState.root?.(),
263
+ getParent: routeName => {
264
+ if (routeName !== undefined) {
265
+ throw new Error(`Couldn't find a navigation object for '${routeName}' because it's called outside a screen. Is your component inside a screen?`);
266
+ }
267
+ return undefined;
268
+ },
269
+ setOptions: () => {
270
+ throw new Error('Cannot call setOptions outside a screen');
271
+ },
272
+ isFocused: () => true
273
+ };
274
+ }, [emitter, keyedListeners, withStackTrace]);
275
+ React.useImperativeHandle(ref, () => container, [container]);
176
276
  const onDispatchAction = useLatestCallback((action, noop) => {
177
277
  emitter.emit({
178
278
  type: '__unsafe_action__',
@@ -189,9 +289,14 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
189
289
  data: event
190
290
  });
191
291
  });
292
+ const isOptionsListenerReadyRef = React.useRef(false);
192
293
  const lastEmittedOptionsRef = React.useRef(undefined);
193
- const onOptionsChange = useLatestCallback(options => {
194
- if (lastEmittedOptionsRef.current === options) {
294
+ const onOptionsChange = useLatestCallback(() => {
295
+ if (!isOptionsListenerReadyRef.current) {
296
+ return;
297
+ }
298
+ const options = getCurrentOptions();
299
+ if (options == null || lastEmittedOptionsRef.current === options) {
195
300
  return;
196
301
  }
197
302
  lastEmittedOptionsRef.current = options;
@@ -202,28 +307,38 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
202
307
  }
203
308
  });
204
309
  });
205
- const stackRef = React.useRef(undefined);
310
+ React.useEffect(() => {
311
+ isOptionsListenerReadyRef.current = true;
312
+ onOptionsChange();
313
+ return () => {
314
+ isOptionsListenerReadyRef.current = false;
315
+ };
316
+ }, [onOptionsChange]);
317
+ const lastEmittedStateRef = React.useRef(undefined);
318
+ const getIsStateEmitted = useLatestCallback(() => !isFirstMountRef.current && lastEmittedStateRef.current === getState());
206
319
  const builderContext = React.useMemo(() => ({
207
320
  addListener,
208
321
  addKeyedListener,
209
322
  onDispatchAction,
210
323
  onEmitEvent,
211
324
  onOptionsChange,
325
+ getIsStateEmitted,
212
326
  scheduleUpdate,
213
327
  flushUpdates,
214
- stackRef
215
- }), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, scheduleUpdate, flushUpdates]);
328
+ withStackTrace
329
+ }), [addListener, addKeyedListener, onDispatchAction, onEmitEvent, onOptionsChange, getIsStateEmitted, scheduleUpdate, flushUpdates, withStackTrace]);
216
330
  const isInitialRef = React.useRef(true);
217
331
  const getIsInitial = React.useCallback(() => isInitialRef.current, []);
218
332
  const context = React.useMemo(() => ({
219
333
  state,
220
334
  getState,
221
335
  setState,
336
+ subscribe,
222
337
  getKey,
223
338
  setKey,
224
339
  getIsInitial,
225
340
  addOptionsGetter
226
- }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);
341
+ }), [state, getState, setState, subscribe, getKey, setKey, getIsInitial, addOptionsGetter]);
227
342
  const onReadyRef = React.useRef(onReady);
228
343
  const onStateChangeRef = React.useRef(onStateChange);
229
344
  React.useEffect(() => {
@@ -242,59 +357,17 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
242
357
  }
243
358
  }, [state, isReady, emitter]);
244
359
  React.useEffect(() => {
245
- const hydratedState = getRootState();
246
360
  if (process.env.NODE_ENV !== 'production') {
361
+ const hydratedState = getRootState();
247
362
  if (hydratedState !== undefined) {
248
- const serializableResult = checkSerializable(hydratedState);
249
- if (!serializableResult.serializable) {
250
- const {
251
- location,
252
- reason
253
- } = serializableResult;
254
- let path = '';
255
- let pointer = hydratedState;
256
- let params = false;
257
- for (let i = 0; i < location.length; i++) {
258
- const curr = location[i];
259
- const prev = location[i - 1];
260
- pointer = pointer[curr];
261
- if (!params && curr === 'state') {
262
- continue;
263
- } else if (!params && curr === 'routes') {
264
- if (path) {
265
- path += ' > ';
266
- }
267
- } else if (!params && typeof curr === 'number' && prev === 'routes') {
268
- path += pointer?.name;
269
- } else if (!params) {
270
- path += ` > ${curr}`;
271
- params = true;
272
- } else {
273
- if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {
274
- path += `[${curr}]`;
275
- } else if (/^[a-z$_]+$/i.test(curr)) {
276
- path += `.${curr}`;
277
- } else {
278
- path += `[${JSON.stringify(curr)}]`;
279
- }
280
- }
281
- }
282
- const message = `Non-serializable values were found in the navigation state. Check:\n\n${path} (${reason})\n\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;
283
- if (!serializableWarnings.includes(message)) {
284
- serializableWarnings.push(message);
285
- console.warn(message);
286
- }
287
- }
288
363
  const duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);
289
364
  if (duplicateRouteNamesResult.length) {
290
365
  const message = `Found screens with the same name nested inside one another. Check:\n${duplicateRouteNamesResult.map(locations => `\n${locations.join(', ')}`)}\n\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;
291
- if (!duplicateNameWarnings.includes(message)) {
292
- duplicateNameWarnings.push(message);
293
- console.warn(message);
294
- }
366
+ warnOnce(true, message);
295
367
  }
296
368
  }
297
369
  }
370
+ lastEmittedStateRef.current = state;
298
371
  emitter.emit({
299
372
  type: 'state',
300
373
  data: {
@@ -302,6 +375,7 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
302
375
  }
303
376
  });
304
377
  if (!isFirstMountRef.current && onStateChangeRef.current) {
378
+ const hydratedState = getRootState();
305
379
  onStateChangeRef.current(hydratedState);
306
380
  }
307
381
  isFirstMountRef.current = false;
@@ -328,6 +402,7 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
328
402
  case 'GO_BACK':
329
403
  case 'POP':
330
404
  case 'POP_TO_TOP':
405
+ case 'DISMISS':
331
406
  message += `\n\nIs there any screen to go back to?`;
332
407
  break;
333
408
  case 'OPEN_DRAWER':
@@ -342,17 +417,23 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
342
417
  return /*#__PURE__*/_jsx(NavigationIndependentTreeContext.Provider, {
343
418
  value: false,
344
419
  children: /*#__PURE__*/_jsx(NavigationContainerRefContext.Provider, {
345
- value: navigation,
346
- children: /*#__PURE__*/_jsx(NavigationBuilderContext.Provider, {
347
- value: builderContext,
348
- children: /*#__PURE__*/_jsx(NavigationStateContext.Provider, {
349
- 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
420
+ value: container,
421
+ children: /*#__PURE__*/_jsx(NavigationRootContext.Provider, {
422
+ value: navigation,
423
+ children: /*#__PURE__*/_jsx(NavigationBuilderContext.Provider, {
424
+ value: builderContext,
425
+ children: /*#__PURE__*/_jsx(NavigationStateContext.Provider, {
426
+ value: context,
427
+ children: /*#__PURE__*/_jsx(ConsumedParamsContext.Provider, {
428
+ value: consumedParams,
429
+ children: /*#__PURE__*/_jsx(UnhandledActionContext.Provider, {
430
+ value: onUnhandledAction ?? defaultOnUnhandledAction,
431
+ children: /*#__PURE__*/_jsx(EnsureSingleNavigator, {
432
+ children: /*#__PURE__*/_jsx(ThemeProvider, {
433
+ value: theme,
434
+ children: children
435
+ })
436
+ })
356
437
  })
357
438
  })
358
439
  })
@@ -360,5 +441,5 @@ export const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function Ba
360
441
  })
361
442
  })
362
443
  });
363
- });
444
+ }
364
445
  //# 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","warnOnce","checkDuplicateRouteNames","ConsumedParamsContext","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationIndependentTreeContext","NavigationRootContext","NavigationStateContext","ThemeProvider","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useLazyValue","useNavigationIndependentTree","useOptionsGetters","useSyncState","jsx","_jsx","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","stackRef","withStackTrace","entry","callback","process","env","NODE_ENV","error","captureStackTrace","stack","frames","split","index","findIndex","frame","includes","name","slice","join","dispatch","action","listener","focus","console","navigation","startTransition","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","isReady","emitter","addOptionsGetter","getCurrentOptions","container","useMemo","Object","keys","reduce","acc","helper","args","create","events","thunk","getNavigation","helpers","type","get","event","data","set","removeListener","delete","getParent","routeName","setOptions","isFocused","useImperativeHandle","onDispatchAction","noop","emit","onEmitEvent","isOptionsListenerReadyRef","lastEmittedOptionsRef","onOptionsChange","options","useEffect","lastEmittedStateRef","getIsStateEmitted","builderContext","isInitialRef","getIsInitial","context","onReadyRef","onStateChangeRef","onReadyCalledRef","hydratedState","duplicateRouteNamesResult","length","message","locations","defaultOnUnhandledAction","payload","JSON","stringify","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,129 @@
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 &&
85
+ // Nested navigators cannot be defined as a getter
86
+ Object.getOwnPropertyDescriptor(item, 'screen')?.get == null && 'config' in item.screen ? item.screen : undefined;
87
+ if (nested) {
88
+ const initialRouteName = findInitialRouteName(nested.config);
89
+ const stateFromParams = focusedRoute.params != null && consumedParams?.has(focusedRoute.params) ? undefined : getStateFromRouteParams(params);
90
+ let childState = previousState !== undefined && stateFromParams != null ? stateFromParams : focusedRoute.state ?? stateFromParams;
91
+ if (childState == null && initialRouteName != null) {
92
+ childState = {
93
+ routes: [{
94
+ name: initialRouteName
95
+ }]
96
+ };
97
+ }
98
+ let previousChildState;
99
+ if (!isNewlyFocused) {
100
+ const previousRouteParams = previousFocusedRoute?.params;
101
+ const previousParams = initialParams != null || previousRouteParams != null ? {
102
+ ...initialParams,
103
+ ...previousRouteParams
104
+ } : undefined;
105
+ const previousStateFromParams = previousRouteParams != null && consumedParams?.has(previousRouteParams) ? undefined : getStateFromRouteParams(previousParams);
106
+ previousChildState = previousFocusedRoute?.state ?? previousStateFromParams;
107
+ if (previousChildState == null && initialRouteName != null) {
108
+ previousChildState = {
109
+ routes: [{
110
+ name: initialRouteName
111
+ }]
112
+ };
113
+ }
114
+ }
115
+ const childLoader = getLoaderForStateChange(nested, childState, previousState === undefined ? undefined : previousChildState ?? {
116
+ routes: []
117
+ }, consumedParams);
118
+ if (childLoader) {
119
+ loaders.push(childLoader);
120
+ }
121
+ }
122
+ if (loaders.length === 0) {
123
+ return undefined;
124
+ }
125
+ return async () => {
126
+ await Promise.all(loaders.map(l => l()));
127
+ };
128
+ }
129
+ //# sourceMappingURL=DataLoading.js.map