@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
@@ -2,14 +2,52 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { isValidElementType } from 'react-is';
5
+ import { combinePatternParts, getPatternParts } from "./getPatternParts.js";
6
+ import { StaticTreeContext } from "./StaticTreeContext.js";
5
7
  import { useRoute } from "./useRoute.js";
6
8
 
9
+ // If the initial route's params include `undefined`, the nested navigator itself can be optional.
10
+ // If no initial route is specified, check if every nested route's params include `undefined`.
11
+ // Otherwise the nested navigator needs to be required.
12
+
13
+ // If the screens were constructed from a `Record<K, V>`,
14
+ // the screen value (`T`) may be a union.
15
+ // A naked `T extends ...` conditional would distribute over every screen in the union,
16
+ // creating a large params union per route.
17
+ // Wrapping `T` in a tuple checks the union as a whole instead of distributing,
18
+ // https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types
19
+
20
+ // Unlike `ParamsForScreen`, we want to distribute for `Record<string, Component | StaticNavigation>`
21
+ // This creates union like:
22
+ // `C extends C ? ParamsForScreen<C> : never) | (S extends S ? ParamsForScreen<S> : never)`
23
+ // `= ParamsForScreen<C> | ParamsForScreen<S>`
24
+
25
+ // Only infer params from linking if it's a pattern (i.e., contains ':')
26
+ // or if parse is present, which can also define query params.
27
+ // This avoids inferring non-literals like 'string' without parse.
28
+
7
29
  /**
8
- * Inferred params type based on both linking config and screen.
9
- * - When linking is undefined: infers params from screen
10
- * - When screen is a nested navigator: merges path params with navigator screen params
11
- * - Otherwise: merges path params with screen component params
30
+ * Params type derived from both linking and screen.
31
+ *
32
+ * - Linking has no extractable params (no ':' in path, no `parse`): returns
33
+ * screen params alone.
34
+ * - Linking has params + screen is a nested navigator: intersects path params
35
+ * with the navigator's screen params.
36
+ * - Linking has params + screen is a component without route params: returns
37
+ * path params alone (avoids `LP & undefined = never`).
38
+ * - Linking has params + screen has route params: intersects them.
12
39
  */
40
+ import { jsx as _jsx } from "react/jsx-runtime";
41
+ /**
42
+ * Helper to create a typed `createXScreen` for static configuration.
43
+ */
44
+ export function createScreenFactory() {
45
+ return config => config;
46
+ }
47
+
48
+ // Each property is probed with `Config extends { key: infer X }` and the results are intersected.
49
+ // These conditionals stay deferred while the config is inferred, so they don't interfere with the inference.
50
+ // Indexed access (`Config['screens']`) or a mapped type over the whole config breaks the param list inference.
13
51
 
14
52
  /**
15
53
  * Props for a screen component which is rendered by a static navigator.
@@ -19,7 +57,7 @@ import { useRoute } from "./useRoute.js";
19
57
  /**
20
58
  * Infer the param list from the static navigation config.
21
59
  */
