@react-navigation/core 6.4.3 → 6.4.5

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 (351) hide show
  1. package/lib/commonjs/BaseNavigationContainer.js +17 -69
  2. package/lib/commonjs/BaseNavigationContainer.js.map +1 -1
  3. package/lib/commonjs/CurrentRenderContext.js +0 -4
  4. package/lib/commonjs/CurrentRenderContext.js.map +1 -1
  5. package/lib/commonjs/EnsureSingleNavigator.js +1 -12
  6. package/lib/commonjs/EnsureSingleNavigator.js.map +1 -1
  7. package/lib/commonjs/Group.js +0 -1
  8. package/lib/commonjs/Group.js.map +1 -1
  9. package/lib/commonjs/NavigationBuilderContext.js +0 -4
  10. package/lib/commonjs/NavigationBuilderContext.js.map +1 -1
  11. package/lib/commonjs/NavigationContainerRefContext.js +0 -4
  12. package/lib/commonjs/NavigationContainerRefContext.js.map +1 -1
  13. package/lib/commonjs/NavigationContext.js +0 -4
  14. package/lib/commonjs/NavigationContext.js.map +1 -1
  15. package/lib/commonjs/NavigationHelpersContext.js +0 -4
  16. package/lib/commonjs/NavigationHelpersContext.js.map +1 -1
  17. package/lib/commonjs/NavigationRouteContext.js +0 -4
  18. package/lib/commonjs/NavigationRouteContext.js.map +1 -1
  19. package/lib/commonjs/NavigationStateContext.js +0 -12
  20. package/lib/commonjs/NavigationStateContext.js.map +1 -1
  21. package/lib/commonjs/PreventRemoveContext.js +0 -4
  22. package/lib/commonjs/PreventRemoveContext.js.map +1 -1
  23. package/lib/commonjs/PreventRemoveProvider.js +3 -21
  24. package/lib/commonjs/PreventRemoveProvider.js.map +1 -1
  25. package/lib/commonjs/SceneView.js +8 -13
  26. package/lib/commonjs/SceneView.js.map +1 -1
  27. package/lib/commonjs/Screen.js +0 -1
  28. package/lib/commonjs/Screen.js.map +1 -1
  29. package/lib/commonjs/StaticContainer.js +0 -10
  30. package/lib/commonjs/StaticContainer.js.map +1 -1
  31. package/lib/commonjs/UnhandledActionContext.js +0 -4
  32. package/lib/commonjs/UnhandledActionContext.js.map +1 -1
  33. package/lib/commonjs/checkDuplicateRouteNames.js +0 -5
  34. package/lib/commonjs/checkDuplicateRouteNames.js.map +1 -1
  35. package/lib/commonjs/checkSerializable.js +0 -9
  36. package/lib/commonjs/checkSerializable.js.map +1 -1
  37. package/lib/commonjs/createNavigationContainerRef.js +0 -13
  38. package/lib/commonjs/createNavigationContainerRef.js.map +1 -1
  39. package/lib/commonjs/createNavigatorFactory.js +0 -5
  40. package/lib/commonjs/createNavigatorFactory.js.map +1 -1
  41. package/lib/commonjs/findFocusedRoute.js +5 -10
  42. package/lib/commonjs/findFocusedRoute.js.map +1 -1
  43. package/lib/commonjs/fromEntries.js +0 -3
  44. package/lib/commonjs/fromEntries.js.map +1 -1
  45. package/lib/commonjs/getActionFromState.js +11 -22
  46. package/lib/commonjs/getActionFromState.js.map +1 -1
  47. package/lib/commonjs/getFocusedRouteNameFromRoute.js +7 -8
  48. package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +1 -1
  49. package/lib/commonjs/getPathFromState.js +25 -55
  50. package/lib/commonjs/getPathFromState.js.map +1 -1
  51. package/lib/commonjs/getStateFromPath.js +48 -105
  52. package/lib/commonjs/getStateFromPath.js.map +1 -1
  53. package/lib/commonjs/index.js +0 -30
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/isArrayEqual.js +0 -3
  56. package/lib/commonjs/isArrayEqual.js.map +1 -1
  57. package/lib/commonjs/isRecordEqual.js +0 -4
  58. package/lib/commonjs/isRecordEqual.js.map +1 -1
  59. package/lib/commonjs/types.js +3 -5
  60. package/lib/commonjs/types.js.map +1 -1
  61. package/lib/commonjs/useChildListeners.js +0 -5
  62. package/lib/commonjs/useChildListeners.js.map +1 -1
  63. package/lib/commonjs/useComponent.js +3 -9
  64. package/lib/commonjs/useComponent.js.map +1 -1
  65. package/lib/commonjs/useCurrentRender.js +0 -7
  66. package/lib/commonjs/useCurrentRender.js.map +1 -1
  67. package/lib/commonjs/useDescriptors.js +11 -21
  68. package/lib/commonjs/useDescriptors.js.map +1 -1
  69. package/lib/commonjs/useEventEmitter.js +2 -24
  70. package/lib/commonjs/useEventEmitter.js.map +1 -1
  71. package/lib/commonjs/useFocusEffect.js +2 -20
  72. package/lib/commonjs/useFocusEffect.js.map +1 -1
  73. package/lib/commonjs/useFocusEvents.js +9 -15
  74. package/lib/commonjs/useFocusEvents.js.map +1 -1
  75. package/lib/commonjs/useFocusedListenersChildrenAdapter.js +0 -8
  76. package/lib/commonjs/useFocusedListenersChildrenAdapter.js.map +1 -1
  77. package/lib/commonjs/useIsFocused.js +0 -8
  78. package/lib/commonjs/useIsFocused.js.map +1 -1
  79. package/lib/commonjs/useKeyedChildListeners.js +0 -4
  80. package/lib/commonjs/useKeyedChildListeners.js.map +1 -1
  81. package/lib/commonjs/useNavigation.js +3 -11
  82. package/lib/commonjs/useNavigation.js.map +1 -1
  83. package/lib/commonjs/useNavigationBuilder.js +34 -91
  84. package/lib/commonjs/useNavigationBuilder.js.map +1 -1
  85. package/lib/commonjs/useNavigationCache.js +18 -30
  86. package/lib/commonjs/useNavigationCache.js.map +1 -1
  87. package/lib/commonjs/useNavigationContainerRef.js +0 -8
  88. package/lib/commonjs/useNavigationContainerRef.js.map +1 -1
  89. package/lib/commonjs/useNavigationHelpers.js +4 -18
  90. package/lib/commonjs/useNavigationHelpers.js.map +1 -1
  91. package/lib/commonjs/useNavigationState.js +5 -9
  92. package/lib/commonjs/useNavigationState.js.map +1 -1
  93. package/lib/commonjs/useOnAction.js +8 -25
  94. package/lib/commonjs/useOnAction.js.map +1 -1
  95. package/lib/commonjs/useOnGetState.js +6 -16
  96. package/lib/commonjs/useOnGetState.js.map +1 -1
  97. package/lib/commonjs/useOnPreventRemove.js +9 -24
  98. package/lib/commonjs/useOnPreventRemove.js.map +1 -1
  99. package/lib/commonjs/useOnRouteFocus.js +0 -8
  100. package/lib/commonjs/useOnRouteFocus.js.map +1 -1
  101. package/lib/commonjs/useOptionsGetters.js +5 -24
  102. package/lib/commonjs/useOptionsGetters.js.map +1 -1
  103. package/lib/commonjs/usePreventRemove.js +0 -11
  104. package/lib/commonjs/usePreventRemove.js.map +1 -1
  105. package/lib/commonjs/usePreventRemoveContext.js +0 -8
  106. package/lib/commonjs/usePreventRemoveContext.js.map +1 -1
  107. package/lib/commonjs/useRegisterNavigator.js +0 -8
  108. package/lib/commonjs/useRegisterNavigator.js.map +1 -1
  109. package/lib/commonjs/useRoute.js +0 -8
  110. package/lib/commonjs/useRoute.js.map +1 -1
  111. package/lib/commonjs/useRouteCache.js +1 -10
  112. package/lib/commonjs/useRouteCache.js.map +1 -1
  113. package/lib/commonjs/useScheduleUpdate.js +1 -8
  114. package/lib/commonjs/useScheduleUpdate.js.map +1 -1
  115. package/lib/commonjs/useSyncState.js +9 -17
  116. package/lib/commonjs/useSyncState.js.map +1 -1
  117. package/lib/commonjs/validatePathConfig.js +0 -7
  118. package/lib/commonjs/validatePathConfig.js.map +1 -1
  119. package/lib/module/BaseNavigationContainer.js +17 -46
  120. package/lib/module/BaseNavigationContainer.js.map +1 -1
  121. package/lib/module/CurrentRenderContext.js +1 -1
  122. package/lib/module/CurrentRenderContext.js.map +1 -1
  123. package/lib/module/EnsureSingleNavigator.js +1 -7
  124. package/lib/module/EnsureSingleNavigator.js.map +1 -1
  125. package/lib/module/Group.js.map +1 -1
  126. package/lib/module/NavigationBuilderContext.js +0 -1
  127. package/lib/module/NavigationBuilderContext.js.map +1 -1
  128. package/lib/module/NavigationContainerRefContext.js +0 -1
  129. package/lib/module/NavigationContainerRefContext.js.map +1 -1
  130. package/lib/module/NavigationContext.js +0 -1
  131. package/lib/module/NavigationContext.js.map +1 -1
  132. package/lib/module/NavigationHelpersContext.js +0 -1
  133. package/lib/module/NavigationHelpersContext.js.map +1 -1
  134. package/lib/module/NavigationRouteContext.js +1 -1
  135. package/lib/module/NavigationRouteContext.js.map +1 -1
  136. package/lib/module/NavigationStateContext.js +0 -6
  137. package/lib/module/NavigationStateContext.js.map +1 -1
  138. package/lib/module/PreventRemoveContext.js +1 -0
  139. package/lib/module/PreventRemoveContext.js.map +1 -1
  140. package/lib/module/PreventRemoveProvider.js +3 -12
  141. package/lib/module/PreventRemoveProvider.js.map +1 -1
  142. package/lib/module/SceneView.js +8 -5
  143. package/lib/module/SceneView.js.map +1 -1
  144. package/lib/module/Screen.js.map +1 -1
  145. package/lib/module/StaticContainer.js +1 -6
  146. package/lib/module/StaticContainer.js.map +1 -1
  147. package/lib/module/UnhandledActionContext.js.map +1 -1
  148. package/lib/module/checkDuplicateRouteNames.js +0 -4
  149. package/lib/module/checkDuplicateRouteNames.js.map +1 -1
  150. package/lib/module/checkSerializable.js +0 -8
  151. package/lib/module/checkSerializable.js.map +1 -1
  152. package/lib/module/createNavigationContainerRef.js +0 -10
  153. package/lib/module/createNavigationContainerRef.js.map +1 -1
  154. package/lib/module/createNavigatorFactory.js +0 -2
  155. package/lib/module/createNavigatorFactory.js.map +1 -1
  156. package/lib/module/findFocusedRoute.js +5 -9
  157. package/lib/module/findFocusedRoute.js.map +1 -1
  158. package/lib/module/fromEntries.js +0 -2
  159. package/lib/module/fromEntries.js.map +1 -1
  160. package/lib/module/getActionFromState.js +11 -21
  161. package/lib/module/getActionFromState.js.map +1 -1
  162. package/lib/module/getFocusedRouteNameFromRoute.js +7 -6
  163. package/lib/module/getFocusedRouteNameFromRoute.js.map +1 -1
  164. package/lib/module/getPathFromState.js +25 -49
  165. package/lib/module/getPathFromState.js.map +1 -1
  166. package/lib/module/getStateFromPath.js +48 -98
  167. package/lib/module/getStateFromPath.js.map +1 -1
  168. package/lib/module/index.js.map +1 -1
  169. package/lib/module/isArrayEqual.js +0 -2
  170. package/lib/module/isArrayEqual.js.map +1 -1
  171. package/lib/module/isRecordEqual.js +0 -3
  172. package/lib/module/isRecordEqual.js.map +1 -1
  173. package/lib/module/types.js +3 -3
  174. package/lib/module/types.js.map +1 -1
  175. package/lib/module/useChildListeners.js +0 -2
  176. package/lib/module/useChildListeners.js.map +1 -1
  177. package/lib/module/useComponent.js +3 -6
  178. package/lib/module/useComponent.js.map +1 -1
  179. package/lib/module/useCurrentRender.js +0 -2
  180. package/lib/module/useCurrentRender.js.map +1 -1
  181. package/lib/module/useDescriptors.js +11 -11
  182. package/lib/module/useDescriptors.js.map +1 -1
  183. package/lib/module/useEventEmitter.js +2 -21
  184. package/lib/module/useEventEmitter.js.map +1 -1
  185. package/lib/module/useFocusEffect.js +2 -15
  186. package/lib/module/useFocusEffect.js.map +1 -1
  187. package/lib/module/useFocusEvents.js +9 -10
  188. package/lib/module/useFocusEvents.js.map +1 -1
  189. package/lib/module/useFocusedListenersChildrenAdapter.js +0 -3
  190. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  191. package/lib/module/useIsFocused.js +1 -3
  192. package/lib/module/useIsFocused.js.map +1 -1
  193. package/lib/module/useKeyedChildListeners.js +0 -1
  194. package/lib/module/useKeyedChildListeners.js.map +1 -1
  195. package/lib/module/useNavigation.js +3 -5
  196. package/lib/module/useNavigation.js.map +1 -1
  197. package/lib/module/useNavigationBuilder.js +37 -63
  198. package/lib/module/useNavigationBuilder.js.map +1 -1
  199. package/lib/module/useNavigationCache.js +18 -24
  200. package/lib/module/useNavigationCache.js.map +1 -1
  201. package/lib/module/useNavigationContainerRef.js +0 -2
  202. package/lib/module/useNavigationContainerRef.js.map +1 -1
  203. package/lib/module/useNavigationHelpers.js +4 -9
  204. package/lib/module/useNavigationHelpers.js.map +1 -1
  205. package/lib/module/useNavigationState.js +5 -4
  206. package/lib/module/useNavigationState.js.map +1 -1
  207. package/lib/module/useOnAction.js +8 -19
  208. package/lib/module/useOnAction.js.map +1 -1
  209. package/lib/module/useOnGetState.js +6 -8
  210. package/lib/module/useOnGetState.js.map +1 -1
  211. package/lib/module/useOnPreventRemove.js +9 -14
  212. package/lib/module/useOnPreventRemove.js.map +1 -1
  213. package/lib/module/useOnRouteFocus.js +0 -3
  214. package/lib/module/useOnRouteFocus.js.map +1 -1
  215. package/lib/module/useOptionsGetters.js +5 -17
  216. package/lib/module/useOptionsGetters.js.map +1 -1
  217. package/lib/module/usePreventRemove.js +1 -2
  218. package/lib/module/usePreventRemove.js.map +1 -1
  219. package/lib/module/usePreventRemoveContext.js +0 -2
  220. package/lib/module/usePreventRemoveContext.js.map +1 -1
  221. package/lib/module/useRegisterNavigator.js +1 -3
  222. package/lib/module/useRegisterNavigator.js.map +1 -1
  223. package/lib/module/useRoute.js +0 -3
  224. package/lib/module/useRoute.js.map +1 -1
  225. package/lib/module/useRouteCache.js +1 -6
  226. package/lib/module/useRouteCache.js.map +1 -1
  227. package/lib/module/useScheduleUpdate.js +1 -3
  228. package/lib/module/useScheduleUpdate.js.map +1 -1
  229. package/lib/module/useSyncState.js +9 -13
  230. package/lib/module/useSyncState.js.map +1 -1
  231. package/lib/module/validatePathConfig.js +0 -6
  232. package/lib/module/validatePathConfig.js.map +1 -1
  233. package/lib/typescript/src/BaseNavigationContainer.d.ts +1 -0
  234. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -0
  235. package/lib/typescript/src/CurrentRenderContext.d.ts +1 -0
  236. package/lib/typescript/src/CurrentRenderContext.d.ts.map +1 -0
  237. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -0
  238. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -0
  239. package/lib/typescript/src/Group.d.ts +1 -0
  240. package/lib/typescript/src/Group.d.ts.map +1 -0
  241. package/lib/typescript/src/NavigationBuilderContext.d.ts +1 -0
  242. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -0
  243. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -0
  244. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -0
  245. package/lib/typescript/src/NavigationContext.d.ts +1 -0
  246. package/lib/typescript/src/NavigationContext.d.ts.map +1 -0
  247. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -0
  248. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -0
  249. package/lib/typescript/src/NavigationRouteContext.d.ts +1 -0
  250. package/lib/typescript/src/NavigationRouteContext.d.ts.map +1 -0
  251. package/lib/typescript/src/NavigationStateContext.d.ts +1 -0
  252. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -0
  253. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  254. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -0
  255. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -0
  256. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -0
  257. package/lib/typescript/src/SceneView.d.ts +1 -0
  258. package/lib/typescript/src/SceneView.d.ts.map +1 -0
  259. package/lib/typescript/src/Screen.d.ts +1 -0
  260. package/lib/typescript/src/Screen.d.ts.map +1 -0
  261. package/lib/typescript/src/StaticContainer.d.ts +1 -0
  262. package/lib/typescript/src/StaticContainer.d.ts.map +1 -0
  263. package/lib/typescript/src/UnhandledActionContext.d.ts +1 -0
  264. package/lib/typescript/src/UnhandledActionContext.d.ts.map +1 -0
  265. package/lib/typescript/src/checkDuplicateRouteNames.d.ts +1 -0
  266. package/lib/typescript/src/checkDuplicateRouteNames.d.ts.map +1 -0
  267. package/lib/typescript/src/checkSerializable.d.ts +1 -0
  268. package/lib/typescript/src/checkSerializable.d.ts.map +1 -0
  269. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -0
  270. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -0
  271. package/lib/typescript/src/createNavigatorFactory.d.ts +1 -0
  272. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -0
  273. package/lib/typescript/src/findFocusedRoute.d.ts +1 -0
  274. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -0
  275. package/lib/typescript/src/fromEntries.d.ts +1 -0
  276. package/lib/typescript/src/fromEntries.d.ts.map +1 -0
  277. package/lib/typescript/src/getActionFromState.d.ts +1 -0
  278. package/lib/typescript/src/getActionFromState.d.ts.map +1 -0
  279. package/lib/typescript/src/getFocusedRouteNameFromRoute.d.ts +1 -0
  280. package/lib/typescript/src/getFocusedRouteNameFromRoute.d.ts.map +1 -0
  281. package/lib/typescript/src/getPathFromState.d.ts +1 -0
  282. package/lib/typescript/src/getPathFromState.d.ts.map +1 -0
  283. package/lib/typescript/src/getStateFromPath.d.ts +1 -0
  284. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -0
  285. package/lib/typescript/src/index.d.ts +1 -0
  286. package/lib/typescript/src/index.d.ts.map +1 -0
  287. package/lib/typescript/src/isArrayEqual.d.ts +1 -0
  288. package/lib/typescript/src/isArrayEqual.d.ts.map +1 -0
  289. package/lib/typescript/src/isRecordEqual.d.ts +1 -0
  290. package/lib/typescript/src/isRecordEqual.d.ts.map +1 -0
  291. package/lib/typescript/src/types.d.ts +1 -0
  292. package/lib/typescript/src/types.d.ts.map +1 -0
  293. package/lib/typescript/src/useChildListeners.d.ts +1 -0
  294. package/lib/typescript/src/useChildListeners.d.ts.map +1 -0
  295. package/lib/typescript/src/useComponent.d.ts +1 -0
  296. package/lib/typescript/src/useComponent.d.ts.map +1 -0
  297. package/lib/typescript/src/useCurrentRender.d.ts +1 -0
  298. package/lib/typescript/src/useCurrentRender.d.ts.map +1 -0
  299. package/lib/typescript/src/useDescriptors.d.ts +1 -0
  300. package/lib/typescript/src/useDescriptors.d.ts.map +1 -0
  301. package/lib/typescript/src/useEventEmitter.d.ts +1 -0
  302. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -0
  303. package/lib/typescript/src/useFocusEffect.d.ts +1 -0
  304. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -0
  305. package/lib/typescript/src/useFocusEvents.d.ts +1 -0
  306. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -0
  307. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +1 -0
  308. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -0
  309. package/lib/typescript/src/useIsFocused.d.ts +1 -0
  310. package/lib/typescript/src/useIsFocused.d.ts.map +1 -0
  311. package/lib/typescript/src/useKeyedChildListeners.d.ts +1 -0
  312. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -0
  313. package/lib/typescript/src/useNavigation.d.ts +1 -0
  314. package/lib/typescript/src/useNavigation.d.ts.map +1 -0
  315. package/lib/typescript/src/useNavigationBuilder.d.ts +1 -0
  316. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -0
  317. package/lib/typescript/src/useNavigationCache.d.ts +1 -0
  318. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -0
  319. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -0
  320. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -0
  321. package/lib/typescript/src/useNavigationHelpers.d.ts +1 -0
  322. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -0
  323. package/lib/typescript/src/useNavigationState.d.ts +1 -0
  324. package/lib/typescript/src/useNavigationState.d.ts.map +1 -0
  325. package/lib/typescript/src/useOnAction.d.ts +1 -0
  326. package/lib/typescript/src/useOnAction.d.ts.map +1 -0
  327. package/lib/typescript/src/useOnGetState.d.ts +1 -0
  328. package/lib/typescript/src/useOnGetState.d.ts.map +1 -0
  329. package/lib/typescript/src/useOnPreventRemove.d.ts +1 -0
  330. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -0
  331. package/lib/typescript/src/useOnRouteFocus.d.ts +1 -0
  332. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -0
  333. package/lib/typescript/src/useOptionsGetters.d.ts +1 -0
  334. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -0
  335. package/lib/typescript/src/usePreventRemove.d.ts +1 -0
  336. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -0
  337. package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -0
  338. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -0
  339. package/lib/typescript/src/useRegisterNavigator.d.ts +1 -0
  340. package/lib/typescript/src/useRegisterNavigator.d.ts.map +1 -0
  341. package/lib/typescript/src/useRoute.d.ts +1 -0
  342. package/lib/typescript/src/useRoute.d.ts.map +1 -0
  343. package/lib/typescript/src/useRouteCache.d.ts +1 -0
  344. package/lib/typescript/src/useRouteCache.d.ts.map +1 -0
  345. package/lib/typescript/src/useScheduleUpdate.d.ts +1 -0
  346. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -0
  347. package/lib/typescript/src/useSyncState.d.ts +1 -0
  348. package/lib/typescript/src/useSyncState.d.ts.map +1 -0
  349. package/lib/typescript/src/validatePathConfig.d.ts +1 -0
  350. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -0
  351. package/package.json +5 -5
