@react-navigation/core 6.4.6 → 7.0.0-alpha.0

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 (133) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/BaseNavigationContainer.js +44 -33
  3. package/lib/commonjs/BaseNavigationContainer.js.map +1 -1
  4. package/lib/commonjs/DeprecatedNavigationInChildContext.js +16 -0
  5. package/lib/commonjs/DeprecatedNavigationInChildContext.js.map +1 -0
  6. package/lib/commonjs/NavigationIndependentTree.js +33 -0
  7. package/lib/commonjs/NavigationIndependentTree.js.map +1 -0
  8. package/lib/commonjs/NavigationIndependentTreeContext.js +16 -0
  9. package/lib/commonjs/NavigationIndependentTreeContext.js.map +1 -0
  10. package/lib/commonjs/StaticNavigation.js +160 -0
  11. package/lib/commonjs/StaticNavigation.js.map +1 -0
  12. package/lib/commonjs/createNavigatorFactory.js +16 -7
  13. package/lib/commonjs/createNavigatorFactory.js.map +1 -1
  14. package/lib/commonjs/getActionFromState.js.map +1 -1
  15. package/lib/commonjs/index.js +52 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/useDescriptors.js +21 -18
  18. package/lib/commonjs/useDescriptors.js.map +1 -1
  19. package/lib/commonjs/useNavigationBuilder.js +1 -1
  20. package/lib/commonjs/useNavigationBuilder.js.map +1 -1
  21. package/lib/commonjs/useNavigationCache.js +9 -7
  22. package/lib/commonjs/useNavigationCache.js.map +1 -1
  23. package/lib/commonjs/useNavigationIndependentTree.js +15 -0
  24. package/lib/commonjs/useNavigationIndependentTree.js.map +1 -0
  25. package/lib/commonjs/useOnAction.js +11 -7
  26. package/lib/commonjs/useOnAction.js.map +1 -1
  27. package/lib/module/BaseNavigationContainer.js +44 -33
  28. package/lib/module/BaseNavigationContainer.js.map +1 -1
  29. package/lib/module/DeprecatedNavigationInChildContext.js +8 -0
  30. package/lib/module/DeprecatedNavigationInChildContext.js.map +1 -0
  31. package/lib/module/NavigationIndependentTree.js +25 -0
  32. package/lib/module/NavigationIndependentTree.js.map +1 -0
  33. package/lib/module/NavigationIndependentTreeContext.js +8 -0
  34. package/lib/module/NavigationIndependentTreeContext.js.map +1 -0
  35. package/lib/module/StaticNavigation.js +156 -0
  36. package/lib/module/StaticNavigation.js.map +1 -0
  37. package/lib/module/createNavigatorFactory.js +16 -7
  38. package/lib/module/createNavigatorFactory.js.map +1 -1
  39. package/lib/module/getActionFromState.js.map +1 -1
  40. package/lib/module/index.js +3 -0
  41. package/lib/module/index.js.map +1 -1
  42. package/lib/module/useDescriptors.js +21 -18
  43. package/lib/module/useDescriptors.js.map +1 -1
  44. package/lib/module/useNavigationBuilder.js +1 -1
  45. package/lib/module/useNavigationBuilder.js.map +1 -1
  46. package/lib/module/useNavigationCache.js +9 -7
  47. package/lib/module/useNavigationCache.js.map +1 -1
  48. package/lib/module/useNavigationIndependentTree.js +6 -0
  49. package/lib/module/useNavigationIndependentTree.js.map +1 -0
  50. package/lib/module/useOnAction.js +11 -7
  51. package/lib/module/useOnAction.js.map +1 -1
  52. package/lib/typescript/src/BaseNavigationContainer.d.ts +2 -0
  53. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  54. package/lib/typescript/src/DeprecatedNavigationInChildContext.d.ts +7 -0
  55. package/lib/typescript/src/DeprecatedNavigationInChildContext.d.ts.map +1 -0
  56. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  57. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  58. package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -9
  59. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  60. package/lib/typescript/src/NavigationIndependentTree.d.ts +8 -0
  61. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -0
  62. package/lib/typescript/src/NavigationIndependentTreeContext.d.ts +7 -0
  63. package/lib/typescript/src/NavigationIndependentTreeContext.d.ts.map +1 -0
  64. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -1
  65. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  66. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  67. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  68. package/lib/typescript/src/SceneView.d.ts +1 -1
  69. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  70. package/lib/typescript/src/StaticNavigation.d.ts +159 -0
  71. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -0
  72. package/lib/typescript/src/createNavigatorFactory.d.ts +8 -2
  73. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  74. package/lib/typescript/src/getActionFromState.d.ts +2 -2
  75. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  76. package/lib/typescript/src/getPathFromState.d.ts +2 -2
  77. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  78. package/lib/typescript/src/getStateFromPath.d.ts +2 -2
  79. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  80. package/lib/typescript/src/index.d.ts +3 -0
  81. package/lib/typescript/src/index.d.ts.map +1 -1
  82. package/lib/typescript/src/types.d.ts +109 -48
  83. package/lib/typescript/src/types.d.ts.map +1 -1
  84. package/lib/typescript/src/useComponent.d.ts +1 -1
  85. package/lib/typescript/src/useComponent.d.ts.map +1 -1
  86. package/lib/typescript/src/useCurrentRender.d.ts +1 -1
  87. package/lib/typescript/src/useCurrentRender.d.ts.map +1 -1
  88. package/lib/typescript/src/useDescriptors.d.ts +11 -9
  89. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  90. package/lib/typescript/src/useEventEmitter.d.ts +1 -1
  91. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  92. package/lib/typescript/src/useFocusEffect.d.ts +1 -1
  93. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
  94. package/lib/typescript/src/useFocusEvents.d.ts +1 -1
  95. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  96. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +1 -1
  97. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  98. package/lib/typescript/src/useNavigationBuilder.d.ts +19 -15
  99. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  100. package/lib/typescript/src/useNavigationCache.d.ts +4 -4
  101. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  102. package/lib/typescript/src/useNavigationHelpers.d.ts +11 -9
  103. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  104. package/lib/typescript/src/useNavigationIndependentTree.d.ts +2 -0
  105. package/lib/typescript/src/useNavigationIndependentTree.d.ts.map +1 -0
  106. package/lib/typescript/src/useNavigationState.d.ts +1 -1
  107. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  108. package/lib/typescript/src/useOnAction.d.ts +1 -1
  109. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  110. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  111. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  112. package/lib/typescript/src/useOnPreventRemove.d.ts +1 -1
  113. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  114. package/lib/typescript/src/useOnRouteFocus.d.ts +1 -1
  115. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  116. package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
  117. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  118. package/package.json +11 -11
  119. package/src/BaseNavigationContainer.tsx +68 -64
  120. package/src/DeprecatedNavigationInChildContext.tsx +8 -0
  121. package/src/NavigationIndependentTree.tsx +25 -0
  122. package/src/NavigationIndependentTreeContext.tsx +8 -0
  123. package/src/StaticNavigation.tsx +401 -0
  124. package/src/createNavigatorFactory.tsx +38 -9
  125. package/src/getActionFromState.tsx +2 -8
  126. package/src/getPathFromState.tsx +1 -1
  127. package/src/index.tsx +9 -0
  128. package/src/types.tsx +111 -29
  129. package/src/useDescriptors.tsx +24 -19
  130. package/src/useNavigationBuilder.tsx +10 -5
  131. package/src/useNavigationCache.tsx +8 -4
  132. package/src/useNavigationIndependentTree.tsx +7 -0
  133. package/src/useOnAction.tsx +13 -5
