@react-navigation/core 7.0.0-alpha.6 → 7.0.0-alpha.8

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 (90) hide show
  1. package/lib/commonjs/BaseNavigationContainer.js +6 -1
  2. package/lib/commonjs/BaseNavigationContainer.js.map +1 -1
  3. package/lib/commonjs/StaticNavigation.js +6 -2
  4. package/lib/commonjs/StaticNavigation.js.map +1 -1
  5. package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +1 -1
  6. package/lib/commonjs/index.js +27 -3
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/theming/ThemeContext.js +12 -0
  9. package/lib/commonjs/theming/ThemeContext.js.map +1 -0
  10. package/lib/commonjs/theming/ThemeProvider.js +20 -0
  11. package/lib/commonjs/theming/ThemeProvider.js.map +1 -0
  12. package/lib/commonjs/theming/useTheme.js +18 -0
  13. package/lib/commonjs/theming/useTheme.js.map +1 -0
  14. package/lib/commonjs/types.js.map +1 -1
  15. package/lib/commonjs/useDescriptors.js +79 -16
  16. package/lib/commonjs/useDescriptors.js.map +1 -1
  17. package/lib/commonjs/useNavigationBuilder.js +10 -3
  18. package/lib/commonjs/useNavigationBuilder.js.map +1 -1
  19. package/lib/commonjs/useNavigationCache.js +55 -14
  20. package/lib/commonjs/useNavigationCache.js.map +1 -1
  21. package/lib/commonjs/useOnAction.js +3 -1
  22. package/lib/commonjs/useOnAction.js.map +1 -1
  23. package/lib/commonjs/usePreventRemove.js +2 -2
  24. package/lib/commonjs/usePreventRemove.js.map +1 -1
  25. package/lib/module/BaseNavigationContainer.js +6 -1
  26. package/lib/module/BaseNavigationContainer.js.map +1 -1
  27. package/lib/module/StaticNavigation.js +6 -2
  28. package/lib/module/StaticNavigation.js.map +1 -1
  29. package/lib/module/getFocusedRouteNameFromRoute.js.map +1 -1
  30. package/lib/module/index.js +4 -1
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/theming/ThemeContext.js +4 -0
  33. package/lib/module/theming/ThemeContext.js.map +1 -0
  34. package/lib/module/theming/ThemeProvider.js +12 -0
  35. package/lib/module/theming/ThemeProvider.js.map +1 -0
  36. package/lib/module/theming/useTheme.js +10 -0
  37. package/lib/module/theming/useTheme.js.map +1 -0
  38. package/lib/module/types.js.map +1 -1
  39. package/lib/module/useDescriptors.js +79 -16
  40. package/lib/module/useDescriptors.js.map +1 -1
  41. package/lib/module/useNavigationBuilder.js +10 -3
  42. package/lib/module/useNavigationBuilder.js.map +1 -1
  43. package/lib/module/useNavigationCache.js +55 -14
  44. package/lib/module/useNavigationCache.js.map +1 -1
  45. package/lib/module/useOnAction.js +3 -1
  46. package/lib/module/useOnAction.js.map +1 -1
  47. package/lib/module/usePreventRemove.js +1 -1
  48. package/lib/module/usePreventRemove.js.map +1 -1
  49. package/lib/typescript/src/BaseNavigationContainer.d.ts +1 -0
  50. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  51. package/lib/typescript/src/NavigationStateContext.d.ts +2 -18
  52. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  53. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  54. package/lib/typescript/src/findFocusedRoute.d.ts +1 -9
  55. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  56. package/lib/typescript/src/index.d.ts +4 -1
  57. package/lib/typescript/src/index.d.ts.map +1 -1
  58. package/lib/typescript/src/theming/ThemeContext.d.ts +3 -0
  59. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -0
  60. package/lib/typescript/src/theming/ThemeProvider.d.ts +8 -0
  61. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -0
  62. package/lib/typescript/src/theming/useTheme.d.ts +2 -0
  63. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -0
  64. package/lib/typescript/src/types.d.ts +47 -1
  65. package/lib/typescript/src/types.d.ts.map +1 -1
  66. package/lib/typescript/src/useDescriptors.d.ts +106 -54
  67. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  68. package/lib/typescript/src/useNavigationBuilder.d.ts +78 -64
  69. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  70. package/lib/typescript/src/useNavigationCache.d.ts +52 -2
  71. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  72. package/lib/typescript/src/useNavigationHelpers.d.ts +8 -55
  73. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  74. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  75. package/lib/typescript/src/usePreventRemove.d.ts +1 -1
  76. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  77. package/package.json +8 -8
  78. package/src/BaseNavigationContainer.tsx +6 -1
  79. package/src/StaticNavigation.tsx +13 -6
  80. package/src/getFocusedRouteNameFromRoute.tsx +3 -3
  81. package/src/index.tsx +4 -1
  82. package/src/theming/ThemeContext.tsx +7 -0
  83. package/src/theming/ThemeProvider.tsx +14 -0
  84. package/src/theming/useTheme.tsx +15 -0
  85. package/src/types.tsx +66 -1
  86. package/src/useDescriptors.tsx +148 -34
  87. package/src/useNavigationBuilder.tsx +21 -7
  88. package/src/useNavigationCache.tsx +84 -23
  89. package/src/useOnAction.tsx +6 -1
  90. package/src/usePreventRemove.tsx +1 -1
