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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/README.md +17 -14
  2. package/lib/module/BaseNavigationContainer.js +168 -87
  3. package/lib/module/BaseNavigationContainer.js.map +1 -1
  4. package/lib/module/ConsumedParamsContext.js +5 -0
  5. package/lib/module/ConsumedParamsContext.js.map +1 -0
  6. package/lib/module/DataLoading.js +129 -0
  7. package/lib/module/DataLoading.js.map +1 -0
  8. package/lib/module/NavigationBuilderContext.js +7 -10
  9. package/lib/module/NavigationBuilderContext.js.map +1 -1
  10. package/lib/module/NavigationIndependentTree.js +54 -9
  11. package/lib/module/NavigationIndependentTree.js.map +1 -1
  12. package/lib/module/NavigationProvider.js +36 -11
  13. package/lib/module/NavigationProvider.js.map +1 -1
  14. package/lib/module/NavigationRootContext.js +8 -0
  15. package/lib/module/NavigationRootContext.js.map +1 -0
  16. package/lib/module/NavigationStateContext.js +3 -0
  17. package/lib/module/NavigationStateContext.js.map +1 -1
  18. package/lib/module/PreventRemoveContext.js.map +1 -1
  19. package/lib/module/PreventRemoveProvider.js +40 -31
  20. package/lib/module/PreventRemoveProvider.js.map +1 -1
  21. package/lib/module/SceneView.js +12 -42
  22. package/lib/module/SceneView.js.map +1 -1
  23. package/lib/module/StaticNavigation.js +219 -67
  24. package/lib/module/StaticNavigation.js.map +1 -1
  25. package/lib/module/StaticTreeContext.js +5 -0
  26. package/lib/module/StaticTreeContext.js.map +1 -0
  27. package/lib/module/createNavigationContainerRef.js +7 -9
  28. package/lib/module/createNavigationContainerRef.js.map +1 -1
  29. package/lib/module/createNavigatorFactory.js +27 -5
  30. package/lib/module/createNavigatorFactory.js.map +1 -1
  31. package/lib/module/findFocusedRoute.js +7 -4
  32. package/lib/module/findFocusedRoute.js.map +1 -1
  33. package/lib/module/getActionFromState.js +45 -20
  34. package/lib/module/getActionFromState.js.map +1 -1
  35. package/lib/module/getPathFromState.js +204 -94
  36. package/lib/module/getPathFromState.js.map +1 -1
  37. package/lib/module/getPatternParts.js +61 -14
  38. package/lib/module/getPatternParts.js.map +1 -1
  39. package/lib/module/getStateFromPath.js +608 -272
  40. package/lib/module/getStateFromPath.js.map +1 -1
  41. package/lib/module/getStateFromRouteParams.js +23 -0
  42. package/lib/module/getStateFromRouteParams.js.map +1 -0
  43. package/lib/module/index.js +7 -6
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/internal.js +2 -0
  46. package/lib/module/internal.js.map +1 -0
  47. package/lib/module/isRecordEqual.js +1 -1
  48. package/lib/module/isRecordEqual.js.map +1 -1
  49. package/lib/module/queryString.js +71 -0
  50. package/lib/module/queryString.js.map +1 -0
  51. package/lib/module/theming/useTheme.js +1 -1
  52. package/lib/module/theming/useTheme.js.map +1 -1
  53. package/lib/module/types.js +35 -1
  54. package/lib/module/types.js.map +1 -1
  55. package/lib/module/useDescriptors.js +65 -25
  56. package/lib/module/useDescriptors.js.map +1 -1
  57. package/lib/module/useEventEmitter.js +48 -33
  58. package/lib/module/useEventEmitter.js.map +1 -1
  59. package/lib/module/useFocusEffect.js +4 -2
  60. package/lib/module/useFocusEffect.js.map +1 -1
  61. package/lib/module/useFocusEvents.js +15 -5
  62. package/lib/module/useFocusEvents.js.map +1 -1
  63. package/lib/module/useFocusedListenersChildrenAdapter.js +3 -3
  64. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  65. package/lib/module/useIsFocused.js +8 -12
  66. package/lib/module/useIsFocused.js.map +1 -1
  67. package/lib/module/useKeyedChildListeners.js +5 -2
  68. package/lib/module/useKeyedChildListeners.js.map +1 -1
  69. package/lib/module/useLazyValue.js.map +1 -1
  70. package/lib/module/useNavigation.js +4 -17
  71. package/lib/module/useNavigation.js.map +1 -1
  72. package/lib/module/useNavigationBuilder.js +244 -147
  73. package/lib/module/useNavigationBuilder.js.map +1 -1
  74. package/lib/module/useNavigationCache.js +92 -89
  75. package/lib/module/useNavigationCache.js.map +1 -1
  76. package/lib/module/useNavigationHelpers.js +22 -29
  77. package/lib/module/useNavigationHelpers.js.map +1 -1
  78. package/lib/module/useNavigationIndependentTree.js +1 -1
  79. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  80. package/lib/module/useNavigationState.js +158 -46
  81. package/lib/module/useNavigationState.js.map +1 -1
  82. package/lib/module/useOnAction.js +58 -11
  83. package/lib/module/useOnAction.js.map +1 -1
  84. package/lib/module/useOnGetNavigation.js +26 -0
  85. package/lib/module/useOnGetNavigation.js.map +1 -0
  86. package/lib/module/useOnGetState.js +7 -4
  87. package/lib/module/useOnGetState.js.map +1 -1
  88. package/lib/module/useOnPreventRemove.js +40 -31
  89. package/lib/module/useOnPreventRemove.js.map +1 -1
  90. package/lib/module/useOnRouteFocus.js +2 -2
  91. package/lib/module/useOnRouteFocus.js.map +1 -1
  92. package/lib/module/useOptionsGetters.js +34 -24
  93. package/lib/module/useOptionsGetters.js.map +1 -1
  94. package/lib/module/usePreventRemove.js +11 -5
  95. package/lib/module/usePreventRemove.js.map +1 -1
  96. package/lib/module/usePreventRemoveContext.js +2 -2
  97. package/lib/module/usePreventRemoveContext.js.map +1 -1
  98. package/lib/module/useRegisterNavigator.js +3 -4
  99. package/lib/module/useRegisterNavigator.js.map +1 -1
  100. package/lib/module/useRoute.js +2 -0
  101. package/lib/module/useRoute.js.map +1 -1
  102. package/lib/module/useRouteCache.js +51 -35
  103. package/lib/module/useRouteCache.js.map +1 -1
  104. package/lib/module/useScheduleUpdate.js +12 -10
  105. package/lib/module/useScheduleUpdate.js.map +1 -1
  106. package/lib/module/useStateForPath.js +1 -1
  107. package/lib/module/useStateForPath.js.map +1 -1
  108. package/lib/module/useSyncState.js +37 -15
  109. package/lib/module/useSyncState.js.map +1 -1
  110. package/lib/module/validatePathConfig.js +50 -36
  111. package/lib/module/validatePathConfig.js.map +1 -1
  112. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  113. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  114. package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
  115. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  116. package/lib/typescript/src/DataLoading.d.ts +21 -0
  117. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  118. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  119. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  120. package/lib/typescript/src/Group.d.ts +1 -1
  121. package/lib/typescript/src/Group.d.ts.map +1 -1
  122. package/lib/typescript/src/NavigationBuilderContext.d.ts +22 -14
  123. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  124. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  125. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  126. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  127. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  128. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  129. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  130. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  131. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  132. package/lib/typescript/src/NavigationProvider.d.ts +21 -18
  133. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  134. package/lib/typescript/src/NavigationRootContext.d.ts +8 -0
  135. package/lib/typescript/src/NavigationRootContext.d.ts.map +1 -0
  136. package/lib/typescript/src/NavigationStateContext.d.ts +4 -3
  137. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  138. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  139. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  140. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  141. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  142. package/lib/typescript/src/SceneView.d.ts +5 -2
  143. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  144. package/lib/typescript/src/Screen.d.ts +1 -1
  145. package/lib/typescript/src/Screen.d.ts.map +1 -1
  146. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  147. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  148. package/lib/typescript/src/StaticNavigation.d.ts +189 -111
  149. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  150. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  151. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  152. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  153. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  154. package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
  155. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  156. package/lib/typescript/src/findFocusedRoute.d.ts +3 -8
  157. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  158. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  159. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  160. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  161. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  162. package/lib/typescript/src/getPatternParts.d.ts +5 -2
  163. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  164. package/lib/typescript/src/getStateFromPath.d.ts +4 -7
  165. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  166. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  167. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  168. package/lib/typescript/src/index.d.ts +36 -33
  169. package/lib/typescript/src/index.d.ts.map +1 -1
  170. package/lib/typescript/src/internal.d.ts +3 -0
  171. package/lib/typescript/src/internal.d.ts.map +1 -0
  172. package/lib/typescript/src/isRecordEqual.d.ts.map +1 -1
  173. package/lib/typescript/src/queryString.d.ts +5 -0
  174. package/lib/typescript/src/queryString.d.ts.map +1 -0
  175. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  176. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  177. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  178. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  179. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  180. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  181. package/lib/typescript/src/types.d.ts +265 -167
  182. package/lib/typescript/src/types.d.ts.map +1 -1
  183. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  184. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  185. package/lib/typescript/src/useDescriptors.d.ts +13 -11
  186. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  187. package/lib/typescript/src/useEventEmitter.d.ts +2 -2
  188. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  189. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
  190. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  191. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  192. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  193. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  194. package/lib/typescript/src/useIsFocused.d.ts +4 -0
  195. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  196. package/lib/typescript/src/useKeyedChildListeners.d.ts +4 -3
  197. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  198. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  199. package/lib/typescript/src/useNavigation.d.ts +4 -2
  200. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  201. package/lib/typescript/src/useNavigationBuilder.d.ts +22 -63
  202. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  203. package/lib/typescript/src/useNavigationCache.d.ts +6 -5
  204. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  205. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  206. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  207. package/lib/typescript/src/useNavigationHelpers.d.ts +18 -58
  208. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  209. package/lib/typescript/src/useNavigationState.d.ts +19 -3
  210. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  211. package/lib/typescript/src/useOnAction.d.ts +9 -9
  212. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  213. package/lib/typescript/src/useOnGetNavigation.d.ts +12 -0
  214. package/lib/typescript/src/useOnGetNavigation.d.ts.map +1 -0
  215. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  216. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  217. package/lib/typescript/src/useOnPreventRemove.d.ts +5 -9
  218. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  219. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  220. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  221. package/lib/typescript/src/useOptionsGetters.d.ts +2 -4
  222. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  223. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  224. package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
  225. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  226. package/lib/typescript/src/useRegisterNavigator.d.ts.map +1 -1
  227. package/lib/typescript/src/useRoute.d.ts +7 -3
  228. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  229. package/lib/typescript/src/useRouteCache.d.ts +7 -12
  230. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  231. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  232. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  233. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  234. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  235. package/lib/typescript/src/useSyncState.d.ts +1 -0
  236. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  237. package/lib/typescript/src/utilities.d.ts +79 -39
  238. package/lib/typescript/src/utilities.d.ts.map +1 -1
  239. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  240. package/package.json +26 -22
  241. package/src/BaseNavigationContainer.tsx +468 -333
  242. package/src/ConsumedParamsContext.tsx +5 -0
  243. package/src/DataLoading.tsx +206 -0
  244. package/src/NavigationBuilderContext.tsx +44 -25
  245. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  246. package/src/NavigationIndependentTree.tsx +60 -12
  247. package/src/NavigationProvider.tsx +47 -20
  248. package/src/NavigationRootContext.tsx +11 -0
  249. package/src/NavigationStateContext.tsx +9 -6
  250. package/src/PreventRemoveContext.tsx +1 -0
  251. package/src/PreventRemoveProvider.tsx +55 -56
  252. package/src/SceneView.tsx +14 -40
  253. package/src/StaticNavigation.tsx +715 -328
  254. package/src/StaticTreeContext.tsx +7 -0
  255. package/src/createNavigationContainerRef.tsx +12 -11
  256. package/src/createNavigatorFactory.tsx +92 -8
  257. package/src/findFocusedRoute.tsx +16 -16
  258. package/src/getActionFromState.tsx +87 -51
  259. package/src/getPathFromState.tsx +310 -134
  260. package/src/getPatternParts.tsx +98 -16
  261. package/src/getStateFromPath.tsx +971 -344
  262. package/src/getStateFromRouteParams.tsx +59 -0
  263. package/src/index.tsx +57 -6
  264. package/src/internal.tsx +2 -0
  265. package/src/isRecordEqual.tsx +3 -1
  266. package/src/queryString.ts +109 -0
  267. package/src/theming/useTheme.tsx +1 -1
  268. package/src/types.tsx +799 -377
  269. package/src/useDescriptors.tsx +151 -43
  270. package/src/useEventEmitter.tsx +53 -39
  271. package/src/useFocusEffect.tsx +5 -2
  272. package/src/useFocusEvents.tsx +19 -8
  273. package/src/useFocusedListenersChildrenAdapter.tsx +3 -3
  274. package/src/useIsFocused.tsx +18 -21
  275. package/src/useKeyedChildListeners.tsx +5 -2
  276. package/src/useLazyValue.tsx +2 -2
  277. package/src/useNavigation.tsx +9 -26
  278. package/src/useNavigationBuilder.tsx +370 -201
  279. package/src/useNavigationCache.tsx +148 -123
  280. package/src/useNavigationHelpers.tsx +27 -37
  281. package/src/useNavigationIndependentTree.tsx +1 -1
  282. package/src/useNavigationState.tsx +207 -69
  283. package/src/useOnAction.tsx +92 -18
  284. package/src/useOnGetNavigation.tsx +30 -0
  285. package/src/useOnGetState.tsx +8 -4
  286. package/src/useOnPreventRemove.tsx +78 -43
  287. package/src/useOnRouteFocus.tsx +11 -15
  288. package/src/useOptionsGetters.tsx +41 -28
  289. package/src/usePreventRemove.tsx +13 -5
  290. package/src/usePreventRemoveContext.tsx +2 -2
  291. package/src/useRegisterNavigator.tsx +4 -4
  292. package/src/useRoute.tsx +20 -6
  293. package/src/useRouteCache.tsx +57 -35
  294. package/src/useScheduleUpdate.tsx +13 -11
  295. package/src/useStateForPath.tsx +1 -1
  296. package/src/useSyncState.tsx +39 -15
  297. package/src/utilities.tsx +151 -35
  298. package/src/validatePathConfig.tsx +86 -57
  299. package/lib/module/CurrentRenderContext.js +0 -10
  300. package/lib/module/CurrentRenderContext.js.map +0 -1
  301. package/lib/module/NavigationMetaContext.js +0 -15
  302. package/lib/module/NavigationMetaContext.js.map +0 -1
  303. package/lib/module/checkSerializable.js +0 -46
  304. package/lib/module/checkSerializable.js.map +0 -1
  305. package/lib/module/useComponent.js +0 -34
  306. package/lib/module/useComponent.js.map +0 -1
  307. package/lib/module/useCurrentRender.js +0 -19
  308. package/lib/module/useCurrentRender.js.map +0 -1
  309. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  310. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  311. package/lib/typescript/src/NavigationMetaContext.d.ts +0 -12
  312. package/lib/typescript/src/NavigationMetaContext.d.ts.map +0 -1
  313. package/lib/typescript/src/checkSerializable.d.ts +0 -10
  314. package/lib/typescript/src/checkSerializable.d.ts.map +0 -1
  315. package/lib/typescript/src/useComponent.d.ts +0 -7
  316. package/lib/typescript/src/useComponent.d.ts.map +0 -1
  317. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  318. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  319. package/src/CurrentRenderContext.tsx +0 -9
  320. package/src/NavigationMetaContext.tsx +0 -14
  321. package/src/checkSerializable.tsx +0 -74
  322. package/src/useComponent.tsx +0 -37
  323. package/src/useCurrentRender.tsx +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getStateFromRouteParams","findScreenInConfig","config","name","screens","groups","group","Object","values","undefined","findInitialRouteName","initialRouteName","key","keys","getLoaderForState","tree","state","getLoaderForStateChange","previousState","consumedParams","focusedRoute","routes","index","length","previousFocusedRoute","isNewlyFocused","item","initialParams","params","loaders","UNSTABLE_loader","loader","push","nested","getOwnPropertyDescriptor","get","screen","stateFromParams","has","childState","previousChildState","previousRouteParams","previousParams","previousStateFromParams","childLoader","Promise","all","map","l"],"sourceRoot":"../../src","sources":["DataLoading.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,15 +4,12 @@ import * as React from 'react';
