@react-navigation/core 6.4.4 → 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 +4 -4
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = createNavigatorFactory;
7
-
8
7
  var _Group = _interopRequireDefault(require("./Group"));
9
-
10
8
  var _Screen = _interopRequireDefault(require("./Screen"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  /**
15
11
  * Higher order component to create a `Navigator` and `Screen` pair.
16
12
  * Custom navigators should wrap the navigator component in `createNavigator` before exporting.
@@ -23,7 +19,6 @@ function createNavigatorFactory(Navigator) {
23
19
  if (arguments[0] !== undefined) {
24
20
  throw new Error("Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.");
25
21
  }
26
-
27
22
  return {
28
23
  Navigator,
29
24
  Group: _Group.default,
@@ -1 +1 @@
1
- {"version":3,"names":["createNavigatorFactory","Navigator","arguments","undefined","Error","Group","Screen"],"sources":["createNavigatorFactory.tsx"],"sourcesContent":["import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport type * as React from 'react';\n\nimport Group from './Group';\nimport Screen from './Screen';\nimport type { EventMapBase, TypedNavigator } from './types';\n\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigatorComponent extends React.ComponentType<any>\n>(Navigator: NavigatorComponent) {\n return function <ParamList extends ParamListBase>(): TypedNavigator<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n typeof Navigator\n > {\n if (arguments[0] !== undefined) {\n throw new Error(\n \"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\"\n );\n }\n\n return {\n Navigator,\n Group,\n Screen,\n };\n };\n}\n"],"mappings":";;;;;;;AAGA;;AACA;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,sBAAT,CAKbC,SALa,EAKkB;EAC/B,OAAO,YAML;IACA,IAAIC,SAAS,CAAC,CAAD,CAAT,KAAiBC,SAArB,EAAgC;MAC9B,MAAM,IAAIC,KAAJ,CACJ,+LADI,CAAN;IAGD;;IAED,OAAO;MACLH,SADK;MAELI,KAAK,EAALA,cAFK;MAGLC,MAAM,EAANA;IAHK,CAAP;EAKD,CAlBD;AAmBD"}
1
+ {"version":3,"names":["createNavigatorFactory","Navigator","arguments","undefined","Error","Group","Screen"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;;;;;AAGA;AACA;AAA8B;AAG9B;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,sBAAsB,CAK5CC,SAA6B,EAAE;EAC/B,OAAO,YAML;IACA,IAAIC,SAAS,CAAC,CAAC,CAAC,KAAKC,SAAS,EAAE;MAC9B,MAAM,IAAIC,KAAK,CACb,+LAA+L,CAChM;IACH;IAEA,OAAO;MACLH,SAAS;MACTI,KAAK,EAALA,cAAK;MACLC,MAAM,EAANA;IACF,CAAC;EACH,CAAC;AACH"}
@@ -4,19 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = findFocusedRoute;
7
-
8
7
  function findFocusedRoute(state) {
9
- var _current2, _current$index3, _current3;
10
-
8
+ var _current2, _current3;
11
9
  let current = state;
12
-
13
- while (((_current = current) === null || _current === void 0 ? void 0 : _current.routes[(_current$index = current.index) !== null && _current$index !== void 0 ? _current$index : 0].state) != null) {
14
- var _current, _current$index, _current$index2;
15
-
16
- current = current.routes[(_current$index2 = current.index) !== null && _current$index2 !== void 0 ? _current$index2 : 0].state;
10
+ while (((_current = current) === null || _current === void 0 ? void 0 : _current.routes[current.index ?? 0].state) != null) {
11
+ var _current;
12
+ current = current.routes[current.index ?? 0].state;
17
13
  }
18
-
19
- const route = (_current2 = current) === null || _current2 === void 0 ? void 0 : _current2.routes[(_current$index3 = (_current3 = current) === null || _current3 === void 0 ? void 0 : _current3.index) !== null && _current$index3 !== void 0 ? _current$index3 : 0];
14
+ const route = (_current2 = current) === null || _current2 === void 0 ? void 0 : _current2.routes[((_current3 = current) === null || _current3 === void 0 ? void 0 : _current3.index) ?? 0];
20
15
  return route;
21
16
  }
22
17
  //# sourceMappingURL=findFocusedRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sources":["findFocusedRoute.tsx"],"sourcesContent":["import type { InitialState } from '@react-navigation/routers';\n\nexport default function findFocusedRoute(state: InitialState) {\n let current: InitialState | undefined = state;\n\n while (current?.routes[current.index ?? 0].state != null) {\n current = current.routes[current.index ?? 0].state;\n }\n\n const route = current?.routes[current?.index ?? 0];\n\n return route;\n}\n"],"mappings":";;;;;;;AAEe,SAASA,gBAAT,CAA0BC,KAA1B,EAA+C;EAAA;;EAC5D,IAAIC,OAAiC,GAAGD,KAAxC;;EAEA,OAAO,aAAAC,OAAO,UAAP,4CAASC,MAAT,mBAAgBD,OAAO,CAACE,KAAxB,2DAAiC,CAAjC,EAAoCH,KAApC,KAA6C,IAApD,EAA0D;IAAA;;IACxDC,OAAO,GAAGA,OAAO,CAACC,MAAR,oBAAeD,OAAO,CAACE,KAAvB,6DAAgC,CAAhC,EAAmCH,KAA7C;EACD;;EAED,MAAMI,KAAK,gBAAGH,OAAH,8CAAG,UAASC,MAAT,iCAAgBD,OAAhB,8CAAgB,UAASE,KAAzB,6DAAkC,CAAlC,CAAd;EAEA,OAAOC,KAAP;AACD"}
1
+ {"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":";;;;;;AAEe,SAASA,gBAAgB,CAACC,KAAmB,EAAE;EAAA;EAC5D,IAAIC,OAAiC,GAAGD,KAAK;EAE7C,OAAO,aAAAC,OAAO,6CAAP,SAASC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK,KAAI,IAAI,EAAE;IAAA;IACxDC,OAAO,GAAGA,OAAO,CAACC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK;EACpD;EAEA,MAAMI,KAAK,gBAAGH,OAAO,8CAAP,UAASC,MAAM,CAAC,cAAAD,OAAO,8CAAP,UAASE,KAAK,KAAI,CAAC,CAAC;EAElD,OAAOC,KAAK;AACd"}
@@ -4,16 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = fromEntries;
7
-
8
7
  // Object.fromEntries is not available in older iOS versions
9
8
  function fromEntries(entries) {
10
9
  return entries.reduce((acc, _ref) => {
11
10
  let [k, v] = _ref;
12
-
13
11
  if (acc.hasOwnProperty(k)) {
14
12
  throw new Error(`A value for key '${k}' already exists in the object.`);
15
13
  }
16
-
17
14
  acc[k] = v;
18
15
  return acc;
19
16
  }, {});
@@ -1 +1 @@
1
- {"version":3,"names":["fromEntries","entries","reduce","acc","k","v","hasOwnProperty","Error"],"sources":["fromEntries.tsx"],"sourcesContent":["// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries<K extends string, V>(\n entries: (readonly [K, V])[]\n) {\n return entries.reduce((acc, [k, v]) => {\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n\n acc[k] = v;\n return acc;\n }, {} as Record<K, V>);\n}\n"],"mappings":";;;;;;;AAAA;AACe,SAASA,WAAT,CACbC,OADa,EAEb;EACA,OAAOA,OAAO,CAACC,MAAR,CAAe,CAACC,GAAD,WAAiB;IAAA,IAAX,CAACC,CAAD,EAAIC,CAAJ,CAAW;;IACrC,IAAIF,GAAG,CAACG,cAAJ,CAAmBF,CAAnB,CAAJ,EAA2B;MACzB,MAAM,IAAIG,KAAJ,CAAW,oBAAmBH,CAAE,iCAAhC,CAAN;IACD;;IAEDD,GAAG,CAACC,CAAD,CAAH,GAASC,CAAT;IACA,OAAOF,GAAP;EACD,CAPM,EAOJ,EAPI,CAAP;AAQD"}
1
+ {"version":3,"names":["fromEntries","entries","reduce","acc","k","v","hasOwnProperty","Error"],"sourceRoot":"../../src","sources":["fromEntries.tsx"],"mappings":";;;;;;AAAA;AACe,SAASA,WAAW,CACjCC,OAA4B,EAC5B;EACA,OAAOA,OAAO,CAACC,MAAM,CAAC,CAACC,GAAG,WAAa;IAAA,IAAX,CAACC,CAAC,EAAEC,CAAC,CAAC;IAChC,IAAIF,GAAG,CAACG,cAAc,CAACF,CAAC,CAAC,EAAE;MACzB,MAAM,IAAIG,KAAK,CAAE,oBAAmBH,CAAE,iCAAgC,CAAC;IACzE;IAEAD,GAAG,CAACC,CAAC,CAAC,GAAGC,CAAC;IACV,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAiB;AACxB"}
@@ -4,53 +4,46 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = getActionFromState;
7
-
8
7
  function getActionFromState(state, options) {
9
- var _state$index, _normalizedConfig$scr;
10
-
8
+ var _normalizedConfig$scr;
11
9
  // Create a normalized configs object which will be easier to use
12
10
  const normalizedConfig = options ? createNormalizedConfigItem(options) : {};
13
11
  const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;
14
-
15
12
  if (routes.length === 0) {
16
13
  return undefined;
17
14
  }
18
-
19
15
  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)) {
20
16
  return {
21
17
  type: 'RESET',
22
18
  payload: state
23
19
  };
24
20
  }
25
-
26
- const route = state.routes[(_state$index = state.index) !== null && _state$index !== void 0 ? _state$index : state.routes.length - 1];
21
+ const route = state.routes[state.index ?? state.routes.length - 1];
27
22
  let current = route === null || route === void 0 ? void 0 : route.state;
28
23
  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];
29
- let params = { ...route.params
24
+ let params = {
25
+ ...route.params
30
26
  };
31
27
  let payload = route ? {
32
28
  name: route.name,
33
29
  path: route.path,
34
30
  params
35
31
  } : undefined;
36
-
37
32
  while (current) {
38
33
  var _config, _config2, _config2$screens;
39
-
40
34
  if (current.routes.length === 0) {
41
35
  return undefined;
42
36
  }
43
-
44
37
  const routes = current.index != null ? current.routes.slice(0, current.index + 1) : current.routes;
45
- const route = routes[routes.length - 1]; // Explicitly set to override existing value when merging params
38
+ const route = routes[routes.length - 1];
46
39
 
40
+ // Explicitly set to override existing value when merging params
47
41
  Object.assign(params, {
48
42
  initial: undefined,
49
43
  screen: undefined,
50
44
  params: undefined,
51
45
  state: undefined
52
46
  });
53
-
54
47
  if (routes.length === 1 && routes[0].key === undefined) {
55
48
  params.initial = true;
56
49
  params.screen = route.name;
@@ -61,37 +54,33 @@ function getActionFromState(state, options) {
61
54
  params.state = current;
62
55
  break;
63
56
  }
64
-
65
57
  if (route.state) {
66
- params.params = { ...route.params
58
+ params.params = {
59
+ ...route.params
67
60
  };
68
61
  params = params.params;
69
62
  } else {
70
63
  params.path = route.path;
71
64
  params.params = route.params;
72
65
  }
73
-
74
66
  current = route.state;
75
67
  config = (_config2 = config) === null || _config2 === void 0 ? void 0 : (_config2$screens = _config2.screens) === null || _config2$screens === void 0 ? void 0 : _config2$screens[route.name];
76
68
  }
77
-
78
69
  if (!payload) {
79
70
  return;
80
- } // Try to construct payload for a `NAVIGATE` action from the state
81
- // This lets us preserve the navigation state and not lose it
82
-
71
+ }
83
72
 
73
+ // Try to construct payload for a `NAVIGATE` action from the state
74
+ // This lets us preserve the navigation state and not lose it
84
75
  return {
85
76
  type: 'NAVIGATE',
86
77
  payload
87
78
  };
88
79
  }
89
-
90
80
  const createNormalizedConfigItem = config => typeof config === 'object' && config != null ? {
91
81
  initialRouteName: config.initialRouteName,
92
82
  screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined
93
83
  } : {};
94
-
95
84
  const createNormalizedConfigs = options => Object.entries(options).reduce((acc, _ref) => {
96
85
  let [k, v] = _ref;
97
86
  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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"}
@@ -4,19 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = getFocusedRouteNameFromRoute;
7
-
8
7
  var _useRouteCache = require("./useRouteCache");
9
-
10
8
  function getFocusedRouteNameFromRoute(route) {
11
- var _route$CHILD_STATE, _state$index;
12
-
13
9
  // @ts-expect-error: this isn't in type definitions coz we want this private
14
- const state = (_route$CHILD_STATE = route[_useRouteCache.CHILD_STATE]) !== null && _route$CHILD_STATE !== void 0 ? _route$CHILD_STATE : route.state;
10
+ const state = route[_useRouteCache.CHILD_STATE] ?? route.state;
15
11
  const params = route.params;
16
- const routeName = state ? // Get the currently active route name in the nested navigator
17
- state.routes[// If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack
12
+ const routeName = state ?
13
+ // Get the currently active route name in the nested navigator
14
+ state.routes[
15
+ // If we have a partial state without index, for tab/drawer, first screen will be focused one, and last for stack
18
16
  // The type property will only exist for rehydrated state and not for state from deep link
19
- (_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
17
+ state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :
18
+ // If state doesn't exist, we need to default to `screen` param if available
20
19
  typeof (params === null || params === void 0 ? void 0 : params.screen) === 'string' ? params.screen : undefined;
21
20
  return routeName;
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getFocusedRouteNameFromRoute","route","state","CHILD_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;;AAEe,SAASA,4BAAT,CACbC,KADa,EAEO;EAAA;;EACpB;EACA,MAAMC,KAAK,yBAAGD,KAAK,CAACE,0BAAD,CAAR,mEAAyBF,KAAK,CAACC,KAA1C;EACA,MAAME,MAAM,GAAGH,KAAK,CAACG,MAArB;EAEA,MAAMC,SAAS,GAAGH,KAAK,GACnB;EACAA,KAAK,CAACI,MAAN,CACE;EACA;EAFF,gBAGEJ,KAAK,CAACK,KAHR,uDAIK,OAAOL,KAAK,CAACM,IAAb,KAAsB,QAAtB,IAAkCN,KAAK,CAACM,IAAN,KAAe,OAAjD,GACG,CADH,GAEGN,KAAK,CAACI,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":["getFocusedRouteNameFromRoute","route","state","CHILD_STATE","params","routeName","routes","index","type","length","name","screen","undefined"],"sourceRoot":"../../src","sources":["getFocusedRouteNameFromRoute.tsx"],"mappings":";;;;;;AAEA;AAEe,SAASA,4BAA4B,CAClDC,KAA6B,EACT;EACpB;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACE,0BAAW,CAAC,IAAIF,KAAK,CAACC,KAAK;EAC/C,MAAME,MAAM,GAAGH,KAAK,CAACG,MAA0C;EAE/D,MAAMC,SAAS,GAAGH,KAAK;EACnB;EACAA,KAAK,CAACI,MAAM;EACV;EACA;EACAJ,KAAK,CAACK,KAAK,KACR,OAAOL,KAAK,CAACM,IAAI,KAAK,QAAQ,IAAIN,KAAK,CAACM,IAAI,KAAK,OAAO,GACrD,CAAC,GACDN,KAAK,CAACI,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"}
@@ -4,28 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = getPathFromState;
7
-
8
7
  var queryString = _interopRequireWildcard(require("query-string"));
9
-
10
8
  var _fromEntries = _interopRequireDefault(require("./fromEntries"));
11
-
12
9
  var _validatePathConfig = _interopRequireDefault(require("./validatePathConfig"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
13
  const getActiveRoute = state => {
21
14
  const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
22
-
23
15
  if (route.state) {
24
16
  return getActiveRoute(route.state);
25
17
  }
26
-
27
18
  return route;
28
19
  };
20
+
29
21
  /**
30
22
  * Utility to serialize a navigation state object to a path string.
31
23
  *
@@ -55,78 +47,73 @@ const getActiveRoute = state => {
55
47
  * @param options Extra options to fine-tune how to serialize the path.
56
48
  * @returns Path representing the state, e.g. /foo/bar?count=42.
57
49
  */
58
-
59
-
60
50
  function getPathFromState(state, options) {
61
51
  if (state == null) {
62
52
  throw Error("Got 'undefined' for the navigation state. You must pass a valid state object.");
63
53
  }
64
-
65
54
  if (options) {
66
55
  (0, _validatePathConfig.default)(options);
67
- } // Create a normalized configs object which will be easier to use
68
-
56
+ }
69
57
 
58
+ // Create a normalized configs object which will be easier to use
70
59
  const configs = options !== null && options !== void 0 && options.screens ? createNormalizedConfigs(options === null || options === void 0 ? void 0 : options.screens) : {};
71
60
  let path = '/';
72
61
  let current = state;
73
62
  const allParams = {};
74
-
75
63
  while (current) {
76
64
  let index = typeof current.index === 'number' ? current.index : 0;
77
65
  let route = current.routes[index];
78
66
  let pattern;
79
67
  let focusedParams;
80
68
  let focusedRoute = getActiveRoute(state);
81
- let currentOptions = configs; // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
69
+ let currentOptions = configs;
82
70
 
71
+ // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
83
72
  let nestedRouteNames = [];
84
73
  let hasNext = true;
85
-
86
74
  while (route.name in currentOptions && hasNext) {
87
75
  pattern = currentOptions[route.name].pattern;
88
76
  nestedRouteNames.push(route.name);
89
-
90
77
  if (route.params) {
91
78
  var _currentOptions$route;
92
-
93
79
  const stringify = (_currentOptions$route = currentOptions[route.name]) === null || _currentOptions$route === void 0 ? void 0 : _currentOptions$route.stringify;
94
80
  const currentParams = (0, _fromEntries.default)(Object.entries(route.params).map(_ref => {
95
81
  let [key, value] = _ref;
96
82
  return [key, stringify !== null && stringify !== void 0 && stringify[key] ? stringify[key](value) : String(value)];
97
83
  }));
98
-
99
84
  if (pattern) {
100
85
  Object.assign(allParams, currentParams);
101
86
  }
102
-
103
87
  if (focusedRoute === route) {
104
88
  var _pattern;
105
-
106
89
  // If this is the focused route, keep the params for later use
107
90
  // We save it here since it's been stringified already
108
- focusedParams = { ...currentParams
91
+ focusedParams = {
92
+ ...currentParams
109
93
  };
110
- (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':')) // eslint-disable-next-line no-loop-func
94
+ (_pattern = pattern) === null || _pattern === void 0 ? void 0 : _pattern.split('/').filter(p => p.startsWith(':'))
95
+ // eslint-disable-next-line no-loop-func
111
96
  .forEach(p => {
112
- const name = getParamName(p); // Remove the params present in the pattern since we'll only use the rest for query string
97
+ const name = getParamName(p);
113
98
 
99
+ // Remove the params present in the pattern since we'll only use the rest for query string
114
100
  if (focusedParams) {
115
101
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
116
102
  delete focusedParams[name];
117
103
  }
118
104
  });
119
105
  }
120
- } // If there is no `screens` property or no nested state, we return pattern
121
-
106
+ }
122
107
 
108
+ // If there is no `screens` property or no nested state, we return pattern
123
109
  if (!currentOptions[route.name].screens || route.state === undefined) {
124
110
  hasNext = false;
125
111
  } else {
126
112
  index = typeof route.state.index === 'number' ? route.state.index : route.state.routes.length - 1;
127
113
  const nextRoute = route.state.routes[index];
128
- const nestedConfig = currentOptions[route.name].screens; // if there is config for next route name, we go deeper
114
+ const nestedConfig = currentOptions[route.name].screens;
129
115
 
116
+ // if there is config for next route name, we go deeper
130
117
  if (nestedConfig && nextRoute.name in nestedConfig) {
131
118
  route = nextRoute;
132
119
  currentOptions = nestedConfig;
@@ -136,43 +123,37 @@ function getPathFromState(state, options) {
136
123
  }
137
124
  }
138
125
  }
139
-
140
126
  if (pattern === undefined) {
141
127
  pattern = nestedRouteNames.join('/');
142
128
  }
143
-
144
129
  if (currentOptions[route.name] !== undefined) {
145
130
  path += pattern.split('/').map(p => {
146
- const name = getParamName(p); // We don't know what to show for wildcard patterns
131
+ const name = getParamName(p);
132
+
133
+ // We don't know what to show for wildcard patterns
147
134
  // Showing the route name seems ok, though whatever we show here will be incorrect
148
135
  // Since the page doesn't actually exist
149
-
150
136
  if (p === '*') {
151
137
  return route.name;
152
- } // If the path has a pattern for a param, put the param in the path
153
-
138
+ }
154
139
 
140
+ // If the path has a pattern for a param, put the param in the path
155
141
  if (p.startsWith(':')) {
156
142
  const value = allParams[name];
157
-
158
143
  if (value === undefined && p.endsWith('?')) {
159
144
  // Optional params without value assigned in route.params should be ignored
160
145
  return '';
161
146
  }
162
-
163
147
  return encodeURIComponent(value);
164
148
  }
165
-
166
149
  return encodeURIComponent(p);
167
150
  }).join('/');
168
151
  } else {
169
152
  path += encodeURIComponent(route.name);
170
153
  }
171
-
172
154
  if (!focusedParams) {
173
155
  focusedParams = focusedRoute.params;
174
156
  }
175
-
176
157
  if (route.state) {
177
158
  path += '/';
178
159
  } else if (focusedParams) {
@@ -182,54 +163,44 @@ function getPathFromState(state, options) {
182
163
  delete focusedParams[param];
183
164
  }
184
165
  }
185
-
186
166
  const query = queryString.stringify(focusedParams, {
187
167
  sort: false
188
168
  });
189
-
190
169
  if (query) {
191
170
  path += `?${query}`;
192
171
  }
193
172
  }
194
-
195
173
  current = route.state;
196
- } // Remove multiple as well as trailing slashes
197
-
174
+ }
198
175
 