@@ -21,15 +21,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
21
21
  index: number;
22
22
  routeNames: string[];
23
23
  history?: unknown[] | undefined;
24
- routes: (Readonly<{
25
- key: string;
26
- name: string;
27
- path?: string | undefined;
28
- }> & Readonly<{
29
- params?: Readonly<object | undefined>;
30
- }> & {
31
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
32
- })[];
24
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
33
25
  type: string;
34
26
  stale: false;
35
27
  }>>) => Readonly<{
@@ -48,23 +40,23 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
48
40
  navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
49
41
  navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
50
42
  name: RouteName_3;
43
+ /**
44
+ * Hook for building navigators.
45
+ *
46
+ * @param createRouter Factory method which returns router object.
47
+ * @param options Options object containing `children` and additional options for the router.
48
+ * @returns An object containing `state`, `navigation`, `descriptors` objects.
49
+ */
51
50
  params: object | undefined;
52
51
  merge?: boolean | undefined;
53
52
  } : never): void;
53
+ preload<RouteName_4 extends string>(...args: RouteName_4 extends unknown ? [screen: RouteName_4] | [screen: RouteName_4, params: object | undefined] : never): void;
54
54
  reset(state: Readonly<{
55
55
  key: string;
56
56
  index: number;
57
57
  routeNames: string[];
58
58
  history?: unknown[] | undefined;
59
- routes: (Readonly<{
60
- key: string;
61
- name: string;
62
- path?: string | undefined;
63
- }> & Readonly<{
64
- params?: Readonly<object | undefined>;
65
- }> & {
66
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
67
- })[];
59
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
68
60
  type: string;
69
61
  stale: false;
70
62
  }> | PartialState<Readonly<{
@@ -72,15 +64,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
72
64
  index: number;
73
65
  routeNames: string[];
74
66
  history?: unknown[] | undefined;
75
- routes: (Readonly<{
76
- key: string;
77
- name: string;
78
- path?: string | undefined;
79
- }> & Readonly<{
80
- params?: Readonly<object | undefined>;
81
- }> & {
82
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
83
- })[];
67
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
84
68
  type: string;
85
69
  stale: false;
86
70
  }>>): void;
@@ -94,15 +78,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
94
78
  index: number;
95
79
  routeNames: string[];
96
80
  history?: unknown[] | undefined;
97
- routes: (Readonly<{
98
- key: string;
99
- name: string;
100
- path?: string | undefined;
101
- }> & Readonly<{
102
- params?: Readonly<object | undefined>;
103
- }> & {
104
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
105
- })[];
81
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
106
82
  type: string;
107
83
  stale: false;
108
84
  }>;
@@ -111,15 +87,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
111
87
  index: number;