4
4
  /**
5
5
  * Context which holds the required helpers needed to build nested navigators.
6
6
  */
7
- export const NavigationBuilderContext = /*#__PURE__*/React.createContext({
8
- onDispatchAction: () => undefined,
9
- onEmitEvent: () => undefined,
10
- onOptionsChange: () => undefined,
11
- scheduleUpdate: () => {
12
- throw new Error("Couldn't find a context for scheduling updates.");
13
- },
14
- flushUpdates: () => {
15
- throw new Error("Couldn't find a context for flushing updates.");
7
+ export const NavigationBuilderContext = /*#__PURE__*/React.createContext(undefined);
8
+ export function useNavigationBuilderContext() {
9
+ const value = React.use(NavigationBuilderContext);
10
+ if (value == null) {
11
+ throw new Error("Couldn't find a navigation builder context. Is your component inside NavigationContainer?");
16
12
  }
17
- });
13
+ return value;
14
+ }
18
15
  //# sourceMappingURL=NavigationBuilderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","createContext","onDispatchAction","undefined","onEmitEvent","onOptionsChange","scheduleUpdate","Error","flushUpdates"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AA6C9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAmBxD;EACDC,gBAAgB,EAAEA,CAAA,KAAMC,SAAS;EACjCC,WAAW,EAAEA,CAAA,KAAMD,SAAS;EAC5BE,eAAe,EAAEA,CAAA,KAAMF,SAAS;EAChCG,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDC,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAID,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","createContext","undefined","useNavigationBuilderContext","value","use","Error"],"sourceRoot":"../../src","sources":["NavigationBuilderContext.tsx"],"mappings":";;AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AA8E9B;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,gBAAGD,KAAK,CAACE,aAAa,CAEzDC,SAAS,CAAC;AAEZ,OAAO,SAASC,2BAA2BA,CAAA,EAAG;EAC5C,MAAMC,KAAK,GAAGL,KAAK,CAACM,GAAG,CAACL,wBAAwB,CAAC;EAEjD,IAAII,KAAK,IAAI,IAAI,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,2FACF,CAAC;EACH;EAEA,OAAOF,KAAK;AACd","ignoreList":[]}
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
+ import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
5
+ import { NavigationContainerRefContext } from "./NavigationContainerRefContext.js";
6
+ import { NavigationFocusedRouteStateContext } from "./NavigationFocusedRouteStateContext.js";
7
+ import { NavigationHelpersContext } from "./NavigationHelpersContext.js";
4
8
  import { NavigationIndependentTreeContext } from "./NavigationIndependentTreeContext.js";
5
- import { NamedRouteContextListContext, NavigationContext, NavigationRouteContext, NavigationRouteNameContext } from "./NavigationProvider.js";
9
+ import { IsScreenContext, NamedRouteContextListContext, NavigationContext, NavigationRouteContext } from "./NavigationProvider.js";
10
+ import { NavigationRootContext } from "./NavigationRootContext.js";
11
+ import { PreventRemoveContext } from "./PreventRemoveContext.js";
12
+ import { StaticTreeContext } from "./StaticTreeContext.js";
13
+ import { FocusedRouteKeyContext, IsFocusedContext, IsFocusedGetterContext } from "./useIsFocused.js";
14
+ import { NamedNavigationStateListenerListContext, NavigationStateListenerContext } from "./useNavigationState.js";
6
15
 
7
16
  /**
8
17
  * Component to make the child navigation container independent of parent containers.
@@ -14,17 +23,53 @@ export function NavigationIndependentTree({
14
23
  return (
15
24
  /*#__PURE__*/
16
25
  // We need to clear any existing contexts for nested independent container to work correctly
17
- _jsx(NamedRouteContextListContext.Provider, {
18
- value: undefined,
19
- children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
26
+ _jsx(NavigationIndependentTreeContext.Provider, {
27
+ value: true,
28
+ children: /*#__PURE__*/_jsx(NavigationContainerRefContext.Provider, {
20
29
  value: undefined,
21
- children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
30
+ children: /*#__PURE__*/_jsx(NavigationRootContext.Provider, {
22
31
  value: undefined,
23
- children: /*#__PURE__*/_jsx(NavigationRouteNameContext.Provider, {
32
+ children: /*#__PURE__*/_jsx(NavigationBuilderContext.Provider, {
24
33
  value: undefined,
25
- children: /*#__PURE__*/_jsx(NavigationIndependentTreeContext.Provider, {
26
- value: true,
27
- children: children
34
+ children: /*#__PURE__*/_jsx(StaticTreeContext.Provider, {
35
+ value: undefined,
36
+ children: /*#__PURE__*/_jsx(NavigationHelpersContext.Provider, {
37
+ value: undefined,
38
+ children: /*#__PURE__*/_jsx(NavigationStateListenerContext.Provider, {
39
+ value: undefined,
40
+ children: /*#__PURE__*/_jsx(FocusedRouteKeyContext.Provider, {
41
+ value: undefined,
42
+ children: /*#__PURE__*/_jsx(PreventRemoveContext.Provider, {
43
+ value: undefined,
44
+ children: /*#__PURE__*/_jsx(NamedNavigationStateListenerListContext.Provider, {
45
+ value: undefined,
46
+ children: /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
47
+ value: undefined,
48
+ children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
49
+ value: undefined,
50
+ children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
51
+ value: undefined,
52
+ children: /*#__PURE__*/_jsx(IsFocusedContext.Provider, {
53
+ value: undefined,
54
+ children: /*#__PURE__*/_jsx(IsFocusedGetterContext.Provider, {
55
+ value: undefined,
56
+ children: /*#__PURE__*/_jsx(IsScreenContext.Provider, {
57
+ value: false,
58
+ children: /*#__PURE__*/_jsx(NavigationFocusedRouteStateContext.Provider, {
59
+ value: undefined,
60
+ children: children
61
+ })
62
+ })
63
+ })
64
+ })
65
+ })
66
+ })
67
+ })
68
+ })
69
+ })
70
+ })
71
+ })
72
+ })
28
73
  })
29
74
  })
30
75
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationIndependentTreeContext","NamedRouteContextListContext","NavigationContext","NavigationRouteContext","NavigationRouteNameContext","jsx","_jsx","NavigationIndependentTree","children","Provider","value","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gCAAgC,QAAQ,uCAAoC;AACrF,SACEC,4BAA4B,EAC5BC,iBAAiB,EACjBC,sBAAsB,EACtBC,0BAA0B,QACrB,yBAAsB;;AAE7B;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,SAASC,yBAAyBA,CAAC;EACxCC;AAGF,CAAC,EAAE;EACD;IAAA;IACE;IACAF,IAAA,CAACL,4BAA4B,CAACQ,QAAQ;MAACC,KAAK,EAAEC,SAAU;MAAAH,QAAA,eACtDF,IAAA,CAACH,sBAAsB,CAACM,QAAQ;QAACC,KAAK,EAAEC,SAAU;QAAAH,QAAA,eAChDF,IAAA,CAACJ,iBAAiB,CAACO,QAAQ;UAACC,KAAK,EAAEC,SAAU;UAAAH,QAAA,eAC3CF,IAAA,CAACF,0BAA0B,CAACK,QAAQ;YAACC,KAAK,EAAEC,SAAU;YAAAH,QAAA,eACpDF,IAAA,CAACN,gCAAgC,CAACS,QAAQ;cAACC,KAAK,EAAE,IAAK;cAAAF,QAAA,EACpDA;YAAQ,CACgC;UAAC,CACT;QAAC,CACZ;MAAC,CACE;IAAC,CACG;EAAC;AAE5C","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","NavigationContainerRefContext","NavigationFocusedRouteStateContext","NavigationHelpersContext","NavigationIndependentTreeContext","IsScreenContext","NamedRouteContextListContext","NavigationContext","NavigationRouteContext","NavigationRootContext","PreventRemoveContext","StaticTreeContext","FocusedRouteKeyContext","IsFocusedContext","IsFocusedGetterContext","NamedNavigationStateListenerListContext","NavigationStateListenerContext","jsx","_jsx","NavigationIndependentTree","children","Provider","value","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,kCAAkC,QAAQ,yCAAsC;AACzF,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,gCAAgC,QAAQ,uCAAoC;AACrF,SACEC,eAAe,EACfC,4BAA4B,EAC5BC,iBAAiB,EACjBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SACEC,sBAAsB,EACtBC,gBAAgB,EAChBC,sBAAsB,QACjB,mBAAgB;AACvB,SACEC,uCAAuC,EACvCC,8BAA8B,QACzB,yBAAsB;;AAE7B;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,SAASC,yBAAyBA,CAAC;EACxCC;AAGF,CAAC,EAAE;EACD;IAAA;IACE;IACAF,IAAA,CAACd,gCAAgC,CAACiB,QAAQ;MAACC,KAAK,EAAE,IAAK;MAAAF,QAAA,eACrDF,IAAA,CAACjB,6BAA6B,CAACoB,QAAQ;QAACC,KAAK,EAAEC,SAAU;QAAAH,QAAA,eACvDF,IAAA,CAACT,qBAAqB,CAACY,QAAQ;UAACC,KAAK,EAAEC,SAAU;UAAAH,QAAA,eAC/CF,IAAA,CAAClB,wBAAwB,CAACqB,QAAQ;YAACC,KAAK,EAAEC,SAAU;YAAAH,QAAA,eAClDF,IAAA,CAACP,iBAAiB,CAACU,QAAQ;cAACC,KAAK,EAAEC,SAAU;cAAAH,QAAA,eAC3CF,IAAA,CAACf,wBAAwB,CAACkB,QAAQ;gBAACC,KAAK,EAAEC,SAAU;gBAAAH,QAAA,eAClDF,IAAA,CAACF,8BAA8B,CAACK,QAAQ;kBAACC,KAAK,EAAEC,SAAU;kBAAAH,QAAA,eACxDF,IAAA,CAACN,sBAAsB,CAACS,QAAQ;oBAACC,KAAK,EAAEC,SAAU;oBAAAH,QAAA,eAChDF,IAAA,CAACR,oBAAoB,CAACW,QAAQ;sBAACC,KAAK,EAAEC,SAAU;sBAAAH,QAAA,eAC9CF,IAAA,CAACH,uCAAuC,CAACM,QAAQ;wBAC/CC,KAAK,EAAEC,SAAU;wBAAAH,QAAA,eAEjBF,IAAA,CAACZ,4BAA4B,CAACe,QAAQ;0BACpCC,KAAK,EAAEC,SAAU;0BAAAH,QAAA,eAEjBF,IAAA,CAACV,sBAAsB,CAACa,QAAQ;4BAACC,KAAK,EAAEC,SAAU;4BAAAH,QAAA,eAChDF,IAAA,CAACX,iBAAiB,CAACc,QAAQ;8BAACC,KAAK,EAAEC,SAAU;8BAAAH,QAAA,eAC3CF,IAAA,CAACL,gBAAgB,CAACQ,QAAQ;gCAACC,KAAK,EAAEC,SAAU;gCAAAH,QAAA,eAC1CF,IAAA,CAACJ,sBAAsB,CAACO,QAAQ;kCAC9BC,KAAK,EAAEC,SAAU;kCAAAH,QAAA,eAEjBF,IAAA,CAACb,eAAe,CAACgB,QAAQ;oCAACC,KAAK,EAAE,KAAM;oCAAAF,QAAA,eACrCF,IAAA,CAAChB,kCAAkC,CAACmB,QAAQ;sCAC1CC,KAAK,EAAEC,SAAU;sCAAAH,QAAA,EAEhBA;oCAAQ,CACkC;kCAAC,CACtB;gCAAC,CACI;8BAAC,CACT;4BAAC,CACF;0BAAC,CACE;wBAAC,CACG;sBAAC,CACQ;oBAAC,CACtB;kBAAC,CACD;gBAAC,CACK;cAAC,CACT;YAAC,CACV;UAAC,CACI;QAAC,CACN;MAAC,CACK;IAAC,CACA;EAAC;AAEhD","ignoreList":[]}
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
+ import useLatestCallback from 'use-latest-callback';
5
+ import { FocusedRouteKeyContext, IsFocusedContext, IsFocusedGetterContext } from "./useIsFocused.js";
4
6
  import { useLazyValue } from "./useLazyValue.js";
7
+ import { NamedNavigationStateListenerProvider } from "./useNavigationState.js";
5
8
 
6
9
  /**
7
10
  * Context which holds the route prop for a screen.
@@ -13,7 +16,12 @@ export const NavigationRouteContext = /*#__PURE__*/React.createContext(undefined
13
16
  * Context which holds the navigation prop for a screen.
14
17
  */
15
18
  export const NavigationContext = /*#__PURE__*/React.createContext(undefined);
16
- export const NavigationRouteNameContext = /*#__PURE__*/React.createContext(undefined);
19
+
20
+ /**
21
+ * Context which indicates whether the component is inside a screen.
22
+ */
23
+ export const IsScreenContext = /*#__PURE__*/React.createContext(false);
24
+
17
25
  /**
18
26
  * Component to provide the navigation and route contexts to its children.
19
27
  */
@@ -29,17 +37,34 @@ export function NavigationProvider({
29
37
  ...parents,
30
38
  [route.name]: NamedRouteContext
31
39
  }), [NamedRouteContext, parents, route.name]);
32
- return /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
33
- value: NamedRouteContextList,
34
- children: /*#__PURE__*/_jsx(NamedRouteContext.Provider, {
35
- value: route,
36
- children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
40
+ const parentIsFocused = React.use(IsFocusedContext);
41
+ const focusedRouteKey = React.use(FocusedRouteKeyContext);
42
+
43
+ // Mark route as focused only if:
44
+ // - It doesn't have a parent navigator
45
+ // - Parent navigator is focused
46
+ const isFocused = parentIsFocused == null || parentIsFocused ? focusedRouteKey === route.key : false;
47
+ const getIsFocused = useLatestCallback(() => isFocused);
48
+ return /*#__PURE__*/_jsx(NamedNavigationStateListenerProvider, {
49
+ name: route.name,
50
+ children: /*#__PURE__*/_jsx(NamedRouteContextListContext.Provider, {
51
+ value: NamedRouteContextList,
52
+ children: /*#__PURE__*/_jsx(NamedRouteContext.Provider, {
37
53
  value: route,
38
- children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
39
- value: navigation,
40
- children: /*#__PURE__*/_jsx(NavigationRouteNameContext.Provider, {
41
- value: route.name,
42
- children: children
54
+ children: /*#__PURE__*/_jsx(NavigationRouteContext.Provider, {
55
+ value: route,
56
+ children: /*#__PURE__*/_jsx(NavigationContext.Provider, {
57
+ value: navigation,
58
+ children: /*#__PURE__*/_jsx(IsFocusedContext.Provider, {
59
+ value: isFocused,
60
+ children: /*#__PURE__*/_jsx(IsFocusedGetterContext.Provider, {
61
+ value: getIsFocused,
62
+ children: /*#__PURE__*/_jsx(IsScreenContext.Provider, {
63
+ value: true,
64
+ children: children
65
+ })
66
+ })
67
+ })
43
68
  })
44
69
  })
45
70
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLazyValue","jsx","_jsx","NavigationRouteContext","createContext","undefined","NavigationContext","NavigationRouteNameContext","NamedRouteContextListContext","NavigationProvider","route","navigation","children","NamedRouteContext","parents","use","NamedRouteContextList","useMemo","name","Provider","value"],"sourceRoot":"../../src","sources":["NavigationProvider.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,YAAY,QAAQ,mBAAgB;;AAE7C;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,sBAAsB,gBAAGJ,KAAK,CAACK,aAAa,CAEvDC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,gBAAGP,KAAK,CAACK,aAAa,CAElDC,SAAS,CAAC;AAEZ,OAAO,MAAME,0BAA0B,gBAAGR,KAAK,CAACK,aAAa,CAE3DC,SAAS,CAAC;AAQZ;AACA;AACA;AACA,OAAO,MAAMG,4BAA4B,gBAAGT,KAAK,CAACK,aAAa,CAE7DC,SAAS,CAAC;AAEZ,OAAO,SAASI,kBAAkBA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgB,CAAC,EAAE;EACzE,MAAMC,iBAAiB,GAAGb,YAAY,CAAC,mBAAMD,KAAK,CAACK,aAAa,CAACM,KAAK,CAAC,CAAC;EAExE,MAAMI,OAAO,GAAGf,KAAK,CAACgB,GAAG,CAACP,4BAA4B,CAAC;EAEvD,MAAMQ,qBAAqB,GAAGjB,KAAK,CAACkB,OAAO,CACzC,OAAO;IACL,GAAGH,OAAO;IACV,CAACJ,KAAK,CAACQ,IAAI,GAAGL;EAChB,CAAC,CAAC,EACF,CAACA,iBAAiB,EAAEC,OAAO,EAAEJ,KAAK,CAACQ,IAAI,CACzC,CAAC;EAED,oBACEhB,IAAA,CAACM,4BAA4B,CAACW,QAAQ;IAACC,KAAK,EAAEJ,qBAAsB;IAAAJ,QAAA,eAClEV,IAAA,CAACW,iBAAiB,CAACM,QAAQ;MAACC,KAAK,EAAEV,KAAM;MAAAE,QAAA,eACvCV,IAAA,CAACC,sBAAsB,CAACgB,QAAQ;QAACC,KAAK,EAAEV,KAAM;QAAAE,QAAA,eAC5CV,IAAA,CAACI,iBAAiB,CAACa,QAAQ;UAACC,KAAK,EAAET,UAAW;UAAAC,QAAA,eAC5CV,IAAA,CAACK,0BAA0B,CAACY,QAAQ;YAACC,KAAK,EAAEV,KAAK,CAACQ,IAAK;YAAAN,QAAA,EACpDA;UAAQ,CAC0B;QAAC,CACZ;MAAC,CACE;IAAC,CACR;EAAC,CACQ,CAAC;AAE5C","ignoreList":[]}
1
+ {"version":3,"names":["React","useLatestCallback","FocusedRouteKeyContext","IsFocusedContext","IsFocusedGetterContext","useLazyValue","NamedNavigationStateListenerProvider","jsx","_jsx","NavigationRouteContext","createContext","undefined","NavigationContext","IsScreenContext","NamedRouteContextListContext","NavigationProvider","route","navigation","children","NamedRouteContext","parents","use","NamedRouteContextList","useMemo","name","parentIsFocused","focusedRouteKey","isFocused","key","getIsFocused","Provider","value"],"sourceRoot":"../../src","sources":["NavigationProvider.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SACEC,sBAAsB,EACtBC,gBAAgB,EAChBC,sBAAsB,QACjB,mBAAgB;AACvB,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,oCAAoC,QAAQ,yBAAsB;;AAE3E;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,sBAAsB,gBAAGT,KAAK,CAACU,aAAa,CAEvDC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,gBAAGZ,KAAK,CAACU,aAAa,CAElDC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAME,eAAe,gBAAGb,KAAK,CAACU,aAAa,CAAC,KAAK,CAAC;;AAEzD;AACA;AACA;AACA,OAAO,MAAMI,4BAA4B,gBAAGd,KAAK,CAACU,aAAa,CAE7DC,SAAS,CAAC;AAQZ,OAAO,SAASI,kBAAkBA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgB,CAAC,EAAE;EACzE,MAAMC,iBAAiB,GAAGd,YAAY,CAAC,mBAAML,KAAK,CAACU,aAAa,CAACM,KAAK,CAAC,CAAC;EAExE,MAAMI,OAAO,GAAGpB,KAAK,CAACqB,GAAG,CAACP,4BAA4B,CAAC;EAEvD,MAAMQ,qBAAqB,GAAGtB,KAAK,CAACuB,OAAO,CACzC,OAAO;IACL,GAAGH,OAAO;IACV,CAACJ,KAAK,CAACQ,IAAI,GAAGL;EAChB,CAAC,CAAC,EACF,CAACA,iBAAiB,EAAEC,OAAO,EAAEJ,KAAK,CAACQ,IAAI,CACzC,CAAC;EAED,MAAMC,eAAe,GAAGzB,KAAK,CAACqB,GAAG,CAAClB,gBAAgB,CAAC;EACnD,MAAMuB,eAAe,GAAG1B,KAAK,CAACqB,GAAG,CAACnB,sBAAsB,CAAC;;EAEzD;EACA;EACA;EACA,MAAMyB,SAAS,GACbF,eAAe,IAAI,IAAI,IAAIA,eAAe,GACtCC,eAAe,KAAKV,KAAK,CAACY,GAAG,GAC7B,KAAK;EAEX,MAAMC,YAAY,GAAG5B,iBAAiB,CAAC,MAAM0B,SAAS,CAAC;EAEvD,oBACEnB,IAAA,CAACF,oCAAoC;IAACkB,IAAI,EAAER,KAAK,CAACQ,IAAK;IAAAN,QAAA,eACrDV,IAAA,CAACM,4BAA4B,CAACgB,QAAQ;MAACC,KAAK,EAAET,qBAAsB;MAAAJ,QAAA,eAClEV,IAAA,CAACW,iBAAiB,CAACW,QAAQ;QAACC,KAAK,EAAEf,KAAM;QAAAE,QAAA,eACvCV,IAAA,CAACC,sBAAsB,CAACqB,QAAQ;UAACC,KAAK,EAAEf,KAAM;UAAAE,QAAA,eAC5CV,IAAA,CAACI,iBAAiB,CAACkB,QAAQ;YAACC,KAAK,EAAEd,UAAW;YAAAC,QAAA,eAC5CV,IAAA,CAACL,gBAAgB,CAAC2B,QAAQ;cAACC,KAAK,EAAEJ,SAAU;cAAAT,QAAA,eAC1CV,IAAA,CAACJ,sBAAsB,CAAC0B,QAAQ;gBAACC,KAAK,EAAEF,YAAa;gBAAAX,QAAA,eACnDV,IAAA,CAACK,eAAe,CAACiB,QAAQ;kBAACC,KAAK,EAAE,IAAK;kBAAAb,QAAA,EACnCA;gBAAQ,CACe;cAAC,CACI;YAAC,CACT;UAAC,CACF;QAAC,CACE;MAAC,CACR;IAAC,CACQ;EAAC,CACJ,CAAC;AAE3C","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ /**
5
+ * Context which holds the navigation object for components outside a screen.
6
+ */
7
+ export const NavigationRootContext = /*#__PURE__*/React.createContext(undefined);
8
+ //# sourceMappingURL=NavigationRootContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","NavigationRootContext","createContext","undefined"],"sourceRoot":"../../src","sources":["NavigationRootContext.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,gBAAGD,KAAK,CAACE,aAAa,CAEtDC,SAAS,CAAC","ignoreList":[]}
@@ -16,6 +16,9 @@ export const NavigationStateContext = /*#__PURE__*/React.createContext({
16
16
  get setState() {
17
17
  throw new Error(MISSING_CONTEXT_ERROR);
18
18
  },
19
+ get subscribe() {
20
+ throw new Error(MISSING_CONTEXT_ERROR);
21
+ },
19
22
  get getIsInitial() {
20
23
  throw new Error(MISSING_CONTEXT_ERROR);
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAIC,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIM,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAID,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIO,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIF,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIQ,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIH,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIS,YAAYA,CAAA,EAAQ;IACtB,MAAM,IAAIJ,KAAK,CAACL,qBAAqB,CAAC;EACxC;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","subscribe","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAIC,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIM,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAID,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIO,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIF,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIQ,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIH,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIS,SAASA,CAAA,EAAQ;IACnB,MAAM,IAAIJ,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIU,YAAYA,CAAA,EAAQ;IACtB,MAAM,IAAIL,KAAK,CAACL,qBAAqB,CAAC;EACxC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAUrDC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAWrDC,SAAS,CAAC","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import { nanoid } from 'nanoid/non-secure';
4
3
  import * as React from 'react';
5
4
  import useLatestCallback from 'use-latest-callback';
6
5
  import { NavigationHelpersContext } from "./NavigationHelpersContext.js";
@@ -11,16 +10,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
10
  * Util function to transform map of prevented routes to a simpler object.
12
11
  */
13
12
  const transformPreventedRoutes = preventedRoutesMap => {
14
- const preventedRoutesToTransform = [...preventedRoutesMap.values()];
15
- const preventedRoutes = preventedRoutesToTransform.reduce((acc, {
16
- routeKey,
17
- preventRemove
18
- }) => {
19
- acc[routeKey] = {
20
- preventRemove: acc[routeKey]?.preventRemove || preventRemove
13
+ const preventedRoutes = {};
14
+ for (const routeKey of preventedRoutesMap.values()) {
15
+ preventedRoutes[routeKey] = {
16
+ preventRemove: true
21
17
  };
22
- return acc;
23
- }, {});
18
+ }
24
19
  return preventedRoutes;
25
20
  };
26
21
 
@@ -30,38 +25,51 @@ const transformPreventedRoutes = preventedRoutesMap => {
30
25
  export function PreventRemoveProvider({
31
26
  children
32
27
  }) {
33
- const [parentId] = React.useState(() => nanoid());
28
+ const parentId = React.useId();
34
29
  const [preventedRoutesMap, setPreventedRoutesMap] = React.useState(() => new Map());
35
- const navigation = React.useContext(NavigationHelpersContext);
36
- const route = React.useContext(NavigationRouteContext);
37
- const preventRemoveContextValue = React.useContext(PreventRemoveContext);
30
+ const registry = React.useRef(new Map());
31
+ const navigation = React.use(NavigationHelpersContext);
32
+ const route = React.use(NavigationRouteContext);
33
+ const preventRemoveContextValue = React.use(PreventRemoveContext);
38
34
  // take `setPreventRemove` from parent context - if exist it means we're in a nested context
39
35
  const setParentPrevented = preventRemoveContextValue?.setPreventRemove;
36
+ const notifyParentPrevented = preventRemoveContextValue?.notifyPreventRemove;
40
37
  const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {
41
- if (preventRemove && (navigation == null || navigation?.getState().routes.every(route => route.key !== routeKey))) {
42
- throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);
38
+ if (preventRemove && navigation == null) {
39
+ throw new Error("Couldn't find a navigation object. This is likely a bug in the navigator.\n\nIf you're using a custom navigator, make sure that the navigator content is wrapped by the 'render' function returned by 'useNavigationBuilder'.");
43
40
  }
41
+ if (preventRemove) {
42
+ registry.current.set(id, routeKey);
43
+ } else {
44
+ registry.current.delete(id);
45
+ }
46
+ });
47
+ const notifyPreventRemove = useLatestCallback(() => {
48
+ // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
44
49
  setPreventedRoutesMap(prevPrevented => {
50
+ const nextPrevented = registry.current;
51
+ const hasChanged = prevPrevented.size !== nextPrevented.size || [...nextPrevented].some(([id, routeKey]) => prevPrevented.get(id) !== routeKey);
52
+
45
53
  // values haven't changed - do nothing
46
- if (routeKey === prevPrevented.get(id)?.routeKey && preventRemove === prevPrevented.get(id)?.preventRemove) {
54
+ if (!hasChanged) {
47
55
  return prevPrevented;
48
56
  }
49
- const nextPrevented = new Map(prevPrevented);
50
- if (preventRemove) {
51
- nextPrevented.set(id, {
52
- routeKey,
53
- preventRemove
54
- });
55
- } else {
56
- nextPrevented.delete(id);
57
- }
58
- return nextPrevented;
57
+ return new Map(nextPrevented);
59
58
  });
60
59
  });
61
- const isPrevented = [...preventedRoutesMap.values()].some(({
62
- preventRemove
63
- }) => preventRemove);
60
+
61
+ // Sync the state on every commit in case the registry was changed by a screen
62
+ // unmounting while hidden with `<Activity>`, where no passive effects run
63
+ // Also notify the parent so nested prevention propagates upwards
64
64
  React.useEffect(() => {
65
+ notifyPreventRemove();
66
+ notifyParentPrevented?.();
67
+ return () => {
68
+ notifyParentPrevented?.();
69
+ };
70
+ });
71
+ const isPrevented = preventedRoutesMap.size > 0;
72
+ React.useInsertionEffect(() => {
65
73
  if (route?.key !== undefined && setParentPrevented !== undefined) {
66
74
  // when route is defined (and setParentPrevented) it means we're in a nested stack
67
75
  // route.key then will be the route key of parent
@@ -74,8 +82,9 @@ export function PreventRemoveProvider({
74
82
  }, [parentId, isPrevented, route?.key, setParentPrevented]);
75
83
  const value = React.useMemo(() => ({
76
84
  setPreventRemove,
85
+ notifyPreventRemove,
77
86
  preventedRoutes: transformPreventedRoutes(preventedRoutesMap)
78
- }), [setPreventRemove, preventedRoutesMap]);
87
+ }), [setPreventRemove, notifyPreventRemove, preventedRoutesMap]);
79
88
  return /*#__PURE__*/_jsx(PreventRemoveContext.Provider, {
80
89
  value: value,
81
90
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","preventedRoutesToTransform","values","preventedRoutes","reduce","acc","routeKey","preventRemove","PreventRemoveProvider","children","parentId","useState","setPreventedRoutesMap","Map","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","id","getState","routes","every","key","Error","prevPrevented","get","nextPrevented","set","delete","isPrevented","some","useEffect","undefined","value","useMemo","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","jsx","_jsx","transformPreventedRoutes","preventedRoutesMap","preventedRoutes","routeKey","values","preventRemove","PreventRemoveProvider","children","parentId","useId","setPreventedRoutesMap","useState","Map","registry","useRef","navigation","use","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","notifyParentPrevented","notifyPreventRemove","id","Error","current","set","delete","prevPrevented","nextPrevented","hasChanged","size","some","get","useEffect","isPrevented","useInsertionEffect","key","undefined","value","useMemo","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -17,8 +17,10 @@ export function SceneView({
17
17
  route,
18
18
  navigation,
19
19
  routeState,
20
+ getFocusedRouteKey,
20
21
  getState,
21
22
  setState,
23
+ subscribe,
22
24
  options,
23
25
  clearOptions
24
26
  }) {
@@ -29,7 +31,7 @@ export function SceneView({
29
31
  } = useOptionsGetters({
30
32
  key: route.key,
31
33
  options,
32
- navigation
34
+ getFocusedRouteKey
33
35
  });
34
36
  const setKey = React.useCallback(key => {
35
37
  navigatorKeyRef.current = key;
@@ -42,47 +44,14 @@ export function SceneView({
42
44
  const setCurrentState = React.useCallback(child => {
43
45
  const state = getState();
44
46
  const routes = state.routes.map(r => {
45
- if (r.key !== route.key) {
46
- return r;
47
- }
48
- const nextRoute = r.state !== child ? {
49
- ...r,
50
- state: child
51
- } : r;
52
-
53
- // Before updating the state, cleanup any nested screen and state
54
- // This will avoid the navigator trying to handle them again
55
- if (nextRoute.params && ('state' in nextRoute.params && typeof nextRoute.params.state === 'object' && nextRoute.params.state !== null || 'screen' in nextRoute.params && typeof nextRoute.params.screen === 'string')) {
56
- // @ts-expect-error: we don't have correct type for params
57
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
- const {
59
- state,
60
- screen,
61
- params,
62
- initial,
63
- ...rest
64
- } = nextRoute.params;
65
- if (Object.keys(rest).length) {
66
- return {
67
- ...nextRoute,
68
- params: rest
69
- };
70
- } else {
71
- const {
72
- // We destructure the params to omit them
73
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
74
- params,
75
- ...restRoute
76
- } = nextRoute;
77
- return restRoute;
78
- }
47
+ if (r.key === route.key && r.state !== child) {
48
+ return {
49
+ ...r,
50
+ state: child
51
+ };
79
52
  }
80
- return nextRoute;
53
+ return r;
81
54
  });
82
-
83
- // Make sure not to update state if routes haven't changed
84
- // Otherwise this will result in params cleanup as well
85
- // We only want to cleanup params when state changes - after they are used
86
55
  if (!isArrayEqual(state.routes, routes)) {
87
56
  setState({
88
57
  ...state,
@@ -101,7 +70,7 @@ export function SceneView({
101
70
  // eslint-disable-next-line react-hooks/exhaustive-deps
102
71
  }, []);
103
72
  const getIsInitial = React.useCallback(() => isInitialRef.current, []);
104
- const parentFocusedRouteState = React.useContext(NavigationFocusedRouteStateContext);
73
+ const parentFocusedRouteState = React.use(NavigationFocusedRouteStateContext);
105
74
  const focusedRouteState = React.useMemo(() => {
106
75
  const state = {
107
76
  routes: [{
@@ -131,11 +100,12 @@ export function SceneView({
131
100
  state: routeState,
132
101
  getState: getCurrentState,
133
102
  setState: setCurrentState,
103
+ subscribe,
134
104
  getKey,
135
105
  setKey,
136
106
  getIsInitial,
137
107
  addOptionsGetter
138
- }), [routeState, getCurrentState, setCurrentState, getKey, setKey, getIsInitial, addOptionsGetter]);
108
+ }), [routeState, getCurrentState, setCurrentState, subscribe, getKey, setKey, getIsInitial, addOptionsGetter]);
139
109
  const ScreenComponent = screen.getComponent ? screen.getComponent() : screen.component;
140
110
  return /*#__PURE__*/_jsx(NavigationStateContext.Provider, {
141
111
  value: context,
@@ -1 +1 @@
1
- {"version":3,"names":["React","EnsureSingleNavigator","isArrayEqual","NavigationFocusedRouteStateContext","NavigationStateContext","StaticContainer","useOptionsGetters","jsx","_jsx","SceneView","screen","route","navigation","routeState","getState","setState","options","clearOptions","navigatorKeyRef","useRef","undefined","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","setCurrentState","child","map","nextRoute","params","initial","rest","Object","keys","length","restRoute","isInitialRef","useEffect","getIsInitial","parentFocusedRouteState","useContext","focusedRouteState","useMemo","name","path","addState","parent","parentRoute","context","ScreenComponent","getComponent","component","Provider","value","children","render"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","EnsureSingleNavigator","isArrayEqual","NavigationFocusedRouteStateContext","NavigationStateContext","StaticContainer","useOptionsGetters","jsx","_jsx","SceneView","screen","route","navigation","routeState","getFocusedRouteKey","getState","setState","subscribe","options","clearOptions","navigatorKeyRef","useRef","undefined","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","setCurrentState","child","map","isInitialRef","useEffect","getIsInitial","parentFocusedRouteState","use","focusedRouteState","useMemo","name","params","path","addState","parent","parentRoute","context","ScreenComponent","getComponent","component","Provider","value","children","render"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}