@@ -1,7 +1,7 @@
1
1
  import { DefaultRouterOptions, NavigationState, ParamListBase, PartialState, RouterFactory } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
3
  import { DefaultNavigatorOptions, EventMapCore, PrivateValueStore, RouteProp } from './types';
4
- declare type NavigationBuilderOptions<ScreenOptions extends {}> = {
4
+ type NavigationBuilderOptions<ScreenOptions extends {}> = {
5
5
  /**
6
6
  * Default options specified by the navigator.
7
7
  * It receives the custom options in the arguments if a function is specified.
@@ -27,7 +27,7 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
27
27
  payload?: object | undefined;
28
28
  source?: string | undefined;
29
29
  target?: string | undefined;
30
- }> | ((state: Readonly<{
30
+ }> | ((state: Readonly<Readonly<{
31
31
  key: string;
32
32
  index: number;
33
33
  routeNames: string[];
@@ -43,7 +43,7 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
43
43
  })[];
44
44
  type: string;
45
45
  stale: false;
46
- }>) => Readonly<{
46
+ }>>) => Readonly<{
47
47
  type: string;
48
48
  payload?: object | undefined;
49
49
  source?: string | undefined;
@@ -51,12 +51,14 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
51
51
  }>)): void;
52
52
  navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName] | [screen: RouteName, params: object | undefined] : never): void;
53
53
  navigate<RouteName_1 extends string>(options: RouteName_1 extends unknown ? {
54
- key: string;
55
- params?: object | undefined;
56
- merge?: boolean | undefined;
57
- } | {
58
54
  name: RouteName_1;
59
- key?: string | undefined;
55
+ params: object | undefined;
56
+ path?: string | undefined;
57
+ merge?: boolean | undefined;
58
+ } : never): void;
59
+ navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
60
+ navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
61
+ name: RouteName_3;
60
62
  params: object | undefined;
61
63
  merge?: boolean | undefined;
62
64
  } : never): void;
@@ -116,7 +118,7 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
116
118
  stale: false;
117
119
  }>;
118
120
  } & PrivateValueStore<[ParamListBase, unknown, unknown]> & import("./types").EventEmitter<EventMap> & {
119
- setParams<RouteName_2 extends string>(params: Partial<object | undefined>): void;
121
+ setParams<RouteName_4 extends string>(params: Partial<object | undefined>): void;
120
122
  } & ActionHelpers;
121
123
  descriptors: Record<string, import("./types").Descriptor<ScreenOptions, Omit<{
122
124
  dispatch(action: Readonly<{
@@ -124,7 +126,7 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
124
126
  payload?: object | undefined;
125
127
  source?: string | undefined;
126
128
  target?: string | undefined;
127
- }> | ((state: State) => Readonly<{
129
+ }> | ((state: Readonly<State>) => Readonly<{
128
130
  type: string;
129
131
  payload?: object | undefined;
130
132
  source?: string | undefined;
@@ -132,12 +134,14 @@ export default function useNavigationBuilder<State extends NavigationState, Rout
132
134
  }>)): void;
133
135
  navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName] | [screen: RouteName, params: object | undefined] : never): void;
134
136
  navigate<RouteName_1 extends string>(options: RouteName_1 extends unknown ? {
135
- key: string;
136
- params?: object | undefined;
137
- merge?: boolean | undefined;
138
- } | {
139
137
  name: RouteName_1;
140
- key?: string | undefined;
138
+ params: object | undefined;
139
+ path?: string | undefined;
140
+ merge?: boolean | undefined;
141
+ } : never): void;
142
+ navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
143
+ navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
144
+ name: RouteName_3;
141
145
  params: object | undefined;
142
146
  merge?: boolean | undefined;
143
147
  } : never): void;
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAEpB,eAAe,EACf,aAAa,EACb,YAAY,EAIZ,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,uBAAuB,EAEvB,YAAY,EAEZ,iBAAiB,EAEjB,SAAS,EACV,MAAM,SAAS,CAAC;AAoBjB,aAAK,wBAAwB,CAAC,aAAa,SAAS,EAAE,IAAI;IACxD;;;OAGG;IACH,oBAAoB,CAAC,EACjB,aAAa,GACb,CAAC,CAAC,KAAK,EAAE;QACP,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,UAAU,EAAE,GAAG,CAAC;QAChB,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,aAAa,CAAC,CAAC;CAC1B,CAAC;AAmLF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,EACtD,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,KAAK,EACL,aAAa,EACb,QAAQ,CACT,GACC,wBAAwB,CAAC,aAAa,CAAC,GACvC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0chB"}
1
+ {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAEpB,eAAe,EACf,aAAa,EACb,YAAY,EAIZ,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,uBAAuB,EAEvB,YAAY,EAEZ,iBAAiB,EAEjB,SAAS,EACV,MAAM,SAAS,CAAC;AAoBjB,KAAK,wBAAwB,CAAC,aAAa,SAAS,EAAE,IAAI;IACxD;;;OAGG;IACH,oBAAoB,CAAC,EACjB,aAAa,GACb,CAAC,CAAC,KAAK,EAAE;QACP,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,UAAU,EAAE,GAAG,CAAC;QAChB,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,aAAa,CAAC,CAAC;CAC1B,CAAC;AAwLF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,EACtD,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,KAAK,EACL,aAAa,EACb,QAAQ,CACT,GACC,wBAAwB,CAAC,aAAa,CAAC,GACvC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0chB"}
@@ -1,20 +1,20 @@
1
1
  import { NavigationAction, NavigationState, ParamListBase, Router } from '@react-navigation/routers';
2
2
  import type { NavigationHelpers, NavigationProp } from './types';
3
3
  import type { NavigationEventEmitter } from './useEventEmitter';
4
- declare type Options<State extends NavigationState, EventMap extends Record<string, any>> = {
4
+ type Options<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = {
5
5
  state: State;
6
6
  getState: () => State;
7
7
  navigation: NavigationHelpers<ParamListBase> & Partial<NavigationProp<ParamListBase, string, any, any, any>>;
8
- setOptions: (cb: (options: Record<string, object>) => Record<string, object>) => void;
8
+ setOptions: (cb: (options: Record<string, ScreenOptions>) => Record<string, ScreenOptions>) => void;
9
9
  router: Router<State, NavigationAction>;
10
10
  emitter: NavigationEventEmitter<EventMap>;
11
11
  };
12
- declare type NavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = Record<string, NavigationProp<ParamListBase, string, string | undefined, State, ScreenOptions, EventMap>>;
12
+ type NavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = Record<string, NavigationProp<ParamListBase, string, string | undefined, State, ScreenOptions, EventMap>>;
13
13
  /**
14
14
  * Hook to cache navigation objects for each screen in the navigator.
15
15
  * It's important to cache them to make sure navigation objects don't change between renders.
16
16
  * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.
17
17
  */
18
- export default function useNavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>>({ state, getState, navigation, setOptions, router, emitter, }: Options<State, EventMap>): NavigationCache<State, ScreenOptions, EventMap>;
18
+ export default function useNavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>>({ state, getState, navigation, setOptions, router, emitter, }: Options<State, ScreenOptions, EventMap>): NavigationCache<State, ScreenOptions, EventMap>;
19
19
  export {};
20
20
  //# sourceMappingURL=useNavigationCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationCache.d.ts","sourceRoot":"","sources":["../../../src/useNavigationCache.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,MAAM,EACP,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,aAAK,OAAO,CACV,KAAK,SAAS,eAAe,EAC7B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC;IACF,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAC1C,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,CACV,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC5D,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;CAC3C,CAAC;AAEF,aAAK,eAAe,CAClB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC,MAAM,CACR,MAAM,EACN,cAAc,CACZ,aAAa,EACb,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,CACT,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,EACA,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,mDAkH1B"}
1
+ {"version":3,"file":"useNavigationCache.d.ts","sourceRoot":"","sources":["../../../src/useNavigationCache.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,MAAM,EACP,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,KAAK,OAAO,CACV,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC;IACF,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAC1C,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,CACV,EAAE,EAAE,CACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KACnC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAC/B,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;CAC3C,CAAC;AAEF,KAAK,eAAe,CAClB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC,MAAM,CACR,MAAM,EACN,cAAc,CACZ,aAAa,EACb,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,CACT,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,EACA,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,mDAmHzC"}
@@ -1,7 +1,7 @@
1
1
  import { NavigationAction, NavigationState, ParamListBase, Router } from '@react-navigation/routers';
2
2
  import { NavigationHelpers, PrivateValueStore } from './types';
3
3
  import type { NavigationEventEmitter } from './useEventEmitter';
4
- declare type Options<State extends NavigationState, Action extends NavigationAction> = {
4
+ type Options<State extends NavigationState, Action extends NavigationAction> = {
5
5
  id: string | undefined;
6
6
  onAction: (action: NavigationAction) => boolean;
7
7
  getState: () => State;
@@ -18,7 +18,7 @@ export default function useNavigationHelpers<State extends NavigationState, Acti
18
18
  payload?: object | undefined;
19
19
  source?: string | undefined;
20
20
  target?: string | undefined;
21
- }> | ((state: Readonly<{
21
+ }> | ((state: Readonly<Readonly<{
22
22
  key: string;
23
23
  index: number;
24
24
  routeNames: string[];
@@ -34,7 +34,7 @@ export default function useNavigationHelpers<State extends NavigationState, Acti
34
34
  })[];
35
35
  type: string;
36
36
  stale: false;
37
- }>) => Readonly<{
37
+ }>>) => Readonly<{
38
38
  type: string;
39
39
  payload?: object | undefined;
40
40
  source?: string | undefined;
@@ -42,12 +42,14 @@ export default function useNavigationHelpers<State extends NavigationState, Acti
42
42
  }>)): void;
43
43
  navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName] | [screen: RouteName, params: object | undefined] : never): void;