112
88
  routeNames: string[];
113
89
  history?: unknown[] | undefined;
114
- routes: (Readonly<{
115
- key: string;
116
- name: string;
117
- path?: string | undefined;
118
- }> & Readonly<{
119
- params?: Readonly<object | undefined>;
120
- }> & {
121
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
122
- })[];
90
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
123
91
  type: string;
124
92
  stale: false;
125
93
  }> | PartialState<Readonly<{
@@ -127,21 +95,67 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
127
95
  index: number;
128
96
  routeNames: string[];
129
97
  history?: unknown[] | undefined;
130
- routes: (Readonly<{
131
- key: string;
132
- name: string;
133
- path?: string | undefined;
134
- }> & Readonly<{
135
- params?: Readonly<object | undefined>;
136
- }> & {
137
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
138
- })[];
98
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
139
99
  type: string;
140
100
  stale: false;
141
101
  }>>): void;
142
102
  } & PrivateValueStore<[ParamListBase, unknown, unknown]> & import("./types").EventEmitter<EventMap> & {
143
- setParams<RouteName_4 extends string>(params: Partial<object | undefined>): void;
103
+ setParams<RouteName_5 extends string>(params: Partial<object | undefined>): void;
144
104
  } & ActionHelpers;
105
+ describe: (route: import("./types").RouteProp<ParamListBase>, placeholder: boolean) => import("./types").Descriptor<ScreenOptions, Omit<{
106
+ dispatch(action: Readonly<{
107
+ type: string;
108
+ payload?: object | undefined;
109
+ source?: string | undefined;
110
+ target?: string | undefined;
111
+ }> | ((state: Readonly<State>) => Readonly<{
112
+ type: string;
113
+ payload?: object | undefined;
114
+ source?: string | undefined;
115
+ target?: string | undefined;
116
+ }>)): void;
117
+ navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName] | [screen: RouteName, params: object | undefined] : never): void;
118
+ navigate<RouteName_1 extends string>(options: RouteName_1 extends unknown ? {
119
+ name: RouteName_1;
120
+ params: object | undefined;
121
+ path?: string | undefined;
122
+ merge?: boolean | undefined;
123
+ } : never): void;
124
+ navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
125
+ navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
126
+ name: RouteName_3;
127
+ /**
128
+ * Hook for building navigators.
129
+ *
130
+ * @param createRouter Factory method which returns router object.
131
+ * @param options Options object containing `children` and additional options for the router.
132
+ * @returns An object containing `state`, `navigation`, `descriptors` objects.
133
+ */
134
+ params: object | undefined;
135
+ merge?: boolean | undefined;
136
+ } : never): void;
137
+ preload<RouteName_4 extends string>(...args: RouteName_4 extends unknown ? [screen: RouteName_4] | [screen: RouteName_4, params: object | undefined] : never): void;
138
+ reset(state: State | PartialState<State>): void;
139
+ goBack(): void;
140
+ isFocused(): boolean;
141
+ canGoBack(): boolean;
142
+ getId(): string | undefined;
143
+ getParent<T = import("./types").NavigationHelpers<ParamListBase, {}> | undefined>(id?: string | undefined): T;
144
+ getState(): State;
145
+ setStateForNextRouteNamesChange(state: State | PartialState<State>): void;
146
+ } & PrivateValueStore<[ParamListBase, unknown, unknown]>, "getParent"> & {
147
+ getParent<T_1 = import("./types").NavigationProp<ParamListBase, string, undefined, Readonly<{
148
+ key: string;
149
+ index: number;
150
+ routeNames: string[];
151
+ history?: unknown[] | undefined;
152
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
153
+ type: string;
154
+ stale: false;
155
+ }>, {}, {}> | undefined>(id?: string | undefined): T_1;
156
+ setParams(params: Partial<object | undefined>): void;
157
+ setOptions(options: Partial<ScreenOptions>): void;
158
+ } & import("./types").EventConsumer<EventMap & EventMapCore<State>> & PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers, import("./types").RouteProp<ParamListBase>>;
145
159
  descriptors: Record<string, import("./types").Descriptor<ScreenOptions, Omit<{
146
160
  dispatch(action: Readonly<{
147
161
  type: string;
@@ -164,9 +178,17 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
164
178
  navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
165
179
  navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
166
180
  name: RouteName_3;
181
+ /**
182
+ * Hook for building navigators.
183
+ *
184
+ * @param createRouter Factory method which returns router object.
185
+ * @param options Options object containing `children` and additional options for the router.
186
+ * @returns An object containing `state`, `navigation`, `descriptors` objects.
187
+ */
167
188
  params: object | undefined;
168
189
  merge?: boolean | undefined;
169
190
  } : never): void;
191
+ preload<RouteName_4 extends string>(...args: RouteName_4 extends unknown ? [screen: RouteName_4] | [screen: RouteName_4, params: object | undefined] : never): void;
170
192
  reset(state: State | PartialState<State>): void;
171
193
  goBack(): void;
172
194
  isFocused(): boolean;
@@ -181,15 +203,7 @@ export declare function useNavigationBuilder<State extends NavigationState, Rout
181
203
  index: number;
182
204
  routeNames: string[];
183
205
  history?: unknown[] | undefined;
184
- routes: (Readonly<{
185
- key: string;
186
- name: string;
187
- path?: string | undefined;
188
- }> & Readonly<{
189
- params?: Readonly<object | undefined>;
190
- }> & {
191
- state?: Readonly<any> | PartialState<Readonly<any>> | undefined;
192
- })[];
206
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
193
207
  type: string;
194
208
  stale: false;
195
209
  }>, {}, {}> | undefined>(id?: string | undefined): T_1;
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAyMjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,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,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+dhB"}
1
+ {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AA6MjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,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,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YArBjB;;;;;;eAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YANH;;;;;;eAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YANH;;;;;;eAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwfF"}
@@ -9,12 +9,62 @@ type Options<State extends NavigationState, ScreenOptions extends {}, EventMap e
9
9
  router: Router<State, NavigationAction>;
10
10
  emitter: NavigationEventEmitter<EventMap>;
11
11
  };
