@react-navigation/core 8.0.0-alpha.3 → 8.0.0-alpha.31

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 (285) hide show
  1. package/lib/module/BaseNavigationContainer.js +38 -19
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/ConsumedParamsContext.js +5 -0
  4. package/lib/module/ConsumedParamsContext.js.map +1 -0
  5. package/lib/module/DataLoading.js +127 -0
  6. package/lib/module/DataLoading.js.map +1 -0
  7. package/lib/module/NavigationBuilderContext.js +1 -0
  8. package/lib/module/NavigationBuilderContext.js.map +1 -1
  9. package/lib/module/NavigationIndependentTree.js +20 -8
  10. package/lib/module/NavigationIndependentTree.js.map +1 -1
  11. package/lib/module/NavigationProvider.js +22 -11
  12. package/lib/module/NavigationProvider.js.map +1 -1
  13. package/lib/module/NavigationStateContext.js +3 -0
  14. package/lib/module/NavigationStateContext.js.map +1 -1
  15. package/lib/module/PreventRemoveContext.js.map +1 -1
  16. package/lib/module/PreventRemoveProvider.js +37 -27
  17. package/lib/module/PreventRemoveProvider.js.map +1 -1
  18. package/lib/module/SceneView.js +10 -41
  19. package/lib/module/SceneView.js.map +1 -1
  20. package/lib/module/StaticNavigation.js +179 -50
  21. package/lib/module/StaticNavigation.js.map +1 -1
  22. package/lib/module/StaticTreeContext.js +5 -0
  23. package/lib/module/StaticTreeContext.js.map +1 -0
  24. package/lib/module/checkSerializable.js +18 -13
  25. package/lib/module/checkSerializable.js.map +1 -1
  26. package/lib/module/createNavigationContainerRef.js +6 -8
  27. package/lib/module/createNavigationContainerRef.js.map +1 -1
  28. package/lib/module/createNavigatorFactory.js +27 -5
  29. package/lib/module/createNavigatorFactory.js.map +1 -1
  30. package/lib/module/findFocusedRoute.js +7 -4
  31. package/lib/module/findFocusedRoute.js.map +1 -1
  32. package/lib/module/getActionFromState.js +45 -20
  33. package/lib/module/getActionFromState.js.map +1 -1
  34. package/lib/module/getPathFromState.js +171 -90
  35. package/lib/module/getPathFromState.js.map +1 -1
  36. package/lib/module/getPatternParts.js +20 -4
  37. package/lib/module/getPatternParts.js.map +1 -1
  38. package/lib/module/getStateFromPath.js +487 -217
  39. package/lib/module/getStateFromPath.js.map +1 -1
  40. package/lib/module/getStateFromRouteParams.js +23 -0
  41. package/lib/module/getStateFromRouteParams.js.map +1 -0
  42. package/lib/module/index.js +5 -4
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/theming/useTheme.js +1 -1
  45. package/lib/module/theming/useTheme.js.map +1 -1
  46. package/lib/module/types.js +35 -0
  47. package/lib/module/types.js.map +1 -1
  48. package/lib/module/useDescriptors.js +21 -11
  49. package/lib/module/useDescriptors.js.map +1 -1
  50. package/lib/module/useEventEmitter.js +48 -33
  51. package/lib/module/useEventEmitter.js.map +1 -1
  52. package/lib/module/useFocusEvents.js +12 -4
  53. package/lib/module/useFocusEvents.js.map +1 -1
  54. package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
  55. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  56. package/lib/module/useIsFocused.js +7 -12
  57. package/lib/module/useIsFocused.js.map +1 -1
  58. package/lib/module/useKeyedChildListeners.js +4 -2
  59. package/lib/module/useKeyedChildListeners.js.map +1 -1
  60. package/lib/module/useLazyValue.js.map +1 -1
  61. package/lib/module/useNavigation.js +2 -15
  62. package/lib/module/useNavigation.js.map +1 -1
  63. package/lib/module/useNavigationBuilder.js +204 -131
  64. package/lib/module/useNavigationBuilder.js.map +1 -1
  65. package/lib/module/useNavigationCache.js +22 -17
  66. package/lib/module/useNavigationCache.js.map +1 -1
  67. package/lib/module/useNavigationHelpers.js +28 -10
  68. package/lib/module/useNavigationHelpers.js.map +1 -1
  69. package/lib/module/useNavigationIndependentTree.js +1 -1
  70. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  71. package/lib/module/useNavigationState.js +125 -45
  72. package/lib/module/useNavigationState.js.map +1 -1
  73. package/lib/module/useOnAction.js +37 -7
  74. package/lib/module/useOnAction.js.map +1 -1
  75. package/lib/module/useOnGetState.js +6 -3
  76. package/lib/module/useOnGetState.js.map +1 -1
  77. package/lib/module/useOnPreventRemove.js +39 -30
  78. package/lib/module/useOnPreventRemove.js.map +1 -1
  79. package/lib/module/useOnRouteFocus.js +1 -1
  80. package/lib/module/useOnRouteFocus.js.map +1 -1
  81. package/lib/module/useOptionsGetters.js +10 -5
  82. package/lib/module/useOptionsGetters.js.map +1 -1
  83. package/lib/module/usePreventRemove.js +10 -3
  84. package/lib/module/usePreventRemove.js.map +1 -1
  85. package/lib/module/usePreventRemoveContext.js +1 -1
  86. package/lib/module/usePreventRemoveContext.js.map +1 -1
  87. package/lib/module/useRegisterNavigator.js +2 -2
  88. package/lib/module/useRegisterNavigator.js.map +1 -1
  89. package/lib/module/useRoute.js +2 -0
  90. package/lib/module/useRoute.js.map +1 -1
  91. package/lib/module/useRouteCache.js +17 -11
  92. package/lib/module/useRouteCache.js.map +1 -1
  93. package/lib/module/useScheduleUpdate.js +9 -9
  94. package/lib/module/useScheduleUpdate.js.map +1 -1
  95. package/lib/module/useStateForPath.js +1 -1
  96. package/lib/module/useStateForPath.js.map +1 -1
  97. package/lib/module/useSyncState.js +32 -9
  98. package/lib/module/useSyncState.js.map +1 -1
  99. package/lib/module/validatePathConfig.js +50 -36
  100. package/lib/module/validatePathConfig.js.map +1 -1
  101. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  102. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  103. package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
  104. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  105. package/lib/typescript/src/DataLoading.d.ts +21 -0
  106. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  107. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  108. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  109. package/lib/typescript/src/Group.d.ts +1 -1
  110. package/lib/typescript/src/Group.d.ts.map +1 -1
  111. package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -8
  112. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  113. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  114. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  115. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  116. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  117. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  118. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  119. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  120. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  121. package/lib/typescript/src/NavigationProvider.d.ts +12 -13
  122. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  123. package/lib/typescript/src/NavigationStateContext.d.ts +4 -3
  124. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  125. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  126. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  127. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  128. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  129. package/lib/typescript/src/SceneView.d.ts +4 -2
  130. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  131. package/lib/typescript/src/Screen.d.ts +1 -1
  132. package/lib/typescript/src/Screen.d.ts.map +1 -1
  133. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  134. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  135. package/lib/typescript/src/StaticNavigation.d.ts +189 -109
  136. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  137. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  138. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  139. package/lib/typescript/src/checkSerializable.d.ts +8 -4
  140. package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
  141. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  142. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  143. package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
  144. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  145. package/lib/typescript/src/findFocusedRoute.d.ts +3 -8
  146. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  147. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  148. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  149. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  150. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  151. package/lib/typescript/src/getPatternParts.d.ts +1 -0
  152. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  153. package/lib/typescript/src/getStateFromPath.d.ts +4 -7
  154. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  155. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  156. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  157. package/lib/typescript/src/index.d.ts +36 -33
  158. package/lib/typescript/src/index.d.ts.map +1 -1
  159. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  160. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  161. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  162. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  163. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  164. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  165. package/lib/typescript/src/types.d.ts +260 -159
  166. package/lib/typescript/src/types.d.ts.map +1 -1
  167. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  168. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  169. package/lib/typescript/src/useComponent.d.ts +1 -1
  170. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  171. package/lib/typescript/src/useDescriptors.d.ts +10 -9
  172. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  173. package/lib/typescript/src/useEventEmitter.d.ts +2 -2
  174. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  175. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  176. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  177. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  178. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  179. package/lib/typescript/src/useIsFocused.d.ts +3 -0
  180. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  181. package/lib/typescript/src/useKeyedChildListeners.d.ts +3 -3
  182. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  183. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  184. package/lib/typescript/src/useNavigation.d.ts +4 -2
  185. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  186. package/lib/typescript/src/useNavigationBuilder.d.ts +23 -30
  187. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  188. package/lib/typescript/src/useNavigationCache.d.ts +3 -3
  189. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  190. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  191. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  192. package/lib/typescript/src/useNavigationHelpers.d.ts +19 -27
  193. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  194. package/lib/typescript/src/useNavigationState.d.ts +17 -3
  195. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  196. package/lib/typescript/src/useOnAction.d.ts +9 -9
  197. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  198. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  199. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  200. package/lib/typescript/src/useOnPreventRemove.d.ts +5 -9
  201. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  202. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  203. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  204. package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
  205. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  206. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  207. package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
  208. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  209. package/lib/typescript/src/useRoute.d.ts +7 -3
  210. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  211. package/lib/typescript/src/useRouteCache.d.ts +5 -5
  212. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  213. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  214. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  215. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  216. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  217. package/lib/typescript/src/useSyncState.d.ts +1 -0
  218. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  219. package/lib/typescript/src/utilities.d.ts +74 -37
  220. package/lib/typescript/src/utilities.d.ts.map +1 -1
  221. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  222. package/package.json +23 -22
  223. package/src/BaseNavigationContainer.tsx +362 -334
  224. package/src/ConsumedParamsContext.tsx +5 -0
  225. package/src/DataLoading.tsx +203 -0
  226. package/src/NavigationBuilderContext.tsx +14 -9
  227. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  228. package/src/NavigationIndependentTree.tsx +23 -12
  229. package/src/NavigationProvider.tsx +26 -15
  230. package/src/NavigationStateContext.tsx +9 -6
  231. package/src/PreventRemoveContext.tsx +1 -0
  232. package/src/PreventRemoveProvider.tsx +51 -46
  233. package/src/SceneView.tsx +11 -39
  234. package/src/StaticNavigation.tsx +659 -307
  235. package/src/StaticTreeContext.tsx +7 -0
  236. package/src/checkSerializable.tsx +35 -19
  237. package/src/createNavigationContainerRef.tsx +12 -9
  238. package/src/createNavigatorFactory.tsx +92 -8
  239. package/src/findFocusedRoute.tsx +16 -16
  240. package/src/getActionFromState.tsx +87 -51
  241. package/src/getPathFromState.tsx +254 -128
  242. package/src/getPatternParts.tsx +25 -4
  243. package/src/getStateFromPath.tsx +821 -331
  244. package/src/getStateFromRouteParams.tsx +59 -0
  245. package/src/index.tsx +55 -5
  246. package/src/theming/useTheme.tsx +1 -1
  247. package/src/types.tsx +798 -373
  248. package/src/useDescriptors.tsx +31 -14
  249. package/src/useEventEmitter.tsx +52 -38
  250. package/src/useFocusEvents.tsx +15 -7
  251. package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
  252. package/src/useIsFocused.tsx +14 -21
  253. package/src/useKeyedChildListeners.tsx +4 -2
  254. package/src/useLazyValue.tsx +2 -2
  255. package/src/useNavigation.tsx +7 -24
  256. package/src/useNavigationBuilder.tsx +314 -186
  257. package/src/useNavigationCache.tsx +32 -25
  258. package/src/useNavigationHelpers.tsx +27 -10
  259. package/src/useNavigationIndependentTree.tsx +1 -1
  260. package/src/useNavigationState.tsx +168 -69
  261. package/src/useOnAction.tsx +61 -13
  262. package/src/useOnGetState.tsx +5 -3
  263. package/src/useOnPreventRemove.tsx +75 -42
  264. package/src/useOnRouteFocus.tsx +10 -12
  265. package/src/useOptionsGetters.tsx +11 -5
  266. package/src/usePreventRemove.tsx +12 -3
  267. package/src/usePreventRemoveContext.tsx +1 -1
  268. package/src/useRegisterNavigator.tsx +2 -2
  269. package/src/useRoute.tsx +20 -6
  270. package/src/useRouteCache.tsx +22 -16
  271. package/src/useScheduleUpdate.tsx +9 -10
  272. package/src/useStateForPath.tsx +1 -1
  273. package/src/useSyncState.tsx +35 -9
  274. package/src/utilities.tsx +144 -31
  275. package/src/validatePathConfig.tsx +86 -57
  276. package/lib/module/CurrentRenderContext.js +0 -10
  277. package/lib/module/CurrentRenderContext.js.map +0 -1
  278. package/lib/module/useCurrentRender.js +0 -19
  279. package/lib/module/useCurrentRender.js.map +0 -1
  280. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  281. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  282. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  283. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  284. package/src/CurrentRenderContext.tsx +0 -9
  285. package/src/useCurrentRender.tsx +0 -31