@@ -1,49 +1,43 @@
1
1
  export default function getActionFromState(state, options) {
2
- var _state$index, _normalizedConfig$scr;
3
-
2
+ var _normalizedConfig$scr;
4
3
  // Create a normalized configs object which will be easier to use
5
4
  const normalizedConfig = options ? createNormalizedConfigItem(options) : {};
6
5
  const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;
7
-
8
6
  if (routes.length === 0) {
9
7
  return undefined;
10
8
  }
11
-
12
9
  if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === (normalizedConfig === null || normalizedConfig === void 0 ? void 0 : normalizedConfig.initialRouteName) && routes[1].key === undefined)) {
13
10
  return {
14
11
  type: 'RESET',
15
12
  payload: state
16
13
  };
17
14
  }
18
-
19
- const route = state.routes[(_state$index = state.index) !== null && _state$index !== void 0 ? _state$index : state.routes.length - 1];
15
+ const route = state.routes[state.index ?? state.routes.length - 1];
20
16
  let current = route === null || route === void 0 ? void 0 : route.state;
21
17
  let config = normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig$scr = normalizedConfig.screens) === null || _normalizedConfig$scr === void 0 ? void 0 : _normalizedConfig$scr[route === null || route === void 0 ? void 0 : route.name];
22
- let params = { ...route.params
18
+ let params = {
19
+ ...route.params
23
20
  };
24
21
  let payload = route ? {
25
22
  name: route.name,
26
23
  path: route.path,
27
24
  params
28
25
  } : undefined;
29
-
30
26
  while (current) {
31
27
  var _config, _config2, _config2$screens;
32
-
33
28
  if (current.routes.length === 0) {
34
29
  return undefined;
35
30
  }
36
-
37
31
  const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;
38
- const route = routes[routes.length - 1]; // Explicitly set to override existing value when merging params
32
+ const route = routes[routes.length - 1];
39
33
 
34
+ // Explicitly set to override existing value when merging params
40
35
  Object.assign(params, {
41
36
  initial: undefined,
42
37
  screen: undefined,
43
38
  params: undefined,
44
39
  state: undefined
45
40
  });
46
-
47
41
  if (routes.length === 1 && routes[0].key === undefined) {
48
42
  params.initial = true;
49
43
  params.screen = route.name;
@@ -54,37 +48,33 @@ export default function getActionFromState(state, options) {
54
48
  params.state = current;
55
49
  break;
56
50
  }
57
-
58
51
  if (route.state) {
59
- params.params = { ...route.params
52
+ params.params = {
53
+ ...route.params
60
54
  };
61
55
  params = params.params;
62
56
  } else {
63
57
  params.path = route.path;
64
58
  params.params = route.params;
65
59
  }
66
-
67
60
  current = route.state;
68
61
  config = (_config2 = config) === null || _config2 === void 0 ? void 0 : (_config2$screens = _config2.screens) === null || _config2$screens === void 0 ? void 0 : _config2$screens[route.name];
69
62
  }
70
-
71
63
  if (!payload) {
72
64
  return;
73
- } // Try to construct payload for a `NAVIGATE` action from the state
74
- // This lets us preserve the navigation state and not lose it
75
-
65
+ }
76
66
 
67
+ // Try to construct payload for a `NAVIGATE` action from the state
68
+ // This lets us preserve the navigation state and not lose it
77
69
  return {
78
70
  type: 'NAVIGATE',
79
71
  payload
80
72
  };
81
73
  }
82
-
83
74
  const createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {
84
75
  initialRouteName: config.initialRouteName,
85
76
  screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined
86
77
  } : {};
87
-
88
78
  const createNormalizedConfigs = options => Object.entries(options).reduce((acc, _ref) => {
89
79
  let [k, v] = _ref;
90
80
  acc[k] = createNormalizedConfigItem(v);
@@ -1 +1 @@
1
- {"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sources":["getActionFromState.tsx"],"sourcesContent":["import type {\n CommonActions,\n NavigationState,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n} from '@react-navigation/routers';\n\nimport type { NavigatorScreenParams, PathConfig, PathConfigMap } from './types';\n\ntype ConfigItem = {\n initialRouteName?: string;\n screens?: Record<string, ConfigItem>;\n};\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap<object>;\n};\n\ntype NavigateAction<State extends NavigationState> = {\n type: 'NAVIGATE';\n payload: {\n name: string;\n params?: NavigatorScreenParams<State>;\n path?: string;\n };\n};\n\nexport default function getActionFromState(\n state: PartialState<NavigationState>,\n options?: Options\n): NavigateAction<NavigationState> | CommonActions.Action | undefined {\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options\n ? createNormalizedConfigItem(options as PathConfig<object> | string)\n : {};\n\n const routes =\n state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n\n if (routes.length === 0) {\n return undefined;\n }\n\n if (\n !(\n (routes.length === 1 && routes[0].key === undefined) ||\n (routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === normalizedConfig?.initialRouteName &&\n routes[1].key === undefined)\n )\n ) {\n return {\n type: 'RESET',\n payload: state,\n };\n }\n\n const route = state.routes[state.index ?? state.routes.length - 1];\n\n let current: PartialState<NavigationState> | undefined = route?.state;\n let config: ConfigItem | undefined = normalizedConfig?.screens?.[route?.name];\n let params = { ...route.params } as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n\n let payload = route\n ? { name: route.name, path: route.path, params }\n : undefined;\n\n while (current) {\n if (current.routes.length === 0) {\n return undefined;\n }\n\n const routes =\n current.index != null\n ? current.routes.slice(0, current.index + 1)\n : current.routes;\n\n const route: Route<string> | PartialRoute<Route<string>> =\n routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined,\n });\n\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (\n routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === config?.initialRouteName &&\n routes[1].key === undefined\n ) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n\n if (route.state) {\n params.params = { ...route.params };\n params = params.params as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n\n current = route.state;\n config = config?.screens?.[route.name];\n }\n\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload,\n };\n}\n\nconst createNormalizedConfigItem = (config: PathConfig<object> | string) =>\n typeof config === 'object' && config != null\n ? {\n initialRouteName: config.initialRouteName,\n screens:\n config.screens != null\n ? createNormalizedConfigs(config.screens)\n : undefined,\n }\n : {};\n\nconst createNormalizedConfigs = (options: PathConfigMap<object>) =>\n Object.entries(options).reduce<Record<string, ConfigItem>>((acc, [k, v]) => {\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n }, {});\n"],"mappings":"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"}
1
+ {"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { CHILD_STATE } from './useRouteCache';
2
2
  export default function getFocusedRouteNameFromRoute(route) {
3
- var _route$CHILD_STATE, _state$index;
4
-
5
3
  // @ts-expect-error: this isn't in type definitions coz we want this private
6
- const state = (_route$CHILD_STATE = route[CHILD_STATE]) !== null && _route$CHILD_STATE !== void 0 ? _route$CHILD_STATE : route.state;
4
+ const state = route[CHILD_STATE] ?? route.state;
7
5
  const params = route.params;
8
- const routeName = state ? // Get the currently active route name in the nested navigator
9
- state.routes[// If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack
6
+ const routeName = state ?
7
+ // Get the currently active route name in the nested navigator
8
+ state.routes[
9
+ // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack
10
10
  // The type property will only exist for rehydrated state and not for state from deep link
11
- (_state$index = state.index) !== null && _state$index !== void 0 ? _state$index : typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1].name : // If state doesn't exist, we need to default to `screen` param if available
11
+ state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :
12
+ // If state doesn't exist, we need to default to `screen` param if available
12
13
  typeof (params === null || params === void 0 ? void 0 : params.screen) === 'string' ? params.screen : undefined;
13
14
  return routeName;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CHILD_STATE","getFocusedRouteNameFromRoute","route","state","params","routeName","routes","index","type","length","name","screen","undefined"],"sources":["getFocusedRouteNameFromRoute.tsx"],"sourcesContent":["import type { Route } from '@react-navigation/routers';\n\nimport { CHILD_STATE } from './useRouteCache';\n\nexport default function getFocusedRouteNameFromRoute(\n route: Partial<Route<string>>\n): string | undefined {\n // @ts-expect-error: this isn't in type definitions coz we want this private\n const state = route[CHILD_STATE] ?? route.state;\n const params = route.params as { screen?: unknown } | undefined;\n\n const routeName = state\n ? // Get the currently active route name in the nested navigator\n state.routes[\n // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack\n // The type property will only exist for rehydrated state and not for state from deep link\n state.index ??\n (typeof state.type === 'string' && state.type !== 'stack'\n ? 0\n : state.routes.length - 1)\n ].name\n : // If state doesn't exist, we need to default to `screen` param if available\n typeof params?.screen === 'string'\n ? params.screen\n : undefined;\n\n return routeName;\n}\n"],"mappings":"AAEA,SAASA,WAAT,QAA4B,iBAA5B;AAEA,eAAe,SAASC,4BAAT,CACbC,KADa,EAEO;EAAA;;EACpB;EACA,MAAMC,KAAK,yBAAGD,KAAK,CAACF,WAAD,CAAR,mEAAyBE,KAAK,CAACC,KAA1C;EACA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAArB;EAEA,MAAMC,SAAS,GAAGF,KAAK,GACnB;EACAA,KAAK,CAACG,MAAN,CACE;EACA;EAFF,gBAGEH,KAAK,CAACI,KAHR,uDAIK,OAAOJ,KAAK,CAACK,IAAb,KAAsB,QAAtB,IAAkCL,KAAK,CAACK,IAAN,KAAe,OAAjD,GACG,CADH,GAEGL,KAAK,CAACG,MAAN,CAAaG,MAAb,GAAsB,CAN9B,EAOEC,IATiB,GAUnB;EACF,QAAON,MAAP,aAAOA,MAAP,uBAAOA,MAAM,CAAEO,MAAf,MAA0B,QAA1B,GACEP,MAAM,CAACO,MADT,GAEEC,SAbJ;EAeA,OAAOP,SAAP;AACD"}
1
+ {"version":3,"names":["CHILD_STATE","getFocusedRouteNameFromRoute","route","state","params","routeName","routes","index","type","length","name","screen","undefined"],"sourceRoot":"../../src","sources":["getFocusedRouteNameFromRoute.tsx"],"mappings":"AAEA,SAASA,WAAW,QAAQ,iBAAiB;AAE7C,eAAe,SAASC,4BAA4B,CAClDC,KAA6B,EACT;EACpB;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACF,WAAW,CAAC,IAAIE,KAAK,CAACC,KAAK;EAC/C,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAA0C;EAE/D,MAAMC,SAAS,GAAGF,KAAK;EACnB;EACAA,KAAK,CAACG,MAAM;EACV;EACA;EACAH,KAAK,CAACI,KAAK,KACR,OAAOJ,KAAK,CAACK,IAAI,KAAK,QAAQ,IAAIL,KAAK,CAACK,IAAI,KAAK,OAAO,GACrD,CAAC,GACDL,KAAK,CAACG,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAC/B,CAACC,IAAI;EACN;EACF,QAAON,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,MAAM,MAAK,QAAQ,GAChCP,MAAM,CAACO,MAAM,GACbC,SAAS;EAEb,OAAOP,SAAS;AAClB"}
@@ -1,16 +1,14 @@
1
1
  import * as queryString from 'query-string';
2
2
  import fromEntries from './fromEntries';
3
3
  import validatePathConfig from './validatePathConfig';
4
-
5
4
  const getActiveRoute = state => {
6
5
  const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
7
-
8
6
  if (route.state) {
9
7
  return getActiveRoute(route.state);
10
8
  }
11
-
12
9
  return route;
13
10
  };
11
+
14
12
  /**
15
13
  * Utility to serialize a navigation state object to a path string.
16
14
  *
@@ -40,78 +38,73 @@ const getActiveRoute = state => {
40
38
  * @param options Extra options to fine-tune how to serialize the path.
41
39
  * @returns Path representing the state, e.g. /foo/bar?count=42.
42
40
  */
43
-
44
-
45
41
  export default function getPathFromState(state, options) {
46
42
  if (state == null) {
47
43
  throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
48
44
  }
49
-
50
45
  if (options) {
51
46
  validatePathConfig(options);
52
- } // Create a normalized configs object which will be easier to use
53
-
47
+ }
54
48
 
49
+ // Create a normalized configs object which will be easier to use
55
50
  const configs = options !== null && options !== void 0 && options.screens ? createNormalizedConfigs(options === null || options === void 0 ? void 0 : options.screens) : {};
56
51
  let path = '/';
57
52
  let current = state;
58
53
  const allParams = {};
59
-
60
54
  while (current) {
61
55
  let index = typeof current.index === 'number' ? current.index : 0;
62
56
  let route = current.routes[index];
63
57
  let pattern;
64
58
  let focusedParams;
65
59
  let focusedRoute = getActiveRoute(state);
66
- let currentOptions = configs; // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
60
+ let currentOptions = configs;
67
61
 
62
+ // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
68
63
  let nestedRouteNames = [];
69
64
  let hasNext = true;
70
-
71
65
  while (route.name in currentOptions && hasNext) {
72
66
  pattern = currentOptions[route.name].pattern;
73
67
  nestedRouteNames.push(route.name);
74
-
75
68
  if (route.params) {
76
69
  var _currentOptions$route;
77
-
78
70
  const stringify = (_currentOptions$route = currentOptions[route.name]) === null || _currentOptions$route === void 0 ? void 0 : _currentOptions$route.stringify;
79
71
  const currentParams = fromEntries(Object.entries(route.params).map(_ref => {
80
72
  let [key, value] = _ref;
81
73
  return [key, stringify !== null && stringify !== void 0 && stringify[key] ? stringify[key](value) : String(value)];
82
74
  }));
83
-
84
75
  if (pattern) {
85
76
  Object.assign(allParams, currentParams);
86
77
  }
87
-
88
78
  if (focusedRoute === route) {
89
79
  var _pattern;
90
-
91
80
  // If this is the focused route, keep the params for later use
92
81
  // We save it here since it's been stringified already
93
- focusedParams = { ...currentParams
82
+ focusedParams = {
83
+ ...currentParams
94
84
  };
95
- (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':')) // eslint-disable-next-line no-loop-func
85
+ (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':'))
86
+ // eslint-disable-next-line no-loop-func
96
87
  .forEach(p => {
97
- const name = getParamName(p); // Remove the params present in the pattern since we'll only use the rest for query string
88
+ const name = getParamName(p);
98
89
 
90
+ // Remove the params present in the pattern since we'll only use the rest for query string
99
91
  if (focusedParams) {
100
92
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
101
93
  delete focusedParams[name];
102
94
  }
103
95
  });
104
96
  }
105
- } // If there is no `screens` property or no nested state, we return pattern
106
-
97
+ }
107
98
 
99
+ // If there is no `screens` property or no nested state, we return pattern
108
100
  if (!currentOptions[route.name].screens || route.state === undefined) {
109
101
  hasNext = false;
110
102
  } else {
111
103
  index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;
112
104
  const nextRoute = route.state.routes[index];
113
- const nestedConfig = currentOptions[route.name].screens; // if there is config for next route name, we go deeper
105
+ const nestedConfig = currentOptions[route.name].screens;
114
106
 
107
+ // if there is config for next route name, we go deeper
115
108
  if (nestedConfig && nextRoute.name in nestedConfig) {
116
109
  route = nextRoute;
117
110
  currentOptions = nestedConfig;
@@ -121,43 +114,37 @@ export default function getPathFromState(state, options) {
121
114
  }
122
115
  }
123
116
  }
124
-
125
117
  if (pattern === undefined) {
126
118
  pattern = nestedRouteNames.join('/');
127
119
  }
128
-
129
120
  if (currentOptions[route.name] !== undefined) {
130
121
  path += pattern.split('/').map(p => {
131
- const name = getParamName(p); // We don't know what to show for wildcard patterns
122
+ const name = getParamName(p);
123
+
124
+ // We don't know what to show for wildcard patterns
132
125
  // Showing the route name seems ok, though whatever we show here will be incorrect
133
126
  // Since the page doesn't actually exist
134
-
135
127
  if (p === '*') {
136
128
  return route.name;
137
- } // If the path has a pattern for a param, put the param in the path
138
-
129
+ }
139
130
 
131
+ // If the path has a pattern for a param, put the param in the path
140
132
  if (p.startsWith(':')) {
141
133
  const value = allParams[name];
142
-
143
134
  if (value === undefined && p.endsWith('?')) {
144
135
  // Optional params without value assigned in route.params should be ignored
145
136
  return '';
146
137
  }
147
-
148
138
  return encodeURIComponent(value);
149
139
  }
150
-
151
140
  return encodeURIComponent(p);
152
141
  }).join('/');
153
142
  } else {
154
143
  path += encodeURIComponent(route.name);
155
144
  }
156
-
157
145
  if (!focusedParams) {
158
146
  focusedParams = focusedRoute.params;
159
147
  }
160
-
161
148
  if (route.state) {
162
149
  path += '/';
163
150
  } else if (focusedParams) {
@@ -167,54 +154,44 @@ export default function getPathFromState(state, options) {
167
154
  delete focusedParams[param];
168
155
  }
169
156
  }
170
-
171
157
  const query = queryString.stringify(focusedParams, {
172
158
  sort: false
173
159
  });
174
-
175
160
  if (query) {
176
161
  path += `?${query}`;
177
162
  }
178
163
  }
179
-
180
164
  current = route.state;
181
- } // Remove multiple as well as trailing slashes
182
-
165
+ }
183
166
 
167
+ // Remove multiple as well as trailing slashes
184
168
  path = path.replace(/\/+/g, '/');
185
169
  path = path.length > 1 ? path.replace(/\/$/, '') : path;
186
170
  return path;
187
171
  }
188
-
189
172
  const getParamName = pattern => pattern.replace(/^:/, '').replace(/\?$/, '');
190
-
191
173
  const joinPaths = function () {
192
174
  for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
193
175
  paths[_key] = arguments[_key];
194
176
  }
195
-
196
177
  return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
197
178
  };
198
-
199
179
  const createConfigItem = (config, parentPattern) => {
200
180
  var _pattern2;
201
-
202
181
  if (typeof config === 'string') {
203
182
  // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
204
183
  const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
205
184
  return {
206
185
  pattern
207
186
  };
208
- } // If an object is specified as the value (e.g. Foo: { ... }),
209
- // It can have `path` property and `screens` prop which has nested configs
210
-
187
+ }
211
188
 
189
+ // If an object is specified as the value (e.g. Foo: { ... }),
190
+ // It can have `path` property and `screens` prop which has nested configs
212
191
  let pattern;
213
-
214
192
  if (config.exact && config.path === undefined) {
215
193
  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: ''`.");
216
194
  }
217
-
218
195
  pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';
219
196
  const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;
220
197
  return {
@@ -224,7 +201,6 @@ const createConfigItem = (config, parentPattern) => {
224
201
  screens
225
202
  };
226
203
  };
227
-
228
204
  const createNormalizedConfigs = (options, pattern) => fromEntries(Object.entries(options).map(_ref2 => {
229
205
  let [name, c] = _ref2;
230
206
  const result = createConfigItem(c, pattern);
@@ -1 +1 @@
1
- {"version":3,"names":["queryString","fromEntries","validatePathConfig","getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","Object","entries","map","key","value","String","assign","split","filter","p","startsWith","forEach","getParamName","undefined","nextRoute","nestedConfig","join","endsWith","encodeURIComponent","param","query","sort","replace","joinPaths","paths","concat","Boolean","createConfigItem","config","parentPattern","exact","c","result"],"sources":["getPathFromState.tsx"],"sourcesContent":["import type {\n NavigationState,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as queryString from 'query-string';\n\nimport fromEntries from './fromEntries';\nimport type { PathConfig, PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options<ParamList> = {\n initialRouteName?: string;\n screens: PathConfigMap<ParamList>;\n};\n\ntype State = NavigationState | Omit<PartialState<NavigationState>, 'stale'>;\n\ntype StringifyConfig = Record<string, (value: any) => string>;\n\ntype ConfigItem = {\n pattern?: string;\n stringify?: StringifyConfig;\n screens?: Record<string, ConfigItem>;\n};\n\nconst getActiveRoute = (state: State): { name: string; params?: object } => {\n const route =\n typeof state.index === 'number'\n ? state.routes[state.index]\n : state.routes[state.routes.length - 1];\n\n if (route.state) {\n return getActiveRoute(route.state);\n }\n\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState<ParamList extends {}>(\n state: State,\n options?: Options<ParamList>\n): string {\n if (state == null) {\n throw Error(\n \"Got 'undefined' for the navigation state. You must pass a valid state object.\"\n );\n }\n\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs: Record<string, ConfigItem> = options?.screens\n ? createNormalizedConfigs(options?.screens)\n : {};\n\n let path = '/';\n let current: State | undefined = state;\n\n const allParams: Record<string, any> = {};\n\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index] as Route<string> & {\n state?: State;\n };\n\n let pattern: string | undefined;\n\n let focusedParams: Record<string, any> | undefined;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n\n let hasNext = true;\n\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n\n nestedRouteNames.push(route.name);\n\n if (route.params) {\n const stringify = currentOptions[route.name]?.stringify;\n\n const currentParams = fromEntries(\n Object.entries(route.params).map(([key, value]) => [\n key,\n stringify?.[key] ? stringify[key](value) : String(value),\n ])\n );\n\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n\n if (focusedRoute === route) {\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = { ...currentParams };\n\n pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach((p) => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index =\n typeof route.state.index === 'number'\n ? route.state.index\n : route.state.routes.length - 1;\n\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute as Route<string> & { state?: State };\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n\n if (currentOptions[route.name] !== undefined) {\n path += pattern\n .split('/')\n .map((p) => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n\n return encodeURIComponent(value);\n }\n\n return encodeURIComponent(p);\n })\n .join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n\n const query = queryString.stringify(focusedParams, { sort: false });\n\n if (query) {\n path += `?${query}`;\n }\n }\n\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n\n return path;\n}\n\nconst getParamName = (pattern: string) =>\n pattern.replace(/^:/, '').replace(/\\?$/, '');\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst createConfigItem = (\n config: PathConfig<object> | string,\n parentPattern?: string\n): ConfigItem => {\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n return { pattern };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern: string | undefined;\n\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"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: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n const screens = config.screens\n ? createNormalizedConfigs(config.screens, pattern)\n : undefined;\n\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: pattern?.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens,\n };\n};\n\nconst createNormalizedConfigs = (\n options: PathConfigMap<object>,\n pattern?: string\n): Record<string, ConfigItem> =>\n fromEntries(\n Object.entries(options).map(([name, c]) => {\n const result = createConfigItem(c, pattern);\n\n return [name, result];\n })\n );\n"],"mappings":"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"}
1
+ {"version":3,"names":["queryString","fromEntries","validatePathConfig","getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","Object","entries","map","key","value","String","assign","split","filter","p","startsWith","forEach","getParamName","undefined","nextRoute","nestedConfig","join","endsWith","encodeURIComponent","param","query","sort","replace","joinPaths","paths","concat","Boolean","createConfigItem","config","parentPattern","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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"}