12
- type NavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = Record<string, NavigationProp<ParamListBase, string, string | undefined, State, ScreenOptions, EventMap>>;
12
+ type NavigationItem<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = NavigationProp<ParamListBase, string, string | undefined, State, ScreenOptions, EventMap>;
13
+ type NavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>> = Record<string, NavigationItem<State, ScreenOptions, EventMap>>;
13
14
  /**
14
15
  * Hook to cache navigation objects for each screen in the navigator.
15
16
  * It's important to cache them to make sure navigation objects don't change between renders.
16
17
  * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.
17
18
  */
18
- export declare 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
+ export declare function useNavigationCache<State extends NavigationState, ScreenOptions extends {}, EventMap extends Record<string, any>, ActionHelpers extends Record<string, () => void>>({ state, getState, navigation, setOptions, router, emitter, }: Options<State, ScreenOptions, EventMap>): {
20
+ base: Omit<{
21
+ dispatch(action: Readonly<{
22
+ type: string;
23
+ payload?: object | undefined;
24
+ source?: string | undefined;
25
+ target?: string | undefined;
26
+ }> | ((state: Readonly<State>) => Readonly<{
27
+ type: string;
28
+ payload?: object | undefined;
29
+ source?: string | undefined;
30
+ target?: string | undefined;
31
+ }>)): void;
32
+ navigate<RouteName extends string>(...args: RouteName extends unknown ? [screen: RouteName] | [screen: RouteName, params: object | undefined] : never): void;
33
+ navigate<RouteName_1 extends string>(options: RouteName_1 extends unknown ? {
34
+ name: RouteName_1;
35
+ params: object | undefined;
36
+ path?: string | undefined;
37
+ merge?: boolean | undefined;
38
+ } : never): void;
39
+ navigateDeprecated<RouteName_2 extends string>(...args: RouteName_2 extends unknown ? [screen: RouteName_2] | [screen: RouteName_2, params: object | undefined] : never): void;
40
+ navigateDeprecated<RouteName_3 extends string>(options: RouteName_3 extends unknown ? {
41
+ name: RouteName_3;
42
+ params: object | undefined;
43
+ merge?: boolean | undefined;
44
+ } : never): void;
45
+ preload<RouteName_4 extends string>(...args: RouteName_4 extends unknown ? [screen: RouteName_4] | [screen: RouteName_4, params: object | undefined] : never): void;
46
+ reset(state: State | import("@react-navigation/routers").PartialState<State>): void;
47
+ goBack(): void;
48
+ isFocused(): boolean;
49
+ canGoBack(): boolean;
50
+ getId(): string | undefined;
51
+ getParent<T = NavigationHelpers<ParamListBase, {}> | undefined>(id?: string | undefined): T;
52
+ getState(): State;
53
+ setStateForNextRouteNamesChange(state: State | import("@react-navigation/routers").PartialState<State>): void;
54
+ } & import("./types").PrivateValueStore<[ParamListBase, unknown, unknown]>, "getParent"> & {
55
+ getParent<T_1 = NavigationProp<ParamListBase, string, undefined, Readonly<{
56
+ key: string;
57
+ index: number;
58
+ routeNames: string[];
59
+ history?: unknown[] | undefined;
60
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
61
+ type: string;
62
+ stale: false;
63
+ }>, {}, {}> | undefined>(id?: string | undefined): T_1;
64
+ setParams(params: Partial<object | undefined>): void;
65
+ setOptions(options: Partial<ScreenOptions>): void;
66
+ } & import("./types").EventConsumer<EventMap & import("./types").EventMapCore<State>> & import("./types").PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers;
67
+ navigations: NavigationCache<State, ScreenOptions, EventMap>;
68
+ };
19
69
  export {};