@@ -1,23 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
- import { useNavigation } from "./useNavigation.js";
4
+ export const FocusedRouteKeyContext = /*#__PURE__*/React.createContext(undefined);
5
+ export const IsFocusedContext = /*#__PURE__*/React.createContext(undefined);
5
6
 
6
7
  /**
7
8
  * Hook to get the current focus state of the screen. Returns a `true` if screen is focused, otherwise `false`.
8
9
  * This can be used if a component needs to render something based on the focus state.
9
10
  */
10
11
  export function useIsFocused() {
11
- const navigation = useNavigation();
12
- const subscribe = React.useCallback(callback => {
13
- const unsubscribeFocus = navigation.addListener('focus', callback);
14
- const unsubscribeBlur = navigation.addListener('blur', callback);
15
- return () => {
16
- unsubscribeFocus();
17
- unsubscribeBlur();
18
- };
19
- }, [navigation]);
20
- const value = React.useSyncExternalStore(subscribe, navigation.isFocused, navigation.isFocused);
21
- return value;
12
+ const isFocused = React.use(IsFocusedContext);
13
+ if (isFocused === undefined) {
14
+ throw new Error("Couldn't determine focus state. Is your component inside a screen in a navigator?");
15
+ }
16
+ return isFocused;
22
17
  }
