@react-navigation/core 8.0.0-alpha.2 → 8.0.0-alpha.21

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 (251) hide show
  1. package/lib/module/BaseNavigationContainer.js +20 -9
  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/NavigationBuilderContext.js +1 -0
  6. package/lib/module/NavigationBuilderContext.js.map +1 -1
  7. package/lib/module/NavigationIndependentTree.js +8 -4
  8. package/lib/module/NavigationIndependentTree.js.map +1 -1
  9. package/lib/module/NavigationProvider.js +14 -3
  10. package/lib/module/NavigationProvider.js.map +1 -1
  11. package/lib/module/NavigationStateContext.js.map +1 -1
  12. package/lib/module/PreventRemoveProvider.js +3 -3
  13. package/lib/module/PreventRemoveProvider.js.map +1 -1
  14. package/lib/module/SceneView.js +46 -56
  15. package/lib/module/SceneView.js.map +1 -1
  16. package/lib/module/StaticNavigation.js +166 -46
  17. package/lib/module/StaticNavigation.js.map +1 -1
  18. package/lib/module/checkSerializable.js +11 -4
  19. package/lib/module/checkSerializable.js.map +1 -1
  20. package/lib/module/createNavigatorFactory.js +27 -5
  21. package/lib/module/createNavigatorFactory.js.map +1 -1
  22. package/lib/module/findFocusedRoute.js +7 -4
  23. package/lib/module/findFocusedRoute.js.map +1 -1
  24. package/lib/module/getActionFromState.js +40 -14
  25. package/lib/module/getActionFromState.js.map +1 -1
  26. package/lib/module/getPathFromState.js +48 -11
  27. package/lib/module/getPathFromState.js.map +1 -1
  28. package/lib/module/getPatternParts.js +3 -0
  29. package/lib/module/getPatternParts.js.map +1 -1
  30. package/lib/module/getStateFromPath.js +353 -166
  31. package/lib/module/getStateFromPath.js.map +1 -1
  32. package/lib/module/getStateFromRouteParams.js +24 -0
  33. package/lib/module/getStateFromRouteParams.js.map +1 -0
  34. package/lib/module/index.js +3 -4
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/module/theming/useTheme.js +1 -1
  37. package/lib/module/theming/useTheme.js.map +1 -1
  38. package/lib/module/types.js +15 -0
  39. package/lib/module/types.js.map +1 -1
  40. package/lib/module/useDescriptors.js +18 -9
  41. package/lib/module/useDescriptors.js.map +1 -1
  42. package/lib/module/useEventEmitter.js +43 -31
  43. package/lib/module/useEventEmitter.js.map +1 -1
  44. package/lib/module/useFocusEvents.js +6 -2
  45. package/lib/module/useFocusEvents.js.map +1 -1
  46. package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
  47. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  48. package/lib/module/useIsFocused.js +7 -12
  49. package/lib/module/useIsFocused.js.map +1 -1
  50. package/lib/module/useNavigation.js.map +1 -1
  51. package/lib/module/useNavigationBuilder.js +144 -86
  52. package/lib/module/useNavigationBuilder.js.map +1 -1
  53. package/lib/module/useNavigationCache.js +3 -3
  54. package/lib/module/useNavigationCache.js.map +1 -1
  55. package/lib/module/useNavigationHelpers.js +1 -1
  56. package/lib/module/useNavigationHelpers.js.map +1 -1
  57. package/lib/module/useNavigationIndependentTree.js +1 -1
  58. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  59. package/lib/module/useNavigationState.js +6 -4
  60. package/lib/module/useNavigationState.js.map +1 -1
  61. package/lib/module/useOnAction.js +3 -3
  62. package/lib/module/useOnAction.js.map +1 -1
  63. package/lib/module/useOnGetState.js +6 -3
  64. package/lib/module/useOnGetState.js.map +1 -1
  65. package/lib/module/useOnPreventRemove.js +3 -3
  66. package/lib/module/useOnPreventRemove.js.map +1 -1
  67. package/lib/module/useOnRouteFocus.js +1 -1
  68. package/lib/module/useOnRouteFocus.js.map +1 -1
  69. package/lib/module/useOptionsGetters.js +7 -4
  70. package/lib/module/useOptionsGetters.js.map +1 -1
  71. package/lib/module/usePreventRemove.js +1 -1
  72. package/lib/module/usePreventRemove.js.map +1 -1
  73. package/lib/module/usePreventRemoveContext.js +1 -1
  74. package/lib/module/usePreventRemoveContext.js.map +1 -1
  75. package/lib/module/useRegisterNavigator.js +2 -2
  76. package/lib/module/useRegisterNavigator.js.map +1 -1
  77. package/lib/module/useRoute.js.map +1 -1
  78. package/lib/module/useRouteCache.js +2 -1
  79. package/lib/module/useRouteCache.js.map +1 -1
  80. package/lib/module/useScheduleUpdate.js +1 -1
  81. package/lib/module/useScheduleUpdate.js.map +1 -1
  82. package/lib/module/useStateForPath.js +1 -1
  83. package/lib/module/useStateForPath.js.map +1 -1
  84. package/lib/module/validatePathConfig.js +2 -1
  85. package/lib/module/validatePathConfig.js.map +1 -1
  86. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  87. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  88. package/lib/typescript/src/ConsumedParamsContext.d.ts +8 -0
  89. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  90. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  91. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  92. package/lib/typescript/src/Group.d.ts +1 -1
  93. package/lib/typescript/src/Group.d.ts.map +1 -1
  94. package/lib/typescript/src/NavigationBuilderContext.d.ts +12 -6
  95. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  96. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  97. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  98. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  99. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  100. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  101. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  102. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  103. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  104. package/lib/typescript/src/NavigationProvider.d.ts +10 -10
  105. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  106. package/lib/typescript/src/NavigationStateContext.d.ts +3 -3
  107. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  108. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  109. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  110. package/lib/typescript/src/SceneView.d.ts +3 -2
  111. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  112. package/lib/typescript/src/Screen.d.ts +1 -1
  113. package/lib/typescript/src/Screen.d.ts.map +1 -1
  114. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  115. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  116. package/lib/typescript/src/StaticNavigation.d.ts +123 -92
  117. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  118. package/lib/typescript/src/checkSerializable.d.ts +5 -3
  119. package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
  120. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  121. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  122. package/lib/typescript/src/createNavigatorFactory.d.ts +17 -5
  123. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  124. package/lib/typescript/src/findFocusedRoute.d.ts +3 -3
  125. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  126. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  127. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  128. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  129. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  130. package/lib/typescript/src/getPatternParts.d.ts +1 -0
  131. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  132. package/lib/typescript/src/getStateFromPath.d.ts +5 -5
  133. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  134. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  135. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  136. package/lib/typescript/src/index.d.ts +34 -33
  137. package/lib/typescript/src/index.d.ts.map +1 -1
  138. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  139. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  140. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  141. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  142. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  143. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  144. package/lib/typescript/src/types.d.ts +215 -131
  145. package/lib/typescript/src/types.d.ts.map +1 -1
  146. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  147. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  148. package/lib/typescript/src/useComponent.d.ts +1 -1
  149. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  150. package/lib/typescript/src/useDescriptors.d.ts +7 -7
  151. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  152. package/lib/typescript/src/useEventEmitter.d.ts +1 -1
  153. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  154. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  155. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  156. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  157. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  158. package/lib/typescript/src/useIsFocused.d.ts +3 -0
  159. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  160. package/lib/typescript/src/useKeyedChildListeners.d.ts +3 -3
  161. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  162. package/lib/typescript/src/useNavigation.d.ts +4 -2
  163. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  164. package/lib/typescript/src/useNavigationBuilder.d.ts +24 -24
  165. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  166. package/lib/typescript/src/useNavigationCache.d.ts +3 -3
  167. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  168. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  169. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  170. package/lib/typescript/src/useNavigationHelpers.d.ts +19 -19
  171. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  172. package/lib/typescript/src/useNavigationState.d.ts +2 -2
  173. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  174. package/lib/typescript/src/useOnAction.d.ts +9 -9
  175. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  176. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  177. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  178. package/lib/typescript/src/useOnPreventRemove.d.ts +3 -3
  179. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  180. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  181. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  182. package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
  183. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  184. package/lib/typescript/src/usePreventRemoveContext.d.ts +1 -1
  185. package/lib/typescript/src/useRoute.d.ts +2 -2
  186. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  187. package/lib/typescript/src/useRouteCache.d.ts +4 -4
  188. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  189. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  190. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  191. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  192. package/lib/typescript/src/utilities.d.ts +45 -5
  193. package/lib/typescript/src/utilities.d.ts.map +1 -1
  194. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  195. package/package.json +23 -20
  196. package/src/BaseNavigationContainer.tsx +337 -326
  197. package/src/ConsumedParamsContext.tsx +10 -0
  198. package/src/NavigationBuilderContext.tsx +14 -8
  199. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  200. package/src/NavigationIndependentTree.tsx +8 -5
  201. package/src/NavigationProvider.tsx +17 -3
  202. package/src/NavigationStateContext.tsx +5 -6
  203. package/src/PreventRemoveProvider.tsx +3 -3
  204. package/src/SceneView.tsx +58 -56
  205. package/src/StaticNavigation.tsx +488 -250
  206. package/src/checkSerializable.tsx +22 -12
  207. package/src/createNavigatorFactory.tsx +83 -8
  208. package/src/findFocusedRoute.tsx +13 -8
  209. package/src/getActionFromState.tsx +68 -39
  210. package/src/getPathFromState.tsx +91 -27
  211. package/src/getPatternParts.tsx +8 -0
  212. package/src/getStateFromPath.tsx +555 -180
  213. package/src/getStateFromRouteParams.tsx +60 -0
  214. package/src/index.tsx +47 -5
  215. package/src/theming/useTheme.tsx +1 -1
  216. package/src/types.tsx +541 -338
  217. package/src/useDescriptors.tsx +27 -12
  218. package/src/useEventEmitter.tsx +45 -36
  219. package/src/useFocusEvents.tsx +8 -2
  220. package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
  221. package/src/useIsFocused.tsx +14 -21
  222. package/src/useNavigation.tsx +5 -3
  223. package/src/useNavigationBuilder.tsx +220 -132
  224. package/src/useNavigationCache.tsx +6 -6
  225. package/src/useNavigationHelpers.tsx +1 -1
  226. package/src/useNavigationIndependentTree.tsx +1 -1
  227. package/src/useNavigationState.tsx +11 -7
  228. package/src/useOnAction.tsx +10 -10
  229. package/src/useOnGetState.tsx +5 -3
  230. package/src/useOnPreventRemove.tsx +3 -3
  231. package/src/useOnRouteFocus.tsx +10 -12
  232. package/src/useOptionsGetters.tsx +7 -4
  233. package/src/usePreventRemove.tsx +1 -1
  234. package/src/usePreventRemoveContext.tsx +1 -1
  235. package/src/useRegisterNavigator.tsx +2 -2
  236. package/src/useRoute.tsx +4 -2
  237. package/src/useRouteCache.tsx +2 -1
  238. package/src/useScheduleUpdate.tsx +1 -3
  239. package/src/useStateForPath.tsx +1 -1
  240. package/src/utilities.tsx +101 -5
  241. package/src/validatePathConfig.tsx +1 -0
  242. package/lib/module/CurrentRenderContext.js +0 -10
  243. package/lib/module/CurrentRenderContext.js.map +0 -1
  244. package/lib/module/useCurrentRender.js +0 -19
  245. package/lib/module/useCurrentRender.js.map +0 -1
  246. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  247. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  248. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  249. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  250. package/src/CurrentRenderContext.tsx +0 -9
  251. package/src/useCurrentRender.tsx +0 -31