44
44
  navigate<RouteName_1 extends string>(options: RouteName_1 extends unknown ? {
45
- key: string;
46
- params?: object | undefined;
47
- merge?: boolean | undefined;
48
- } | {
49
45
  name: RouteName_1;
50
- key?: string | undefined;
46
+ params: object | undefined;
47
+ path?: string | undefined;
48
+ merge?: boolean | undefined;
49
+ } : never): void;
50
+ navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
51
+ navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
52
+ name: RouteName_3;
51
53
  params: object | undefined;
52
54
  merge?: boolean | undefined;
53
55
  } : never): void;
@@ -107,7 +109,7 @@ export default function useNavigationHelpers<State extends NavigationState, Acti
107
109
  stale: false;
108
110
  }>;
109
111
  } & PrivateValueStore<[ParamListBase, unknown, unknown]> & import("./types").EventEmitter<EventMap> & {
110
- setParams<RouteName_2 extends string>(params: Partial<object | undefined>): void;
112
+ setParams<RouteName_4 extends string>(params: Partial<object | undefined>): void;
111
113
  } & ActionHelpers;
112
114
  export {};
113
115
  //# sourceMappingURL=useNavigationHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationHelpers.d.ts","sourceRoot":"","sources":["../../../src/useNavigationHelpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,MAAM,EACP,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMhE,aAAK,OAAO,CAAC,KAAK,SAAS,eAAe,EAAE,MAAM,SAAS,gBAAgB,IAAI;IAC7E,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAChD,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,MAAM,SAAS,gBAAgB,EAC/B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,EACA,EAAE,EAAE,WAAW,EACf,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0ExB"}