23
18
  //# sourceMappingURL=useIsFocused.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useNavigation","useIsFocused","navigation","subscribe","useCallback","callback","unsubscribeFocus","addListener","unsubscribeBlur","value","useSyncExternalStore","isFocused"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,oBAAiB;;AAE/C;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAA,EAAY;EACtC,MAAMC,UAAU,GAAGF,aAAa,CAAC,CAAC;EAElC,MAAMG,SAAS,GAAGJ,KAAK,CAACK,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,gBAAgB,GAAGJ,UAAU,CAACK,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAClE,MAAMG,eAAe,GAAGN,UAAU,CAACK,WAAW,CAAC,MAAM,EAAEF,QAAQ,CAAC;IAEhE,OAAO,MAAM;MACXC,gBAAgB,CAAC,CAAC;MAClBE,eAAe,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EACD,CAACN,UAAU,CACb,CAAC;EAED,MAAMO,KAAK,GAAGV,KAAK,CAACW,oBAAoB,CACtCP,SAAS,EACTD,UAAU,CAACS,SAAS,EACpBT,UAAU,CAACS,SACb,CAAC;EAED,OAAOF,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["React","FocusedRouteKeyContext","createContext","undefined","IsFocusedContext","useIsFocused","isFocused","use","Error"],"sourceRoot":"../../src","sources":["useIsFocused.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,MAAMC,sBAAsB,gBAAGD,KAAK,CAACE,aAAa,CACvDC,SACF,CAAC;AAED,OAAO,MAAMC,gBAAgB,gBAAGJ,KAAK,CAACE,aAAa,CACjDC,SACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASE,YAAYA,CAAA,EAAY;EACtC,MAAMC,SAAS,GAAGN,KAAK,CAACO,GAAG,CAACH,gBAAgB,CAAC;EAE7C,IAAIE,SAAS,KAAKH,SAAS,EAAE;IAC3B,MAAM,IAAIK,KAAK,CACb,mFACF,CAAC;EACH;EAEA,OAAOF,SAAS;AAClB","ignoreList":[]}