@@ -1,12 +1,12 @@
1
1
  import type { NavigationAction, NavigationState, PartialState, Router, RouterConfigOptions } from '@react-navigation/routers';
2
- import { type ChildActionListener, type ChildBeforeRemoveListener } from './NavigationBuilderContext';
3
- import type { EventMapCore } from './types';
4
- import type { NavigationEventEmitter } from './useEventEmitter';
5
- type Options = {
6
- router: Router<NavigationState, NavigationAction>;
7
- key?: string;
8
- getState: () => NavigationState;
9
- setState: (state: NavigationState | PartialState<NavigationState>) => void;
2
+ import { type ChildActionListener, type ChildBeforeRemoveListener } from './NavigationBuilderContext.js';
3
+ import type { EventMapCore } from './types.js';
4
+ import type { NavigationEventEmitter } from './useEventEmitter.js';
5
+ type Options<State extends NavigationState> = {
6
+ router: Router<State, NavigationAction>;
7
+ key?: string | undefined;
8
+ getState: () => State;
9
+ setState: (state: State | PartialState<State>) => void;
10
10
  actionListeners: ChildActionListener[];
11
11
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;
12
12
  routerConfigOptions: RouterConfigOptions;
@@ -21,6 +21,6 @@ type Options = {
21
21
  *
22
22
  * When the action handler handles as action, it returns `true`, otherwise `false`.
23
23
  */
24
- export declare function useOnAction({ router, getState, setState, key, actionListeners, beforeRemoveListeners, routerConfigOptions, emitter, }: Options): (action: NavigationAction, visitedNavigators?: Set<string>) => boolean;
24
+ export declare function useOnAction<State extends NavigationState>({ router, getState, setState, key, actionListeners, beforeRemoveListeners, routerConfigOptions, emitter, }: Options<State>): (action: NavigationAction, visitedNavigators?: Set<string>) => boolean;
25
25
  export {};
26
26
  //# sourceMappingURL=useOnAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnAction.d.ts","sourceRoot":"","sources":["../../../src/useOnAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,KAAK,OAAO,GAAG;IACb,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC3E,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAC7E,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,YAiBI,gBAAgB,sBACL,GAAG,CAAC,MAAM,CAAC,aAuGnC"}
1
+ {"version":3,"file":"useOnAction.d.ts","sourceRoot":"","sources":["../../../src/useOnAction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAE/B,MAAM,+BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAmB,CAAC;AAGhE,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,IAAI;IAC5C,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAC7E,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,eAAe,EAAE,EACzD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,CAAC,YAiBH,gBAAgB,sBACL,GAAG,CAAC,MAAM,CAAC,aAuGnC"}
@@ -1,5 +1,5 @@
1
1
  import type { NavigationState } from '@react-navigation/routers';
2
- import { type GetStateListener } from './NavigationBuilderContext';
2
+ import { type GetStateListener } from './NavigationBuilderContext.js';
3
3
  type Options = {
4
4
  getState: () => NavigationState;
5
5
  getStateListeners: Record<string, GetStateListener | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOnGetState.d.ts","sourceRoot":"","sources":["../../../src/useOnGetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;AAGpC,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC;CACjE,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,QA6BrE"}
1
+ {"version":3,"file":"useOnGetState.d.ts","sourceRoot":"","sources":["../../../src/useOnGetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,+BAA4B,CAAC;AAGpC,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC;CACjE,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,QA+BrE"}
@@ -1,7 +1,7 @@
1
1
  import type { NavigationAction, NavigationState } from '@react-navigation/routers';
2
- import { type ChildBeforeRemoveListener } from './NavigationBuilderContext';
3
- import type { EventMapCore } from './types';
4
- import type { NavigationEventEmitter } from './useEventEmitter';
2
+ import { type ChildBeforeRemoveListener } from './NavigationBuilderContext.js';
3
+ import type { EventMapCore } from './types.js';
4
+ import type { NavigationEventEmitter } from './useEventEmitter.js';
5
5
  type Options = {
6
6
  getState: () => NavigationState;
7
7
  emitter: NavigationEventEmitter<EventMapCore<any>>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOnPreventRemove.d.ts","sourceRoot":"","sources":["../../../src/useOnPreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;CAC9E,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAClD,uBAAuB,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,EAC5E,eAAe;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EAChC,YAAY;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,EAC1C,QAAQ,gBAAgB,YA8CzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,qBAAqB,GACtB,EAAE,OAAO,QAoBT"}
1
+ {"version":3,"file":"useOnPreventRemove.d.ts","sourceRoot":"","sources":["../../../src/useOnPreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,+BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAmB,CAAC;AAEhE,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,CAAC;CAC9E,CAAC;AAIF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAClD,uBAAuB,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,EAC5E,eAAe;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EAChC,YAAY;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,EAC1C,QAAQ,gBAAgB,YA8CzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,qBAAqB,GACtB,EAAE,OAAO,QAoBT"}
@@ -1,15 +1,15 @@
1
1
  import type { NavigationAction, NavigationState, Router } from '@react-navigation/routers';
2
- type Options<Action extends NavigationAction> = {
3
- router: Router<NavigationState, Action>;
4
- getState: () => NavigationState;
5
- setState: (state: NavigationState) => void;
6
- key?: string;
2
+ type Options<State extends NavigationState, Action extends NavigationAction> = {
3
+ router: Router<State, Action>;
4
+ getState: () => State;
5
+ setState: (state: State) => void;
6
+ key?: string | undefined;
7
7
  };
8
8
  /**
9
9
  * Hook to handle focus actions for a route.
10
10
  * Focus action needs to be treated specially, coz when a nested route is focused,
11
11
  * the parent navigators also needs to be focused.
12
12
  */
13
- export declare function useOnRouteFocus<Action extends NavigationAction>({ router, getState, key: sourceRouteKey, setState, }: Options<Action>): (key: string) => void;
13
+ export declare function useOnRouteFocus<State extends NavigationState, Action extends NavigationAction>({ router, getState, key: sourceRouteKey, setState }: Options<State, Action>): (key: string) => void;
14
14
  export {};
15
15
  //# sourceMappingURL=useOnRouteFocus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOnRouteFocus.d.ts","sourceRoot":"","sources":["../../../src/useOnRouteFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,MAAM,EACP,MAAM,2BAA2B,CAAC;AAKnC,KAAK,OAAO,CAAC,MAAM,SAAS,gBAAgB,IAAI;IAC9C,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,gBAAgB,EAAE,EAC/D,MAAM,EACN,QAAQ,EACR,GAAG,EAAE,cAAc,EACnB,QAAQ,GACT,EAAE,OAAO,CAAC,MAAM,CAAC,SAMR,MAAM,UAcf"}
1
+ {"version":3,"file":"useOnRouteFocus.d.ts","sourceRoot":"","sources":["../../../src/useOnRouteFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,MAAM,EACP,MAAM,2BAA2B,CAAC;AAKnC,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,EAAE,MAAM,SAAS,gBAAgB,IAAI;IAC7E,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,SAAS,eAAe,EAC7B,MAAM,SAAS,gBAAgB,EAC/B,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAMnE,MAAM,UAcf"}
@@ -1,5 +1,5 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
- import type { NavigationProp } from './types';
2
+ import type { NavigationProp } from './types.js';
3
3
  type Options = {
4
4
  key?: string;
5
5
  navigation?: NavigationProp<ParamListBase>;
@@ -1 +1 @@
1
- {"version":3,"file":"useOptionsGetters.d.ts","sourceRoot":"","sources":["../../../src/useOptionsGetters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO;4BA+D7D,MAAM,UAAU,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI;;EAiBxD"}
1
+ {"version":3,"file":"useOptionsGetters.d.ts","sourceRoot":"","sources":["../../../src/useOptionsGetters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAE9C,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO;4BAkE7D,MAAM,UAAU,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI;;EAiBxD"}
@@ -1,5 +1,5 @@
1
1
  export declare function usePreventRemoveContext(): {
2
- preventedRoutes: import("./PreventRemoveContext").PreventedRoutes;
2
+ preventedRoutes: import("./PreventRemoveContext.js").PreventedRoutes;
3
3
  setPreventRemove: (id: string, routeKey: string, preventRemove: boolean) => void;
4
4
  };
5
5
  //# sourceMappingURL=usePreventRemoveContext.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
- import type { RootParamList, RouteForName, RouteProp } from './types';
2
+ import type { RootParamList, RouteForName, RouteProp } from './types.js';
3
3
  /**
4
4
  * Get all possible route names from a param list and its nested navigators.
5
5
  */
@@ -9,7 +9,7 @@ type AllRouteNames<ParamList extends {}> = RouteForName<ParamList, string>['name
9
9
  *
10
10
  * @returns Route prop of the parent screen.
11
11
  */
12
- export declare function useRoute<const ParamList extends {} = RootParamList, const RouteName extends AllRouteNames<ParamList> = AllRouteNames<ParamList>>(name: RouteName): RouteForName<ParamList, RouteName>;
12
+ export declare function useRoute<const ParamList extends {} = RootParamList, const RouteName extends string = string>(name: RouteName & AllRouteNames<ParamList>): RouteForName<ParamList, RouteName>;
13
13
  export declare function useRoute<const ParamList extends {} = RootParamList>(): {} extends ParamList ? RouteProp<ParamListBase> : ParamList extends ParamListBase ? RouteForName<ParamList, string> : RouteProp<ParamListBase>;
14
14
  export {};
15
15
  //# sourceMappingURL=useRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRoute.d.ts","sourceRoot":"","sources":["../../../src/useRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtE;;GAEG;AACH,KAAK,aAAa,CAAC,SAAS,SAAS,EAAE,IAAI,YAAY,CACrD,SAAS,EACT,MAAM,CACP,CAAC,MAAM,CAAC,CAAC;AAEV;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,KAAK,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAC1C,KAAK,CAAC,SAAS,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EAC3E,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACvD,wBAAgB,QAAQ,CACtB,KAAK,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,KACvC,EAAE,SAAS,SAAS,GACrB,SAAS,CAAC,aAAa,CAAC,GACxB,SAAS,SAAS,aAAa,GAC7B,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,GAC/B,SAAS,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"useRoute.d.ts","sourceRoot":"","sources":["../../../src/useRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAS,CAAC;AAEtE;;GAEG;AACH,KAAK,aAAa,CAAC,SAAS,SAAS,EAAE,IAAI,YAAY,CACrD,SAAS,EACT,MAAM,CACP,CAAC,MAAM,CAAC,CAAC;AAEV;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,KAAK,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAC1C,KAAK,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAEvC,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,GACzC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACtC,wBAAgB,QAAQ,CACtB,KAAK,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,KACvC,EAAE,SAAS,SAAS,GACrB,SAAS,CAAC,aAAa,CAAC,GACxB,SAAS,SAAS,aAAa,GAC7B,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,GAC/B,SAAS,CAAC,aAAa,CAAC,CAAC"}
@@ -12,12 +12,12 @@ export declare const CHILD_STATE: unique symbol;
12
12
  export declare function useRouteCache<State extends NavigationState>(routes: State['routes']): Readonly<{
13
13
  key: string;
14
14
  name: string;
15
- path?: string;
15
+ path?: string | undefined;
16
16
  history?: {
17
17
  type: "params";
18
18
  params: object;
19
- }[];
20
- } & Readonly<{
19
+ }[] | undefined;
20
+ } & {
21
21
  params?: Readonly<object | undefined>;
22
- }>>[];
22
+ }>[];
23
23
  //# sourceMappingURL=useRouteCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRouteCache.d.ts","sourceRoot":"","sources":["../../../src/useRouteCache.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,2BAA2B,CAAC;AAQhF;;;;GAIG;AACH,eAAO,MAAM,WAAW,eAAwB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,SAAS,eAAe,EACzD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;;;;;;;;;;MA8CxB"}
1
+ {"version":3,"file":"useRouteCache.d.ts","sourceRoot":"","sources":["../../../src/useRouteCache.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,2BAA2B,CAAC;AAQhF;;;;GAIG;AACH,eAAO,MAAM,WAAW,eAAwB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,SAAS,eAAe,EACzD,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;;;;;;;;;;KA+CxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScheduleUpdate.d.ts","sourceRoot":"","sources":["../../../src/useScheduleUpdate.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,QAUrD"}
1
+ {"version":3,"file":"useScheduleUpdate.d.ts","sourceRoot":"","sources":["../../../src/useScheduleUpdate.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,QAQrD"}
@@ -4,5 +4,5 @@
4
4
  *
5
5
  * @returns Minimal state to build a path for the current route.
6
6
  */
7
- export declare function useStateForPath(): import("./NavigationFocusedRouteStateContext").FocusedRouteState | undefined;
7
+ export declare function useStateForPath(): import("./NavigationFocusedRouteStateContext.js").FocusedRouteState | undefined;
8
8
  //# sourceMappingURL=useStateForPath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStateForPath.d.ts","sourceRoot":"","sources":["../../../src/useStateForPath.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,eAAe,iFAI9B"}
1
+ {"version":3,"file":"useStateForPath.d.ts","sourceRoot":"","sources":["../../../src/useStateForPath.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,eAAe,oFAI9B"}
@@ -26,6 +26,10 @@ export type UnknownToUndefined<T> = unknown extends T ? undefined : T;
26
26
  */
27
27
  export type NotUndefined<T> = T extends undefined ? never : T;
28
28
  export type AnyToUnknown<T> = 0 extends 1 & T ? unknown : T;
29
+ export type RequiredKeys<T extends object> = {
30
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K;
31
+ }[keyof T];
32
+ export type UndefinedIfAllOptional<T> = T extends object ? RequiredKeys<T> extends never ? T | undefined : T : T;
29
33
  /**
30
34
  * Check if a function type has arguments.
31
35
  */
@@ -45,6 +49,21 @@ type ExtractSegmentParam<Segment extends string> = Segment extends `:${infer Par
45
49
  } : Segment extends `:${infer Param}` ? {
46
50
  [K in StripRegex<Param>]: string;
47
51
  } : {};
52
+ export type StandardSchemaValidationResult<Output> = {
53
+ value: Output;
54
+ issues?: undefined;
55
+ } | {
56
+ value?: undefined;
57
+ issues: readonly unknown[];
58
+ };
59
+ export type StandardSchemaV1<Input = unknown, Output = Input> = {
60
+ readonly '~standard': {
61
+ readonly version: 1;
62
+ readonly vendor: string;
63
+ readonly validate: (value: Input) => StandardSchemaValidationResult<Output> | Promise<StandardSchemaValidationResult<Output>>;
64
+ };
65
+ };
66
+ export type QueryParamInput = string | string[] | null | undefined;
48
67
  /**
49
68
  * Extract path params from a path string.
50
69
  * e.g. `/foo/:userId/:postId` -> `{ userId: string; postId: string }`
@@ -53,12 +72,30 @@ type ExtractSegmentParam<Segment extends string> = Segment extends `:${infer Par
53
72
  */
54
73
  export type ExtractParamStrings<Path extends string> = Path extends `${infer Segment}/${infer Rest}` ? ExtractSegmentParam<Segment> & ExtractParamStrings<Rest> : ExtractSegmentParam<Path>;
55
74
  /**
56
- * Extract the parsed params type from base params and parse functions.
57
- * Applies the return type of parse functions to the corresponding params.
75
+ * Get the type of params based on the `parse` config and the path pattern.
58
76
  */
59
77
  export type ExtractParamsType<Params, Parse> = {
60
- [K in keyof Params]: K extends keyof Parse ? Parse[K] extends (value: string) => infer R ? R : Params[K] : Params[K];
61
- };
78
+ [K in keyof Params]: K extends keyof Parse ? Parse[K] extends StandardSchemaV1<unknown, infer R> ? R : Parse[K] extends (value: string) => infer R ? R : Params[K] : Params[K];
79
+ } & // Query params are the parse keys not present in the path pattern. When there
80
+ ([Exclude<keyof Parse, keyof Params>] extends [never] ? {} : {
81
+ [K in QueryParamOptionalKeys<Params, Parse>]?: QueryParamValue<Parse[K]>;
82
+ } & {
83
+ [K in QueryParamRequiredKeys<Params, Parse>]: QueryParamValue<Parse[K]>;
84
+ });
85
+ type QueryParamValue<ParseValue> = ParseValue extends StandardSchemaV1<unknown, infer R> ? R : ParseValue extends (value: string) => infer R ? R : never;
86
+ /**
87
+ * For schema, it's optional if the output has `undefined`, otherwise required
88
+ * For parse function, it's always optional as it can't say if it's required or not
89
+ */
90
+ type QueryParamOptionalKeys<Params, Parse> = {
91
+ [K in Exclude<keyof Parse, keyof Params>]: Parse[K] extends StandardSchemaV1<unknown, infer R> ? undefined extends R ? K : never : Parse[K] extends (value: string) => unknown ? K : never;
92
+ }[Exclude<keyof Parse, keyof Params>];
93
+ /**
94
+ * Exclude optional keys to get required keys
95
+ * For schema, it's required if the output doesn't have `undefined`, otherwise optional
96
+ * It doesn't include parse functions (as they are always optional)
97
+ */
98
+ type QueryParamRequiredKeys<Params, Parse> = Exclude<Exclude<keyof Parse, keyof Params>, QueryParamOptionalKeys<Params, Parse>>;
62
99
  /**
63
100
  * Infer the path string from a linking config.
64
101
  */
@@ -71,6 +108,9 @@ export type InferPath<T> = T extends {
71
108
  export type InferParse<T> = T extends {
72
109
  parse: infer P;
73
110
  } ? P : {};
111
+ export type InferParamsFromLinking<T> = T extends {
112
+ path: infer P extends string;
113
+ } ? UndefinedIfAllOptional<ExtractParamsType<ExtractParamStrings<P>, InferParse<T>>> : T extends string ? UndefinedIfAllOptional<ExtractParamsType<ExtractParamStrings<T>, undefined>> : undefined;
74
114
  /**
75
115
  * Infer the params type from a screen component or nested navigator.
76
116
  */
@@ -82,7 +122,7 @@ export type InferScreenParams<T> = T extends React.ComponentType<{
82
122
  config: {
83
123
  screens: infer Screens;
84
124
  };
85
- } ? import('./types').NavigatorScreenParams<{
125
+ } ? import('./types.js').NavigatorScreenParams<{
86
126
  [K in keyof Screens]: Screens[K] extends React.ComponentType<{
87
127
  route: {
88
128
  params: infer P;
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../src/utilities.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../src/utilities.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validatePathConfig.d.ts","sourceRoot":"","sources":["../../../src/validatePathConfig.tsx"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,UAAO,QA6E9D"}
1
+ {"version":3,"file":"validatePathConfig.d.ts","sourceRoot":"","sources":["../../../src/validatePathConfig.tsx"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,UAAO,QA8E9D"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/core",
3
3
  "description": "Core utilities for building navigators",
4
- "version": "8.0.0-alpha.2",
4
+ "version": "8.0.0-alpha.21",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -40,30 +40,33 @@
40
40
  "clean": "del lib"
41
41
  },
42
42
  "dependencies": {
43
- "@react-navigation/routers": "^8.0.0-alpha.1",
44
- "escape-string-regexp": "^4.0.0",
43
+ "@react-navigation/routers": "^8.0.0-alpha.11",
44
+ "escape-string-regexp": "^5.0.0",
45
45
  "fast-deep-equal": "^3.1.3",
46
- "nanoid": "^3.3.11",
47
- "query-string": "^7.1.3",
48
- "react-is": "^19.1.0",
49
- "use-latest-callback": "^0.3.2",
50
- "use-sync-external-store": "^1.5.0"
46
+ "nanoid": "^5.1.11",
47
+ "query-string": "^9.4.0",
48
+ "react-is": "^19.2.6",
49
+ "use-latest-callback": "^0.3.4",
50
+ "use-sync-external-store": "^1.6.0"
51
51
  },
52
52
  "devDependencies": {
53
- "@jest/globals": "^30.0.0",
54
- "@testing-library/react-native": "^13.2.1",
55
- "@types/react": "~19.1.10",
56
- "@types/react-is": "^19.0.0",
53
+ "@jest/globals": "^29.7.0",
54
+ "@testing-library/react-native": "^14.0.0",
55
+ "@types/react": "~19.2.17",
56
+ "@types/react-is": "^19.2.0",
57
57
  "@types/use-sync-external-store": "^1.5.0",
58
- "del-cli": "^6.0.0",
59
- "immer": "^10.1.1",
60
- "react": "19.1.0",
61
- "react-native-builder-bob": "^0.40.12",
62
- "react-test-renderer": "19.1.0",
63
- "typescript": "^5.9.2"
58
+ "del-cli": "^7.0.0",
59
+ "immer": "^11.1.8",
60
+ "react": "19.2.0",
61
+ "react-native": "0.83.6",
62
+ "react-native-builder-bob": "^0.42.1",
63
+ "test-renderer": "1.2.0",
64
+ "typescript": "^6.0.3",
65
+ "valibot": "^1.4.1",
66
+ "zod": "^4.4.3"
64
67
  },
65
68
  "peerDependencies": {
66
- "react": ">= 19.0.0"
69
+ "react": ">= 19.2.0"
67
70
  },
68
71
  "react-native-builder-bob": {
69
72
  "source": "src",
@@ -83,5 +86,5 @@
83
86
  ]
84
87
  ]
85
88
  },
86
- "gitHead": "9664da8fff3bd7ed575bf12ddfcc47b3a42be997"
89
+ "gitHead": "069e7c171fa597d1a901555e2acc8e84a46defe7"
87
90
  }