1
+ {"version":3,"file":"useNavigationHelpers.d.ts","sourceRoot":"","sources":["../../../src/useNavigationHelpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,MAAM,EACP,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMhE,KAAK,OAAO,CAAC,KAAK,SAAS,eAAe,EAAE,MAAM,SAAS,gBAAgB,IAAI;IAC7E,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAChD,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,MAAM,SAAS,gBAAgB,EAC/B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,EACA,EAAE,EAAE,WAAW,EACf,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0ExB"}
@@ -0,0 +1,2 @@
1
+ export default function useNavigationIndependentTree(): boolean;
2
+ //# sourceMappingURL=useNavigationIndependentTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNavigationIndependentTree.d.ts","sourceRoot":"","sources":["../../../src/useNavigationIndependentTree.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,4BAA4B,YAEnD"}
@@ -1,5 +1,5 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
- declare type Selector<ParamList extends ParamListBase, T> = (state: NavigationState<ParamList>) => T;
2
+ type Selector<ParamList extends ParamListBase, T> = (state: NavigationState<ParamList>) => T;
3
3
  /**
4
4
  * Hook to get a value from the current navigation state using a selector.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAMhF,aAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EAC3E,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAuBH"}
1
+ {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAMhF,KAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EAC3E,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAuBH"}
@@ -2,7 +2,7 @@ import type { NavigationAction, NavigationState, PartialState, Router, RouterCon
2
2
  import { ChildActionListener, ChildBeforeRemoveListener } from './NavigationBuilderContext';
3
3
  import type { EventMapCore } from './types';
4
4
  import type { NavigationEventEmitter } from './useEventEmitter';
5
- declare type Options = {
5
+ type Options = {
6
6
  router: Router<NavigationState, NavigationAction>;
7
7
  key?: string;
8
8
  getState: () => NavigationState;
@@ -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,OAAiC,EAC/B,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,aAAK,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,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,YAiBI,gBAAgB,sBACL,IAAI,MAAM,CAAC,aAqGnC"}
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;AAInC,OAAiC,EAC/B,mBAAmB,EACnB,yBAAyB,EAC1B,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,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,GACR,EAAE,OAAO,YAoBI,gBAAgB,sBACL,IAAI,MAAM,CAAC,aAyGnC"}
@@ -1,6 +1,6 @@
1
1
  import type { NavigationState } from '@react-navigation/routers';
2
2
  import { GetStateListener } from './NavigationBuilderContext';
3
- declare type Options = {
3
+ type Options = {
4
4
  getState: () => NavigationState;
5
5
  getStateListeners: Record<string, GetStateListener | undefined>;
6
6
  };
@@ -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,OAAiC,EAC/B,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAGpC,aAAK,OAAO,GAAG;IACb,QAAQ,EAAE,MAAM,eAAe,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,QAAQ,EACR,iBAAiB,GAClB,EAAE,OAAO,QA6BT"}
1
+ {"version":3,"file":"useOnGetState.d.ts","sourceRoot":"","sources":["../../../src/useOnGetState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAiC,EAC/B,gBAAgB,EACjB,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,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,QAAQ,EACR,iBAAiB,GAClB,EAAE,OAAO,QA6BT"}
@@ -2,7 +2,7 @@ import type { NavigationAction, NavigationState } from '@react-navigation/router
2
2
  import { ChildBeforeRemoveListener } from './NavigationBuilderContext';
3
3
  import type { EventMapCore } from './types';
4
4
  import type { NavigationEventEmitter } from './useEventEmitter';
5
- declare type Options = {
5
+ type Options = {
6
6
  getState: () => NavigationState;
7
7
  emitter: NavigationEventEmitter<EventMapCore<any>>;
8
8
  beforeRemoveListeners: Record<string, ChildBeforeRemoveListener | undefined>;
@@ -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,OAAiC,EAC/B,yBAAyB,EAC1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,aAAK,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,YACrB,uBAAuB,aAAa,GAAG,CAAC,CAAC,yBAC3B,OAAO,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,iBAC7D;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,cACpB;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,UAClC,gBAAgB,YA8CzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,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,OAAiC,EAC/B,yBAAyB,EAC1B,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,YACrB,uBAAuB,aAAa,GAAG,CAAC,CAAC,yBAC3B,OAAO,MAAM,EAAE,yBAAyB,GAAG,SAAS,CAAC,iBAC7D;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,cACpB;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,UAClC,gBAAgB,YA8CzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,QAAQ,EACR,OAAO,EACP,qBAAqB,GACtB,EAAE,OAAO,QAoBT"}
@@ -1,5 +1,5 @@
1
1
  import type { NavigationAction, NavigationState, Router } from '@react-navigation/routers';
2
- declare type Options<Action extends NavigationAction> = {
2
+ type Options<Action extends NavigationAction> = {
3
3
  router: Router<NavigationState, Action>;
4
4
  getState: () => NavigationState;
5
5
  setState: (state: NavigationState) => void;
@@ -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,aAAK,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,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,SAAS,gBAAgB,EAAE,EACvE,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,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,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,SAAS,gBAAgB,EAAE,EACvE,MAAM,EACN,QAAQ,EACR,GAAG,EAAE,cAAc,EACnB,QAAQ,GACT,EAAE,OAAO,CAAC,MAAM,CAAC,SAMR,MAAM,UAcf"}
@@ -1,6 +1,6 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
2
  import type { NavigationProp } from './types';
3
- declare type Options = {
3
+ type Options = {
4
4
  key?: string;
5
5
  navigation?: NavigationProp<ParamListBase>;
6
6
  options?: object | undefined;
@@ -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,aAAK,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,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,GAAG,EACH,OAAO,EACP,UAAU,GACX,EAAE,OAAO;4BA+DA,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,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,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,GAAG,EACH,OAAO,EACP,UAAU,GACX,EAAE,OAAO;4BA+DA,MAAM,UAAU,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI;;EAiBxD"}
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": "6.4.6",
4
+ "version": "7.0.0-alpha.0",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -35,23 +35,23 @@
35
35
  "clean": "del lib"
36
36
  },
37
37
  "dependencies": {
38
- "@react-navigation/routers": "^6.1.6",
38
+ "@react-navigation/routers": "^7.0.0-alpha.0",
39
39
  "escape-string-regexp": "^4.0.0",
40
40
  "nanoid": "^3.1.23",
41
41
  "query-string": "^7.1.3",
42
- "react-is": "^16.13.0",
42
+ "react-is": "^18.2.0",
43
43
  "use-latest-callback": "^0.1.5"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@testing-library/react-native": "^11.5.0",
47
- "@types/react": "~18.0.0",
48
- "@types/react-is": "^17.0.0",
49
- "del-cli": "^3.0.1",
50
- "immer": "^9.0.2",
51
- "react": "18.0.0",
47
+ "@types/react": "~18.0.26",
48
+ "@types/react-is": "^17.0.3",
49
+ "del-cli": "^5.0.0",
50
+ "immer": "^9.0.16",
51
+ "react": "18.1.0",
52
52
  "react-native-builder-bob": "^0.20.3",
53
- "react-test-renderer": "18.0.0",
54
- "typescript": "^4.7.4"
53
+ "react-test-renderer": "18.1.0",
54
+ "typescript": "^4.9.4"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "react": "*"
@@ -70,5 +70,5 @@
70
70
  ]
71
71
  ]
72
72
  },
73
- "gitHead": "f93576624282c3d65e359cca2826749f56221e8c"
73
+ "gitHead": "ad722b882e0c40b1d1bc025d70112ddb126f265e"
74
74
  }
@@ -8,16 +8,17 @@ import {
8
8
  Route,
9
9
  } from '@react-navigation/routers';
10
10
  import * as React from 'react';
11
+ import useLatestCallback from 'use-latest-callback';
11
12
 
12
13
  import checkDuplicateRouteNames from './checkDuplicateRouteNames';
13
14
  import checkSerializable from './checkSerializable';
14
15
  import { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';
16
+ import DeprecatedNavigationInChildContext from './DeprecatedNavigationInChildContext';
15
17
  import EnsureSingleNavigator from './EnsureSingleNavigator';
16
18
  import findFocusedRoute from './findFocusedRoute';
17
19
  import NavigationBuilderContext from './NavigationBuilderContext';
18
20
  import NavigationContainerRefContext from './NavigationContainerRefContext';
19
- import NavigationContext from './NavigationContext';
20
- import NavigationRouteContext from './NavigationRouteContext';
21
+ import NavigationIndependentTreeContext from './NavigationIndependentTreeContext';
21
22
  import NavigationStateContext from './NavigationStateContext';
22
23
  import type {
23
24
  NavigationContainerEventMap,
@@ -28,6 +29,7 @@ import UnhandledActionContext from './UnhandledActionContext';
28
29
  import useChildListeners from './useChildListeners';
29
30
  import useEventEmitter from './useEventEmitter';
30
31
  import useKeyedChildListeners from './useKeyedChildListeners';
32
+ import useNavigationIndependentTree from './useNavigationIndependentTree';
31
33
  import useOptionsGetters from './useOptionsGetters';
32
34
  import { ScheduleUpdateContext } from './useScheduleUpdate';
33
35
  import useSyncState from './useSyncState';
@@ -72,7 +74,9 @@ const getPartialState = (
72
74
  * This should be rendered at the root wrapping the whole app.
73
75
  *
74
76
  * @param props.initialState Initial state object for the navigation tree.
77
+ * @param props.onReady Callback which is called after the navigation tree mounts.
75
78
  * @param props.onStateChange Callback which is called with the latest navigation state when it changes.
79
+ * @param props.onUnhandledAction Callback which is called when an action is not handled.
76
80
  * @param props.children Child elements to render the content.
77
81
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
78
82
  */
@@ -81,17 +85,19 @@ const BaseNavigationContainer = React.forwardRef(
81
85
  {
82
86
  initialState,
83
87
  onStateChange,
88
+ onReady,
84
89
  onUnhandledAction,
85
- independent,
90
+ navigationInChildEnabled = false,
86
91
  children,
87
92
  }: NavigationContainerProps,
88
93
  ref?: React.Ref<NavigationContainerRef<ParamListBase>>
89
94
  ) {
90
95
  const parent = React.useContext(NavigationStateContext);
96
+ const independent = useNavigationIndependentTree();
91
97
 
92
98
  if (!parent.isDefault && !independent) {
93
99
  throw new Error(
94
- "Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them."
100
+ "Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, wrap the container in 'NavigationIndependentTree' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them."
95
101
  );
96
102
  }
97
103
 
@@ -114,7 +120,7 @@ const BaseNavigationContainer = React.forwardRef(
114
120
 
115
121
  const { keyedListeners, addKeyedListener } = useKeyedChildListeners();
116
122
 
117
- const dispatch = React.useCallback(
123
+ const dispatch = useLatestCallback(
118
124
  (
119
125
  action:
120
126
  | NavigationAction
@@ -125,11 +131,10 @@ const BaseNavigationContainer = React.forwardRef(
125
131
  } else {
126
132
  listeners.focus[0]((navigation) => navigation.dispatch(action));
127
133
  }
128
- },
129
- [listeners.focus]
134
+ }
130
135
  );
131
136
 
132
- const canGoBack = React.useCallback(() => {
137
+ const canGoBack = useLatestCallback(() => {
133
138
  if (listeners.focus[0] == null) {
134
139
  return false;
135
140
  }
@@ -143,9 +148,9 @@ const BaseNavigationContainer = React.forwardRef(
143
148
  } else {
144
149
  return false;
145
150
  }
146
- }, [listeners.focus]);
151
+ });
147
152
 
148
- const resetRoot = React.useCallback(
153
+ const resetRoot = useLatestCallback(
149
154
  (state?: PartialState<NavigationState> | NavigationState) => {
150
155
  const target = state?.key ?? keyedListeners.getState.root?.().key;
151
156
 
@@ -159,15 +164,14 @@ const BaseNavigationContainer = React.forwardRef(
159
164
  })
160
165
  );
161
166
  }
162
- },
163
- [keyedListeners.getState, listeners.focus]
167
+ }
164
168
  );