20
70
  //# sourceMappingURL=useNavigationCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationCache.d.ts","sourceRoot":"","sources":["../../../src/useNavigationCache.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,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,wBAAgB,kBAAkB,CAChC,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
+ {"version":3,"file":"useNavigationCache.d.ts","sourceRoot":"","sources":["../../../src/useNavigationCache.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,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,cAAc,CACjB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC,cAAc,CAChB,aAAa,EACb,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,CACT,CAAC;AAEF,KAAK,eAAe,CAClB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,EACA,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,GACR,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KzC"}
@@ -23,15 +23,7 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
23
23
  index: number;
24
24
  routeNames: string[];
25
25
  history?: unknown[] | undefined;
26
- routes: (Readonly<{
27
- key: string;
28
- name: string;
29
- path?: string | undefined;
30
- }> & Readonly<{
31
- params?: Readonly<object | undefined>;
32
- }> & {
33
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
34
- })[];
26
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
35
27
  type: string;
36
28
  stale: false;
37
29
  }>>) => Readonly<{
@@ -53,20 +45,13 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
53
45
  params: object | undefined;
54
46
  merge?: boolean | undefined;
55
47
  } : never): void;
48
+ preload<RouteName_4 extends string>(...args: RouteName_4 extends unknown ? [screen: RouteName_4] | [screen: RouteName_4, params: object | undefined] : never): void;
56
49
  reset(state: Readonly<{
57
50
  key: string;
58
51
  index: number;
59
52
  routeNames: string[];
60
53
  history?: unknown[] | undefined;
61
- routes: (Readonly<{
62
- key: string;
63
- name: string;
64
- path?: string | undefined;
65
- }> & Readonly<{
66
- params?: Readonly<object | undefined>;
67
- }> & {
68
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
69
- })[];
54
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
70
55
  type: string;
71
56
  stale: false;
72
57
  }> | import("@react-navigation/routers").PartialState<Readonly<{
@@ -74,15 +59,7 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
74
59
  index: number;
75
60
  routeNames: string[];
76
61
  history?: unknown[] | undefined;
77
- routes: (Readonly<{
78
- key: string;
79
- name: string;
80
- path?: string | undefined;
81
- }> & Readonly<{
82
- params?: Readonly<object | undefined>;
83
- }> & {
84
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
85
- })[];
62
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
86
63
  type: string;
87
64
  stale: false;
88
65
  }>>): void;