@@ -15,8 +15,10 @@ export function useKeyedChildListeners() {
15
15
  // @ts-expect-error: according to ref stated above you can use `key` to index type
16
16
  keyedListeners[type][key] = listener;
17
17
  return () => {
18
- // @ts-expect-error: according to ref stated above you can use `key` to index type
19
- keyedListeners[type][key] = undefined;
18
+ if (keyedListeners[type][key] === listener) {
19
+ // @ts-expect-error: according to ref stated above you can use `key` to index type
20
+ keyedListeners[type][key] = undefined;
21
+ }
20
22
  };
21
23
  }, [keyedListeners]);
22
24
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX;MACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;IACvC,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","useKeyedChildListeners","current","keyedListeners","useRef","Object","assign","create","getState","beforeRemove","addKeyedListener","useCallback","type","key","listener","undefined"],"sourceRoot":"../../src","sources":["useKeyedChildListeners.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAM;IAAEC,OAAO,EAAEC;EAAe,CAAC,GAAGH,KAAK,CAACI,MAAM,CAM9CC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;IACjCC,QAAQ,EAAE,CAAC,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC,CACH,CAAC;EAED,MAAMC,gBAAgB,GAAGV,KAAK,CAACW,WAAW,CACxC,CACEC,IAAO,EACPC,GAAW,EACXC,QAA6B,KAC1B;IACH;IACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGC,QAAQ;IAEpC,OAAO,MAAM;MACX,IAAIX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,KAAKC,QAAQ,EAAE;QAC1C;QACAX,cAAc,CAACS,IAAI,CAAC,CAACC,GAAG,CAAC,GAAGE,SAAS;MACvC;IACF,CAAC;EACH,CAAC,EACD,CAACZ,cAAc,CACjB,CAAC;EAED,OAAO;IACLA,cAAc;IACdO;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,EAAE;EAC/C,MAAMC,OAAO,GAAGH,KAAK,CAACI,MAAM,CAAIC,SAAS,CAAC;EAE1C,IAAIF,OAAO,CAACG,OAAO,KAAKD,SAAS,EAAE;IACjCF,OAAO,CAACG,OAAO,GAAGJ,MAAM,CAAC,CAAC;EAC5B;EAEA,OAAOC,OAAO,CAACG,OAAO;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","useLazyValue","create","lazyRef","useRef","undefined","current"],"sourceRoot":"../../src","sources":["useLazyValue.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,YAAYA,CAAIC,MAAe,EAAK;EAClD,MAAMC,OAAO,GAAGH,KAAK,CAACI,MAAM,CAAIC,SAAS,CAAC;EAE1C,IAAIF,OAAO,CAACG,OAAO,KAAKD,SAAS,EAAE;IACjCF,OAAO,CAACG,OAAO,GAAGJ,MAAM,CAAC,CAAC;EAC5B;EAEA,OAAOC,OAAO,CAACG,OAAO;AACxB","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { NavigationContainerRefContext } from "./NavigationContainerRefContext.js";
5
- import { NavigationContext, NavigationRouteNameContext } from "./NavigationProvider.js";
5
+ import { NavigationContext } from "./NavigationProvider.js";
6
6
 