165
169
 
166
- const getRootState = React.useCallback(() => {
170
+ const getRootState = useLatestCallback(() => {
167
171
  return keyedListeners.getState.root?.();
168
- }, [keyedListeners.getState]);
172
+ });
169
173
 
170
- const getCurrentRoute = React.useCallback(() => {
174
+ const getCurrentRoute = useLatestCallback(() => {
171
175
  const state = getRootState();
172
176
 
173
177
  if (state == null) {
@@ -177,7 +181,9 @@ const BaseNavigationContainer = React.forwardRef(
177
181
  const route = findFocusedRoute(state);
178
182
 
179
183
  return route as Route<string> | undefined;
180
- }, [getRootState]);
184
+ });
185
+
186
+ const isReady = useLatestCallback(() => listeners.focus[0] != null);
181
187
 
182
188
  const emitter = useEventEmitter<NavigationContainerEventMap>();
183
189
 
@@ -201,7 +207,7 @@ const BaseNavigationContainer = React.forwardRef(
201
207
  getRootState,
202
208
  getCurrentRoute,
203
209
  getCurrentOptions,
204
- isReady: () => listeners.focus[0] != null,
210
+ isReady,
205
211
  }),
206
212
  [
207
213
  canGoBack,
@@ -210,40 +216,36 @@ const BaseNavigationContainer = React.forwardRef(
210
216
  getCurrentOptions,
211
217
  getCurrentRoute,
212
218
  getRootState,
213
- listeners.focus,
219
+ isReady,
214
220
  resetRoot,
215
221
  ]
216
222
  );
217
223
 
218
224
  React.useImperativeHandle(ref, () => navigation, [navigation]);
219
225
 
220
- const onDispatchAction = React.useCallback(
226
+ const onDispatchAction = useLatestCallback(
221
227
  (action: NavigationAction, noop: boolean) => {
222
228
  emitter.emit({
223
229
  type: '__unsafe_action__',
224
230
  data: { action, noop, stack: stackRef.current },
225
231
  });
226
- },
227
- [emitter]
232
+ }
228
233
  );
229
234
 
230
235
  const lastEmittedOptionsRef = React.useRef<object | undefined>();
231
236
 
232
- const onOptionsChange = React.useCallback(
233
- (options: object) => {
234
- if (lastEmittedOptionsRef.current === options) {
235
- return;
236
- }
237
+ const onOptionsChange = useLatestCallback((options: object) => {
238
+ if (lastEmittedOptionsRef.current === options) {
239
+ return;
240
+ }
237
241
 
238
- lastEmittedOptionsRef.current = options;
242
+ lastEmittedOptionsRef.current = options;
239
243
 
240
- emitter.emit({
241
- type: 'options',
242
- data: { options },
243
- });
244
- },
245
- [emitter]
246
- );
244
+ emitter.emit({
245
+ type: 'options',
246
+ data: { options },
247
+ });
248
+ });
247
249
 
248
250
  const stackRef = React.useRef<string | undefined>();
249
251
 
@@ -288,15 +290,25 @@ const BaseNavigationContainer = React.forwardRef(
288
290
  ]
289
291
  );