@@ -96,15 +73,7 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
96
73
  index: number;
97
74
  routeNames: string[];
98
75
  history?: unknown[] | undefined;
99
- routes: (Readonly<{
100
- key: string;
101
- name: string;
102
- path?: string | undefined;
103
- }> & Readonly<{
104
- params?: Readonly<object | undefined>;
105
- }> & {
106
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
107
- })[];
76
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
108
77
  type: string;
109
78
  stale: false;
110
79
  }>;
@@ -113,15 +82,7 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
113
82
  index: number;
114
83
  routeNames: string[];
115
84
  history?: unknown[] | undefined;
116
- routes: (Readonly<{
117
- key: string;
118
- name: string;
119
- path?: string | undefined;
120
- }> & Readonly<{
121
- params?: Readonly<object | undefined>;
122
- }> & {
123
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
124
- })[];
85
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
125
86
  type: string;
126
87
  stale: false;
127
88
  }> | import("@react-navigation/routers").PartialState<Readonly<{
@@ -129,20 +90,12 @@ export declare function useNavigationHelpers<State extends NavigationState, Acti
129
90
  index: number;
130
91
  routeNames: string[];
131
92
  history?: unknown[] | undefined;
132
- routes: (Readonly<{
133
- key: string;
134
- name: string;
135
- path?: string | undefined;
136
- }> & Readonly<{
137
- params?: Readonly<object | undefined>;
138
- }> & {
139
- state?: Readonly<any> | import("@react-navigation/routers").PartialState<Readonly<any>> | undefined;
140
- })[];
93
+ routes: import("@react-navigation/routers").NavigationRoute<ParamListBase, string>[];
141
94
  type: string;
142
95
  stale: false;
143
96
  }>>): void;
144
97
  } & PrivateValueStore<[ParamListBase, unknown, unknown]> & import("./types").EventEmitter<EventMap> & {
145
- setParams<RouteName_4 extends string>(params: Partial<object | undefined>): void;
98
+ setParams<RouteName_5 extends string>(params: Partial<object | undefined>): void;
146
99
  } & ActionHelpers;
147
100
  export {};
148
101
  //# sourceMappingURL=useNavigationHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationHelpers.d.ts","sourceRoot":"","sources":["../../../src/useNavigationHelpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAKhE,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,wBAAgB,oBAAoB,CAClC,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,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAKhE,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,wBAAgB,oBAAoB,CAClC,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 +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;AAInC,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,YAoBI,gBAAgB,sBACL,IAAI,MAAM,CAAC,aAyGnC"}
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,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,YAoBI,gBAAgB,sBACL,IAAI,MAAM,CAAC,aA8GnC"}
@@ -5,7 +5,7 @@ import type { NavigationAction } from '@react-navigation/routers';
5
5
  * @param preventRemove Boolean indicating whether to prevent screen from being removed.
6
6
  * @param callback Function which is executed when screen was prevented from being removed.
7
7
  */