7
7
  /**
8
8
  * Hook to access the navigation prop of the parent screen anywhere.
@@ -22,20 +22,7 @@ export function useNavigation(name) {
22
22
  }
23
23
  return navigation ?? root;
24
24
  }
25
- const routeName = React.use(NavigationRouteNameContext);
26
-
27
- // Generally, this condition isn't needed as `getParent(name)` works for current screen
28
- // However, it'll throw if the hook is used in a preloaded screen
29
- if (routeName === name) {
30
- if (navigation === undefined) {
31
- throw new Error(`Couldn't find a navigation object for '${name}'. This is not expected.`);
32
- }
33
- return navigation;
34
- }
35
-
36
- // We get parent first so that `getParent(name)` is not called in preloaded screens
37
- // It's ok since `getParent` also works for current screen, so parent is not skipped
38
- const parent = navigation?.getParent()?.getParent(name);
25
+ const parent = navigation?.getParent(name);
39
26
  if (parent === undefined) {
40
27
  throw new Error(`Couldn't find a navigation object for '${name}' in current or any parent screens. Is your component inside the correct screen?`);
41
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationContainerRefContext","NavigationContext","NavigationRouteNameContext","useNavigation","name","root","use","navigation","undefined","Error","routeName","parent","getParent"],"sourceRoot":"../../src","sources":["useNavigation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SACEC,iBAAiB,EACjBC,0BAA0B,QACrB,yBAAsB;;AAS7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAO,SAASC,aAAaA,CAACC,IAAa,EAAW;EACpD,MAAMC,IAAI,GAAGN,KAAK,CAACO,GAAG,CAACN,6BAA6B,CAAC;EACrD,MAAMO,UAAU,GAAGR,KAAK,CAACO,GAAG,CAACL,iBAAiB,CAAC;EAE/C,IAAIG,IAAI,KAAKI,SAAS,EAAE;IACtB,IAAID,UAAU,KAAKC,SAAS,IAAIH,IAAI,KAAKG,SAAS,EAAE;MAClD,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;IACH;IAEA,OAAOF,UAAU,IAAIF,IAAI;EAC3B;EAEA,MAAMK,SAAS,GAAGX,KAAK,CAACO,GAAG,CAACJ,0BAA0B,CAAC;;EAEvD;EACA;EACA,IAAIQ,SAAS,KAAKN,IAAI,EAAE;IACtB,IAAIG,UAAU,KAAKC,SAAS,EAAE;MAC5B,MAAM,IAAIC,KAAK,CACb,0CAA0CL,IAAI,0BAChD,CAAC;IACH;IAEA,OAAOG,UAAU;EACnB;;EAEA;EACA;EACA,MAAMI,MAAM,GAAGJ,UAAU,EAAEK,SAAS,CAAC,CAAC,EAAEA,SAAS,CAACR,IAAI,CAAC;EAEvD,IAAIO,MAAM,KAAKH,SAAS,EAAE;IACxB,MAAM,IAAIC,KAAK,CACb,0CAA0CL,IAAI,kFAChD,CAAC;EACH;EAEA,OAAOO,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationContainerRefContext","NavigationContext","useNavigation","name","root","use","navigation","undefined","Error","parent","getParent"],"sourceRoot":"../../src","sources":["useNavigation.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,iBAAiB,QAAQ,yBAAsB;;AAWxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAO,SAASC,aAAaA,CAACC,IAAa,EAAW;EACpD,MAAMC,IAAI,GAAGL,KAAK,CAACM,GAAG,CAACL,6BAA6B,CAAC;EACrD,MAAMM,UAAU,GAAGP,KAAK,CAACM,GAAG,CAACJ,iBAAiB,CAAC;EAE/C,IAAIE,IAAI,KAAKI,SAAS,EAAE;IACtB,IAAID,UAAU,KAAKC,SAAS,IAAIH,IAAI,KAAKG,SAAS,EAAE;MAClD,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;IACH;IAEA,OAAOF,UAAU,IAAIF,IAAI;EAC3B;EAEA,MAAMK,MAAM,GAAGH,UAAU,EAAEI,SAAS,CAACP,IAAI,CAAC;EAE1C,IAAIM,MAAM,KAAKF,SAAS,EAAE;IACxB,MAAM,IAAIC,KAAK,CACb,0CAA0CL,IAAI,kFAChD,CAAC;EACH;EAEA,OAAOM,MAAM;AACf","ignoreList":[]}