290
292
 
293
+ const onReadyRef = React.useRef(onReady);
291
294
  const onStateChangeRef = React.useRef(onStateChange);
292
295
  const stateRef = React.useRef(state);
293
296
 
294
297
  React.useEffect(() => {
295
298
  isInitialRef.current = false;
296
299
  onStateChangeRef.current = onStateChange;
300
+ onReadyRef.current = onReady;
297
301
  stateRef.current = state;
298
302
  });
299
303
 
304
+ const isNavigationReady = isReady();
305
+
306
+ React.useEffect(() => {
307
+ if (isNavigationReady) {
308
+ onReadyRef.current?.();
309
+ }
310
+ }, [isNavigationReady]);
311
+
300
312
  React.useEffect(() => {
301
313
  const hydratedState = getRootState();
302
314
 
@@ -376,7 +388,7 @@ const BaseNavigationContainer = React.forwardRef(
376
388
  isFirstMountRef.current = false;
377
389
  }, [getRootState, emitter, state]);
378
390
 
379
- const defaultOnUnhandledAction = React.useCallback(
391
+ const defaultOnUnhandledAction = useLatestCallback(
380
392
  (action: NavigationAction) => {
381
393
  if (process.env.NODE_ENV === 'production') {
382
394
  return;
@@ -415,38 +427,30 @@ const BaseNavigationContainer = React.forwardRef(
415
427
  message += `\n\nThis is a development-only warning and won't be shown in production.`;
416
428
 
417
429
  console.error(message);
418
- },
419
- []
430
+ }
420
431
  );
421
432
 
422
- let element = (
423
- <NavigationContainerRefContext.Provider value={navigation}>
424
- <ScheduleUpdateContext.Provider value={scheduleContext}>
425
- <NavigationBuilderContext.Provider value={builderContext}>
426
- <NavigationStateContext.Provider value={context}>
427
- <UnhandledActionContext.Provider
428
- value={onUnhandledAction ?? defaultOnUnhandledAction}
429
- >
430
- <EnsureSingleNavigator>{children}</EnsureSingleNavigator>
431
- </UnhandledActionContext.Provider>
432
- </NavigationStateContext.Provider>
433
- </NavigationBuilderContext.Provider>
434
- </ScheduleUpdateContext.Provider>
435
- </NavigationContainerRefContext.Provider>
433
+ return (
434
+ <NavigationIndependentTreeContext.Provider value={false}>
435
+ <NavigationContainerRefContext.Provider value={navigation}>
436
+ <ScheduleUpdateContext.Provider value={scheduleContext}>
437
+ <NavigationBuilderContext.Provider value={builderContext}>
438
+ <NavigationStateContext.Provider value={context}>
439
+ <UnhandledActionContext.Provider
440
+ value={onUnhandledAction ?? defaultOnUnhandledAction}
441
+ >
442
+ <DeprecatedNavigationInChildContext.Provider
443
+ value={navigationInChildEnabled}
444
+ >
445
+ <EnsureSingleNavigator>{children}</EnsureSingleNavigator>
446
+ </DeprecatedNavigationInChildContext.Provider>
447
+ </UnhandledActionContext.Provider>
448
+ </NavigationStateContext.Provider>
449
+ </NavigationBuilderContext.Provider>
450
+ </ScheduleUpdateContext.Provider>
451
+ </NavigationContainerRefContext.Provider>
452
+ </NavigationIndependentTreeContext.Provider>
436
453
  );
437
-
438
- if (independent) {
439
- // We need to clear any existing contexts for nested independent container to work correctly
440
- element = (
441
- <NavigationRouteContext.Provider value={undefined}>
442
- <NavigationContext.Provider value={undefined}>
443
- {element}
444
- </NavigationContext.Provider>
445
- </NavigationRouteContext.Provider>
446
- );
447
- }
448
-
449
- return element;
450
454
  }
451
455
  );
452
456
 
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Context which enables deprecated bubbling to child navigators.
5
+ */
6
+ const DeprecatedNavigationInChildContext = React.createContext(false);
7
+
8
+ export default DeprecatedNavigationInChildContext;