22
- import { jsx as _jsx } from "react/jsx-runtime";
60
+
23
61
  const MemoizedScreen = /*#__PURE__*/React.memo(({
24
62
  component
25
63
  }) => {
@@ -30,38 +68,73 @@ const MemoizedScreen = /*#__PURE__*/React.memo(({
30
68
  return children;
31
69
  });
32
70
  MemoizedScreen.displayName = 'Memo(Screen)';
71
+ const hasPropertyGetter = (object, property) => Object.getOwnPropertyDescriptor(object, property)?.get != null;
33
72
  const getItemsFromScreens = (Screen, screens) => {
34
73
  return Object.entries(screens).map(([name, item]) => {
35
74
  let component;
36
75
  let props = {};
37
76
  let useIf;
38
77
  let isNavigator = false;
78
+ let getComponent;
39
79
  if ('screen' in item) {
40
- const {
41
- screen,
42
- if: _if,
43
- ...rest
44
- } = item;
45
- useIf = _if;
46
- props = rest;
47
- if (isValidElementType(screen)) {
48
- component = screen;
49
- } else if ('config' in screen) {
50
- isNavigator = true;
51
- component = createComponentForStaticNavigation(screen, `${name}Navigator`);
80
+ if (hasPropertyGetter(item, 'screen')) {
81
+ const rest = {};
82
+
83
+ // Iterate over the keys to avoid triggering the getter for 'screen'
84
+ for (const key of Object.keys(item)) {
85
+ if (key === 'screen' || key === 'if') {
86
+ continue;
87
+ }
88
+ rest[key] = Reflect.get(item, key);
89
+ }
90
+ useIf = item.if;
91
+ props = rest;
92
+ getComponent = () => {
93
+ const screen = item.screen;
94
+ if (isValidElementType(screen)) {
95
+ return screen;
96
+ }
97
+ if (screen != null && typeof screen === 'object' && 'config' in screen) {
98
+ throw new Error(`Got a navigator object for the screen '${name}' instead of a component. A navigator cannot be specified when using a getter.`);
99
+ }
100
+ throw new Error(`Got an invalid screen component for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);
101
+ };
102
+ } else {
103
+ const {
104
+ screen,
105
+ if: _if,
106
+ ...rest
107
+ } = item;
108
+ useIf = _if;
109
+ props = rest;
110
+ if (isValidElementType(screen)) {
111
+ component = screen;
112
+ } else if ('config' in screen) {
113
+ isNavigator = true;
114
+ component = screen.getComponent();
115
+ }
52
116
  }
53
117
  } else if (isValidElementType(item)) {
54
118
  component = item;
55
119
  } else if ('config' in item) {
56
120
  isNavigator = true;
57
- component = createComponentForStaticNavigation(item, `${name}Navigator`);
121
+ component = item.getComponent();
122
+ }
123
+ let children;
124
+ if (getComponent != null) {
125
+ let element;
126
+ children = () => element ??= /*#__PURE__*/_jsx(MemoizedScreen, {
127
+ component: getComponent()
128
+ });
129
+ } else if (component != null) {
130
+ const element = isNavigator ? (/*#__PURE__*/React.createElement(component, {})) : /*#__PURE__*/_jsx(MemoizedScreen, {
131
+ component: component
132
+ });
133
+ children = () => element;
58
134
  }
59
- if (component == null) {
135
+ if (children == null) {
60
136
  throw new Error(`Couldn't find a 'screen' property for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);
61
137
  }
62
- const element = isNavigator ? (/*#__PURE__*/React.createElement(component, {})) : /*#__PURE__*/_jsx(MemoizedScreen, {
63
- component: component
64
- });
65
138
  return () => {
66
139
  const shouldRender = useIf == null || useIf();
67
140
  if (!shouldRender) {
@@ -70,7 +143,7 @@ const getItemsFromScreens = (Screen, screens) => {
70
143
  return /*#__PURE__*/_jsx(Screen, {
71
144
  name: name,
72
145
  ...props,
73
- children: () => element
146
+ children: children
74
147
  }, name);
75
148
  };
76
149
  });
@@ -83,7 +156,7 @@ const getItemsFromScreens = (Screen, screens) => {
83
156
  * @param displayName Name of the component to be displayed in React DevTools.
84
157
  * @returns A component which renders the navigator.
85
158
  */
86
- export function createComponentForStaticNavigation(tree, displayName) {
159
+ export function createComponentForStaticConfig(tree, displayName) {
87
160
  const {
88
161
  Navigator,
89
162
  Group,
@@ -128,6 +201,9 @@ export function createComponentForStaticNavigation(tree, displayName) {
128
201
  }));
129
202
  }
130
203
  }
204
+ if (items.length === 0) {
205
+ throw new Error("Couldn't find any screens in the 'screens' or 'groups' property. Make sure to define at least one screen in the configuration.");
206
+ }
131
207
  const NavigatorComponent = ({
132
208
  children: _,
133
209
  ...props
@@ -140,16 +216,61 @@ export function createComponentForStaticNavigation(tree, displayName) {
140
216
  ...rest.screenOptions,
141
217
  ...props.screenOptions
142
218
  };
143
- return /*#__PURE__*/_jsx(Navigator, {
144
- ...rest,
145
- ...props,
146
- screenOptions: screenOptions,
147
- children: children
219
+ const screenListeners = typeof props.screenListeners === 'function' || typeof rest.screenListeners === 'function' ? options => ({
220
+ ...(typeof rest.screenListeners === 'function' ? rest.screenListeners(options) : rest.screenListeners),
221
+ ...(typeof props.screenListeners === 'function' ? props.screenListeners(options) : props.screenListeners)
222
+ }) : {
223
+ ...rest.screenListeners,
224
+ ...props.screenListeners
225
+ };
226
+ return /*#__PURE__*/_jsx(StaticTreeContext.Provider, {
227
+ value: tree,
228
+ children: /*#__PURE__*/_jsx(Navigator, {
229
+ ...rest,
230
+ ...props,
231
+ screenOptions: screenOptions,
232
+ screenListeners: screenListeners,
233
+ children: children
234
+ })
148
235
  });
149
236
  };
150
237
  NavigatorComponent.displayName = displayName;
151
238
  return NavigatorComponent;
152
239
  }
240
+ // Mark screens that resolve to the same pattern and same component or navigator
241
+ const markSharedPathConfigs = (screens, sources, blocked) => {
242
+ const candidates = new Map();
243
+ const collect = (screens, parentParts, disabled) => {
244
+ for (const config of Object.values(screens)) {
245
+ if (config == null || typeof config === 'string') {
246
+ continue;
247
+ }
248
+ const parts = typeof config.path === 'string' ? combinePatternParts(parentParts, getPatternParts(config.path), config.exact) : parentParts;
249
+ if (sources.has(config) && typeof config.path === 'string') {
250
+ if (disabled) {
251
+ blocked.add(config);
252
+ }
253
+ const pattern = parts.map(part => part.segment).join('/');
254
+ const entries = candidates.get(pattern) ?? [];
255
+ entries.push(config);
256
+ candidates.set(pattern, entries);
257
+ }
258
+ if (config.screens) {
259
+ collect(config.screens, parts, disabled || config.shared === false);
260
+ }
261
+ }
262
+ };
263
+ collect(screens, [], false);
264
+ for (const entries of candidates.values()) {
265
+ for (const entry of entries) {
266
+ const source = sources.get(entry);
267
+ if (entry.shared === undefined && !blocked.has(entry) && entries.some(candidate => candidate !== entry && !blocked.has(candidate) && sources.get(candidate) === source)) {
268
+ entry.shared = true;
269
+ }
270
+ }
271
+ }
272
+ };
273
+
153
274
  /**
154
275
  * Create a path config object from a static navigation config for deep linking.
155
276
  *
@@ -172,8 +293,21 @@ export function createComponentForStaticNavigation(tree, displayName) {
172
293
  export function createPathConfigForStaticNavigation(tree, options, auto) {
173
294
  let initialScreenHasPath = false;
174
295
  let initialScreenConfig;
175
- const createPathConfigForTree = (t, o, skipInitialDetection) => {
176
- const createPathConfigForScreens = (screens, groupLinking, initialRouteName) => {
296
+ let hasEmptyPath = false;
297
+ const blocked = new WeakSet();
298
+ const sources = new WeakMap();
299
+ const createPathConfigForTree = (t, o, skipInitialDetection, allowAutoEmptyPath) => {
300
+ const initialRouteName = o?.initialRouteName ?? t.config.initialRouteName;
301
+ if (initialRouteName != null) {
302
+ const routeNames = new Set(Object.keys(t.config.screens ?? {}));
303
+ for (const group of Object.values(t.config.groups ?? {})) {
304
+ Object.keys(group.screens).forEach(name => routeNames.add(name));
305
+ }
306
+ if (!routeNames.has(initialRouteName)) {
307
+ throw new Error(`Couldn't find a screen named '${initialRouteName}' to use as 'initialRouteName'.`);
308
+ }
309
+ }
310
+ const createPathConfigForScreens = (screens, initialRouteName) => {
177
311
  return Object.fromEntries(Object.entries(screens)
178
312
  // Re-order to move the initial route to the front
179
313
  // This way we can detect the initial route correctly
@@ -187,64 +321,78 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
187
321
  return 0;
188
322
  }).map(([key, item]) => {
189
323
  const screenConfig = {};
190
- const groupPath = typeof groupLinking === 'string' ? groupLinking : groupLinking?.path;
191
- const normalizePath = path => {
192
- return `${groupPath ?? ''}/${path}`.replace(/^\//, '') // Remove extra leading slash
193
- .replace(/\/$/, ''); // Remove extra trailing slash
194
- };
195
- if ('linking' in item) {
324
+ sources.set(screenConfig, typeof item === 'object' && 'screen' in item && !hasPropertyGetter(item, 'screen') ? item.screen : item);
325
+ const normalizePath = path => path.replace(/^\/+|\/+$/g, '');
326
+ if ('linking' in item && item.linking !== undefined) {
196
327
  if (typeof item.linking === 'string') {
197
328
  screenConfig.path = item.linking;
198
- } else {
199
- Object.assign(screenConfig, item.linking);
329
+ } else if (item.linking != null && typeof item.linking === 'object') {
330
+ Object.assign(screenConfig, {
331
+ ...item.linking
332
+ });
200
333
  }
201
334
  }
202
- if (typeof groupLinking !== 'string') {
203
- if (groupLinking?.parse != null) {
204
- screenConfig.parse = {
205
- ...groupLinking.parse,
206
- ...screenConfig.parse
207
- };
208
- }
209
- if (groupLinking?.stringify != null) {
210
- screenConfig.stringify = {
211
- ...groupLinking.stringify,
212
- ...screenConfig.stringify
213
- };
214
- }
335
+ if (screenConfig.exact && screenConfig.path == null) {
336
+ throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
215
337
  }
216
338
  if (typeof screenConfig.path === 'string') {
217
339
  screenConfig.path = normalizePath(screenConfig.path);
218
340
  }
341
+ if (screenConfig.alias != null) {
342
+ screenConfig.alias = screenConfig.alias.map(alias => {
343
+ if (typeof alias === 'string') {
344
+ return normalizePath(alias);
345
+ }
346
+ return {
347
+ ...alias,
348
+ path: normalizePath(alias.path)
349
+ };
350
+ });
351
+ }
219
352
  let screens;
353
+ const hasExplicitScreens = 'screens' in screenConfig && screenConfig.screens != null;
354
+ const hasDisabledLinking = 'linking' in item && item.linking === null;
355
+ const childOptions = 'initialRouteName' in screenConfig && typeof screenConfig.initialRouteName === 'string' ? {
356
+ initialRouteName: screenConfig.initialRouteName
357
+ } : undefined;
358
+ if (hasExplicitScreens && childOptions != null && !Object.keys(screenConfig.screens ?? {}).includes(childOptions.initialRouteName)) {
359
+ throw new Error(`Couldn't find a screen named '${childOptions.initialRouteName}' to use as 'initialRouteName'.`);
360
+ }
220
361
  const skipInitialDetectionInChild = skipInitialDetection || screenConfig.path != null && screenConfig.path !== '';
221
- if ('config' in item) {
222
- screens = createPathConfigForTree(item, undefined, skipInitialDetectionInChild);
223
- } else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
224
- screens = createPathConfigForTree(item.screen, undefined, skipInitialDetectionInChild);
362
+ const allowAutoEmptyPathInChild = allowAutoEmptyPath && (initialRouteName == null || key === initialRouteName);
363
+ if (!hasExplicitScreens && !hasDisabledLinking && 'config' in item) {
364
+ screens = createPathConfigForTree(item, childOptions, skipInitialDetectionInChild, allowAutoEmptyPathInChild);
365
+ } else if (!hasExplicitScreens && !hasDisabledLinking && 'screen' in item && !hasPropertyGetter(item, 'screen') && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
366
+ screens = createPathConfigForTree(item.screen, childOptions, skipInitialDetectionInChild, allowAutoEmptyPathInChild);
225
367
  }
226
368
  if (screens) {
227
- // @ts-expect-error - we can't type this properly
228
369
  screenConfig.screens = screens;
229
370
  }
230
371
  if (auto && !('screens' in screenConfig && screenConfig.screens) &&
231
- // Skip generating path for screens that specify linking config as `undefined` or `null` explicitly
232
- !('linking' in item && item.linking == null)) {
372
+ // Skip generating path for screens that specify linking config as `null` explicitly
373
+ !hasDisabledLinking) {
233
374
  if (screenConfig.path != null) {
234
375
  if (!skipInitialDetection) {
235
- if (key === initialRouteName && screenConfig.path != null) {
236
- initialScreenHasPath = true;
237
- } else if (screenConfig.path === '') {
376
+ if (screenConfig.path === '') {
238
377
  // We encounter a leaf screen with empty path,
239
378
  // Clear the initial screen config as it's not needed anymore
240
379
  initialScreenConfig = undefined;
380
+ hasEmptyPath = true;
381
+ if (allowAutoEmptyPath && key === initialRouteName) {
382
+ initialScreenHasPath = true;
383
+ }
384
+ } else if (allowAutoEmptyPath && key === initialRouteName &&
385
+ // Keep an already discovered fallback unless the initial route
386
+ // explicitly uses an empty path.
387
+ initialScreenConfig == null) {
388
+ initialScreenHasPath = true;
241
389
  }
242
390
  }
243
391
  } else {
244
- if (!groupPath && !skipInitialDetection && initialScreenConfig == null) {
392
+ if (!skipInitialDetection && allowAutoEmptyPath && (initialRouteName == null || key === initialRouteName) && !hasEmptyPath && initialScreenConfig == null) {
245
393
  initialScreenConfig = screenConfig;
246
394
  }
247
- screenConfig.path = normalizePath(key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase());
395
+ screenConfig.path = normalizePath(key.replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2').toLowerCase());
248
396
  }
249
397
  }
250
398
  return [key, screenConfig];
@@ -256,11 +404,11 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
256
404
  // So we add the screens and groups in the same order as they are defined
257
405
  for (const key in t.config) {
258
406
  if (key === 'screens' && t.config.screens) {
259
- Object.assign(screens, createPathConfigForScreens(t.config.screens, undefined, o?.initialRouteName ?? t.config.initialRouteName));
407
+ Object.assign(screens, createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName));
260
408
  }
261
409
  if (key === 'groups' && t.config.groups) {
262
410
  Object.entries(t.config.groups).forEach(([, group]) => {
263
- Object.assign(screens, createPathConfigForScreens(group.screens, group.linking, o?.initialRouteName ?? t.config.initialRouteName));
411
+ Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
264
412
  });
265
413
  }
266
414
  }
@@ -269,10 +417,14 @@ export function createPathConfigForStaticNavigation(tree, options, auto) {
269
417
  }
270
418
  return screens;
271
419
  };
272
- const screens = createPathConfigForTree(tree, options, false);
420
+ const screens = createPathConfigForTree(tree, options, false, true);
273
421
  if (auto && initialScreenConfig && !initialScreenHasPath) {
274
422
  initialScreenConfig.path = '';
275
423
  }
424
+ if (!screens) {
425
+ return undefined;
426
+ }
427
+ markSharedPathConfigs(screens, sources, blocked);
276
428
  return screens;
277
429
  }
278
430
  //# sourceMappingURL=StaticNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","tree","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","NavigatorComponent","_","screenOptions","options","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","groupLinking","initialRouteName","fromEntries","sort","a","b","screenConfig","groupPath","path","normalizePath","replace","linking","assign","parse","stringify","skipInitialDetectionInChild","undefined","toLowerCase","filter","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isValidElementType","combinePatternParts","getPatternParts","StaticTreeContext","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","hasPropertyGetter","object","property","Object","getOwnPropertyDescriptor","get","getItemsFromScreens","Screen","screens","entries","map","name","item","props","useIf","isNavigator","getComponent","rest","key","keys","Reflect","if","screen","Error","_if","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","Provider","value","markSharedPathConfigs","sources","blocked","candidates","Map","collect","parentParts","disabled","values","parts","path","exact","has","add","pattern","part","segment","join","set","shared","entry","source","undefined","some","candidate","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","hasEmptyPath","WeakSet","WeakMap","createPathConfigForTree","t","o","skipInitialDetection","allowAutoEmptyPath","initialRouteName","routeNames","Set","forEach","createPathConfigForScreens","fromEntries","sort","a","b","screenConfig","normalizePath","replace","linking","assign","alias","hasExplicitScreens","hasDisabledLinking","childOptions","includes","skipInitialDetectionInChild","allowAutoEmptyPathInChild","toLowerCase","filter"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ export const StaticTreeContext = /*#__PURE__*/React.createContext(undefined);
5
+ //# sourceMappingURL=StaticTreeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StaticTreeContext","createContext","undefined"],"sourceRoot":"../../src","sources":["StaticTreeContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B,OAAO,MAAMC,iBAAiB,gBAAGD,KAAK,CAACE,aAAa,CAElDC,SAAS,CAAC","ignoreList":[]}
@@ -3,14 +3,15 @@
3
3
  import { CommonActions } from '@react-navigation/routers';
4
4
  export const NOT_INITIALIZED_ERROR = "The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.";
5
5
  export function createNavigationContainerRef() {
6
- const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];
6
+ const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'canGoBack', 'getRootState', 'getState', 'getCurrentRoute', 'getCurrentOptions'];
7
7
  const listeners = {};
8
+ let current = null;
8
9
  const removeListener = (event, callback) => {
9
10
  if (listeners[event]) {
10
11
  listeners[event] = listeners[event].filter(cb => cb !== callback);
11
12
  }
13
+ current?.removeListener(event, callback);
12
14
  };
13
- let current = null;
14
15
  const ref = {
15
16
  get current() {
16
17
  return current;
@@ -33,7 +34,10 @@ export function createNavigationContainerRef() {
33
34
  },
34
35
  ...methods.reduce((acc, name) => {
35
36
  acc[name] = (...args) => {
36
- if (current == null) {
37
+ if (name === 'removeListener') {
38
+ const [event, callback] = args;
39
+ removeListener(event, callback);
40
+ } else if (current == null) {
37
41
  switch (name) {
38
42
  case 'addListener':
39
43
  {
@@ -42,12 +46,6 @@ export function createNavigationContainerRef() {
42
46
  listeners[event].push(callback);
43
47
  return () => removeListener(event, callback);
44
48
  }
45
- case 'removeListener':
46
- {
47
- const [event, callback] = args;
48
- removeListener(event, callback);
49
- break;
50
- }
51
49
  default:
52
50
  console.error(NOT_INITIALIZED_ERROR);
53
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AASzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIH,SAAS,CAACE,KAAK,CAAC,EAAE;MACpBF,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;EACF,CAAC;EAED,IAAIG,OAAiD,GAAG,IAAI;EAE5D,MAAMC,GAAiD,GAAG;IACxD,IAAID,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACE,KAA+C,EAAE;MAC3DF,OAAO,GAAGE,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACR,KAAK,EAAES,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEP,QAAQ,IAAK;YAC9BK,KAAK,CAACI,WAAW,CACfV,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDU,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIP,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACO,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAIX,OAAO,IAAI,IAAI,EAAE;UACnB,QAAQU,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACd,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BjB,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,IAAI,EAAE;gBACzCF,SAAS,CAACE,KAAK,CAAC,CAACgB,IAAI,CAACf,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA,KAAK,gBAAgB;cAAE;gBACrB,MAAM,CAACD,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BhB,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;gBAC/B;cACF;YACA;cACEgB,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOW,OAAO,CAACU,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","current","removeListener","event","callback","filter","cb","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AASzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,IAAIC,OAAiD,GAAG,IAAI;EAE5D,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIJ,SAAS,CAACG,KAAK,CAAC,EAAE;MACpBH,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;IAEAH,OAAO,EAAEC,cAAc,CACrBC,KAAK,EACLC,QACF,CAAC;EACH,CAAC;EAED,MAAMG,GAAiD,GAAG;IACxD,IAAIN,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACO,KAA+C,EAAE;MAC3DP,OAAO,GAAGO,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACP,KAAK,EAAEQ,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEN,QAAQ,IAAK;YAC9BI,KAAK,CAACI,WAAW,CACfT,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDS,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIZ,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACY,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAID,IAAI,KAAK,gBAAgB,EAAE;UAC7B,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;UAE9Bf,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;QACjC,CAAC,MAAM,IAAIH,OAAO,IAAI,IAAI,EAAE;UAC1B,QAAQe,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACb,KAAK,EAAEC,QAAQ,CAAC,GAAGa,IAAI;gBAE9BjB,SAAS,CAACG,KAAK,CAAC,GAAGH,SAAS,CAACG,KAAK,CAAC,IAAI,EAAE;gBACzCH,SAAS,CAACG,KAAK,CAAC,CAACe,IAAI,CAACd,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA;cACEe,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOM,OAAO,CAACe,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
@@ -1,23 +1,45 @@
1
1
  "use strict";
2
2
 
3
+ import * as React from 'react';
3
4
  import { Group } from "./Group.js";
4
5
  import { Screen } from "./Screen.js";
5
-
6
+ import { createComponentForStaticConfig } from "./StaticNavigation.js";
6
7
  /**
7
- * Higher order component to create a `Navigator` and `Screen` pair.
8
- * Custom navigators should wrap the navigator component in `createNavigator` before exporting.
8
+ * Higher order function to create a navigator factory
9
+ * A navigator factory creates a navigator:
10
+ * - `Navigator` and `Screen` pairs for dynamic configuration
11
+ * - Static navigator object for static configuration
9
12
  *
10
13
  * @param Navigator The navigator component to wrap.
11
- * @returns Factory method to create a `Navigator` and `Screen` pair.
14
+ * @returns Factory method to create a navigator
12
15
  */
13
16
  export function createNavigatorFactory(Navigator) {
17
+ const displayName = Navigator.displayName ?? Navigator.name ?? 'Navigator';
14
18
  function createNavigator(config) {
15
19
  if (config != null) {
16
- return {
20
+ const NavigatorComponent = createComponentForStaticConfig({
17
21
  Navigator,
18
22
  Screen,
19
23
  Group,
20
24
  config
25
+ }, displayName);
26
+ return {
27
+ config,
28
+ with(DecoratorComponent) {
29
+ const WithComponent = () => {
30
+ return /*#__PURE__*/React.createElement(DecoratorComponent, {
31
+ Navigator: NavigatorComponent
32
+ });
33
+ };
34
+ WithComponent.displayName = `${displayName}With`;
35
+ return {
36
+ config,
37
+ getComponent: () => WithComponent
38
+ };
39
+ },
40
+ getComponent() {
41
+ return NavigatorComponent;
42
+ }
21
43
  };
22
44
  }
23
45
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["Group","Screen","createNavigatorFactory","Navigator","createNavigator","config"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AAEA,SAASA,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,SAAmC,EAAE;EAC1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,OAAO;QACLF,SAAS;QACTF,MAAM;QACND,KAAK;QACLK;MACF,CAAC;IACH;IAEA,OAAO;MACLF,SAAS;MACTF,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOI,eAAe;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAIzB,uBAAoB;AA6C3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
@@ -2,10 +2,13 @@
2
2
 
3
3
  export function findFocusedRoute(state) {
4
4
  let current = state;
5
- while (current?.routes[current.index ?? 0].state != null) {
6
- current = current.routes[current.index ?? 0].state;
5
+ while (current != null) {
6
+ const route = current.routes[current.index ?? current.routes.length - 1];
7
+ if (route?.state == null) {
8
+ return route;
9
+ }
10
+ current = route.state;
7
11
  }
8
- const route = current?.routes[current?.index ?? 0];
9
- return route;
12
+ return undefined;
10
13
  }
11
14
  //# sourceMappingURL=findFocusedRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":";;AAWA,OAAO,SAASA,gBAAgBA,CAACC,KAAmB,EAAU;EAC5D,IAAIC,OAAiC,GAAGD,KAAK;EAE7C,OAAOC,OAAO,EAAEC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK,IAAI,IAAI,EAAE;IACxDC,OAAO,GAAGA,OAAO,CAACC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK;EACpD;EAEA,MAAMI,KAAK,GAAGH,OAAO,EAAEC,MAAM,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,CAAC;EAElD,OAAOC,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["findFocusedRoute","state","current","route","routes","index","length","undefined"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":";;AAIA,OAAO,SAASA,gBAAgBA,CAC9BC,KAAY,EACyB;EACrC,IAAIC,OAA0B,GAAGD,KAAK;EAEtC,OAAOC,OAAO,IAAI,IAAI,EAAE;IACtB,MAAMC,KAA0C,GAC9CD,OAAO,CAACE,MAAM,CAACF,OAAO,CAACG,KAAK,IAAIH,OAAO,CAACE,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC;IAE5D,IAAIH,KAAK,EAAEF,KAAK,IAAI,IAAI,EAAE;MACxB,OAAOE,KAAK;IACd;IAEAD,OAAO,GAAGC,KAAK,CAACF,KAAK;EACvB;EAEA,OAAOM,SAAS;AAClB","ignoreList":[]}