176
+ // Remove multiple as well as trailing slashes
199
177
  path = path.replace(/\/+/g, '/');
200
178
  path = path.length > 1 ? path.replace(/\/$/, '') : path;
201
179
  return path;
202
180
  }
203
-
204
181
  const getParamName = pattern => pattern.replace(/^:/, '').replace(/\?$/, '');
205
-
206
182
  const joinPaths = function () {
207
183
  for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
208
184
  paths[_key] = arguments[_key];
209
185
  }
210
-
211
186
  return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
212
187
  };
213
-
214
188
  const createConfigItem = (config, parentPattern) => {
215
189
  var _pattern2;
216
-
217
190
  if (typeof config === 'string') {
218
191
  // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
219
192
  const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
220
193
  return {
221
194
  pattern
222
195
  };
223
- } // If an object is specified as the value (e.g. Foo: { ... }),
224
- // It can have `path` property and `screens` prop which has nested configs
225
-
196
+ }
226
197
 
198
+ // If an object is specified as the value (e.g. Foo: { ... }),
199
+ // It can have `path` property and `screens` prop which has nested configs
227
200
  let pattern;
228
-
229
201
  if (config.exact && config.path === undefined) {
230
202
  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: ''`.");
231
203
  }
232
-
233
204
  pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';
234
205
  const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;
235
206
  return {
@@ -239,7 +210,6 @@ const createConfigItem = (config, parentPattern) => {
239
210
  screens
240
211
  };
241
212
  };
242
-
243
213
  const createNormalizedConfigs = (options, pattern) => (0, _fromEntries.default)(Object.entries(options).map(_ref2 => {
244
214
  let [name, c] = _ref2;
245
215
  const result = createConfigItem(c, pattern);
@@ -1 +1 @@
1
- {"version":3,"names":["getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","validatePathConfig","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","fromEntries","Object","entries","map","key","value","String","assign","split","filter","p","startsWith","forEach","getParamName","undefined","nextRoute","nestedConfig","join","endsWith","encodeURIComponent","param","query","queryString","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":["getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","validatePathConfig","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","fromEntries","Object","entries","map","key","value","String","assign","split","filter","p","startsWith","forEach","getParamName","undefined","nextRoute","nestedConfig","join","endsWith","encodeURIComponent","param","query","queryString","sort","replace","joinPaths","paths","concat","Boolean","createConfigItem","config","parentPattern","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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"}