8
- export declare function UNSTABLE_usePreventRemove(preventRemove: boolean, callback: (options: {
8
+ export declare function usePreventRemove(preventRemove: boolean, callback: (options: {
9
9
  data: {
10
10
  action: NavigationAction;
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventRemove.d.ts","sourceRoot":"","sources":["../../../src/usePreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAUlE;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE;QAAE,MAAM,EAAE,gBAAgB,CAAA;KAAE,CAAA;CAAE,KAAK,IAAI,QAgCpE"}
1
+ {"version":3,"file":"usePreventRemove.d.ts","sourceRoot":"","sources":["../../../src/usePreventRemove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAUlE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE;QAAE,MAAM,EAAE,gBAAgB,CAAA;KAAE,CAAA;CAAE,KAAK,IAAI,QAgCpE"}
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": "7.0.0-alpha.6",
4
+ "version": "7.0.0-alpha.8",
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": "^7.0.0-alpha.4",
38
+ "@react-navigation/routers": "^7.0.0-alpha.6",
39
39
  "escape-string-regexp": "^4.0.0",
40
- "nanoid": "3.3.6",
40
+ "nanoid": "3.3.7",
41
41
  "query-string": "^7.1.3",
42
42
  "react-is": "^18.2.0",
43
43
  "use-latest-callback": "^0.1.9"
44
44
  },
45
45
  "devDependencies": {
46
- "@testing-library/react-native": "^12.3.1",
47
- "@types/react": "~18.2.33",
46
+ "@testing-library/react-native": "^12.4.3",
47
+ "@types/react": "~18.2.45",
48
48
  "@types/react-is": "^18.2.3",
49
49
  "del-cli": "^5.1.0",
50
50
  "immer": "^10.0.3",
51
51
  "react": "18.2.0",
52
- "react-native-builder-bob": "^0.23.1",
52
+ "react-native-builder-bob": "^0.23.2",
53
53
  "react-test-renderer": "18.2.0",
54
- "typescript": "^5.2.2"
54
+ "typescript": "^5.3.3"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "react": "*"
@@ -70,5 +70,5 @@
70
70
  ]
71
71
  ]
72
72
  },
73
- "gitHead": "d718b717320d41c90051c2a5f849b8d74f518a18"
73
+ "gitHead": "e4e445810a3a958c35cc34486b5499baa595500e"
74
74
  }
@@ -20,6 +20,7 @@ import { NavigationBuilderContext } from './NavigationBuilderContext';
20
20
  import { NavigationContainerRefContext } from './NavigationContainerRefContext';
21
21
  import { NavigationIndependentTreeContext } from './NavigationIndependentTreeContext';
22
22
  import { NavigationStateContext } from './NavigationStateContext';
23
+ import { ThemeProvider } from './theming/ThemeProvider';
23
24
  import type {
24
25
  NavigationContainerEventMap,
25
26
  NavigationContainerProps,
@@ -76,6 +77,7 @@ const getPartialState = (
76
77
  * @param props.onReady Callback which is called after the navigation tree mounts.
77
78
  * @param props.onStateChange Callback which is called with the latest navigation state when it changes.
78
79
  * @param props.onUnhandledAction Callback which is called when an action is not handled.
80
+ * @param props.theme Theme object for the UI elements.
79
81
  * @param props.children Child elements to render the content.
80
82
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
81
83
  */
@@ -87,6 +89,7 @@ export const BaseNavigationContainer = React.forwardRef(
87
89
  onReady,
88
90
  onUnhandledAction,
89
91
  navigationInChildEnabled = false,
92
+ theme,
90
93
  children,
91
94
  }: NavigationContainerProps,
92
95
  ref?: React.Ref<NavigationContainerRef<ParamListBase>>
@@ -434,7 +437,9 @@ export const BaseNavigationContainer = React.forwardRef(
434
437
  <DeprecatedNavigationInChildContext.Provider
435
438
  value={navigationInChildEnabled}
436
439
  >
437
- <EnsureSingleNavigator>{children}</EnsureSingleNavigator>
440
+ <EnsureSingleNavigator>
441
+ <ThemeProvider value={theme}>{children}</ThemeProvider>
442
+ </EnsureSingleNavigator>
438
443
  </DeprecatedNavigationInChildContext.Provider>
439
444
  </UnhandledActionContext.Provider>
440
445
  </NavigationStateContext.Provider>
@@ -1,5 +1,6 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
+ import { isValidElementType } from 'react-is';
3
4
 
4
5
  import type {
5
6
  DefaultNavigatorOptions,
@@ -40,14 +41,14 @@ type ParamsForScreenComponent<T> = T extends {
40
41
  }
41
42
  ? P
42
43
  : T extends React.ComponentType<{ route: { params: infer P } }>
43
- ? P
44
- : undefined;
44
+ ? P
45
+ : undefined;
45
46
 
46
47
  type ParamsForScreen<T> = T extends { screen: StaticNavigation<any, any, any> }
47
48
  ? NavigatorScreenParams<StaticParamList<T['screen']>> | undefined
48
49
  : T extends StaticNavigation<any, any, any>
49
- ? NavigatorScreenParams<StaticParamList<T>> | undefined
50
- : UnknownToUndefined<ParamsForScreenComponent<T>>;
50
+ ? NavigatorScreenParams<StaticParamList<T>> | undefined
51
+ : UnknownToUndefined<ParamsForScreenComponent<T>>;
51
52
 
52
53
  type ParamListForScreens<Screens> = {
53
54
  [Key in KeysOf<Screens>]: ParamsForScreen<Screens[Key]>;
@@ -241,7 +242,7 @@ const getItemsFromScreens = (
241
242
  useIf = _if;
242
243
  props = rest;
243
244
 
244
- if (typeof screen === 'function') {
245
+ if (isValidElementType(screen)) {
245
246
  component = screen;
246
247
  } else if ('config' in screen) {
247
248
  isNavigator = true;
@@ -250,7 +251,7 @@ const getItemsFromScreens = (
250
251
  `${name}Navigator`
251
252
  );
252
253
  }
253
- } else if (typeof item === 'function') {
254
+ } else if (isValidElementType(item)) {
254
255
  component = item;
255
256
  } else if ('config' in item) {
256
257
  isNavigator = true;
@@ -299,6 +300,12 @@ export function createComponentForStaticNavigation(
299
300
  const { Navigator, Group, Screen, config } = tree;
300
301
  const { screens, groups, ...rest } = config;
301
302
 
303
+ if (screens == null) {
304
+ throw new Error(
305
+ "Couldn't find a 'screens' property. Make sure to define your screens under a 'screens' property in the configuration."
306
+ );
307
+ }
308
+
302
309
  const items = getItemsFromScreens(Screen, screens);
303
310
 
304
311
  if (groups) {
@@ -20,9 +20,9 @@ export function getFocusedRouteNameFromRoute(
20
20
  : state.routes.length - 1)
21
21
  ].name
22
22
  : // If state doesn't exist, we need to default to `screen` param if available
23
- typeof params?.screen === 'string'
24
- ? params.screen
25
- : undefined;
23
+ typeof params?.screen === 'string'
24
+ ? params.screen
25
+ : undefined;
26
26
 
27
27
  return routeName;
28
28
  }
package/src/index.tsx CHANGED
@@ -21,6 +21,9 @@ export {
21
21
  type StaticParamList,
22
22
  type StaticScreenProps,
23
23
  } from './StaticNavigation';
24
+ export { ThemeContext } from './theming/ThemeContext';
25
+ export { ThemeProvider } from './theming/ThemeProvider';
26
+ export { useTheme } from './theming/useTheme';
24
27
  export * from './types';
25
28
  export { useFocusEffect } from './useFocusEffect';
26
29
  export { useIsFocused } from './useIsFocused';
@@ -29,7 +32,7 @@ export { useNavigationBuilder } from './useNavigationBuilder';
29
32
  export { useNavigationContainerRef } from './useNavigationContainerRef';
30
33
  export { useNavigationIndependentTree } from './useNavigationIndependentTree';
31
34
  export { useNavigationState } from './useNavigationState';
32
- export { UNSTABLE_usePreventRemove } from './usePreventRemove';
35
+ export { usePreventRemove } from './usePreventRemove';
33
36
  export { usePreventRemoveContext } from './usePreventRemoveContext';
34
37
  export { useRoute } from './useRoute';
35
38
  export { validatePathConfig } from './validatePathConfig';
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+
3
+ export const ThemeContext = React.createContext<
4
+ ReactNavigation.Theme | undefined
5
+ >(undefined);
6
+
7
+ ThemeContext.displayName = 'ThemeContext';
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+
3
+ import { ThemeContext } from './ThemeContext';
4
+
5
+ type Props = {
6
+ value: ReactNavigation.Theme | undefined;
7
+ children: React.ReactNode;
8
+ };
9
+
10
+ export function ThemeProvider({ value, children }: Props) {
11
+ return (
12
+ <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>
13
+ );
14
+ }