@react-navigation/core 8.0.0-alpha.11 → 8.0.0-alpha.12
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.
- package/lib/module/StaticNavigation.js +8 -1
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/createNavigatorFactory.js +5 -4
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +7 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useNavigationState.js +2 -2
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +26 -11
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +15 -4
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +34 -34
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/StaticNavigation.tsx +67 -30
- package/src/createNavigatorFactory.tsx +37 -5
- package/src/index.tsx +6 -1
- package/src/types.tsx +97 -69
- package/src/useNavigationState.tsx +5 -3
|
@@ -17,6 +17,13 @@ import { useRoute } from "./useRoute.js";
|
|
|
17
17
|
* - When screen is a nested navigator: merges path params with navigator screen params
|
|
18
18
|
* - Otherwise: merges path params with screen component params
|
|
19
19
|
*/
|
|
20
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
+
/**
|
|
22
|
+
* Helper to create a typed `createXScreen` for static configuration.
|
|
23
|
+
*/
|
|
24
|
+
export function createScreenFactory() {
|
|
25
|
+
return config => config;
|
|
26
|
+
}
|
|
20
27
|
|
|
21
28
|
/**
|
|
22
29
|
* Props for a screen component which is rendered by a static navigator.
|
|
@@ -26,7 +33,7 @@ import { useRoute } from "./useRoute.js";
|
|
|
26
33
|
/**
|
|
27
34
|
* Infer the param list from the static navigation config.
|
|
28
35
|
*/
|
|
29
|
-
|
|
36
|
+
|
|
30
37
|
const MemoizedScreen = /*#__PURE__*/React.memo(({
|
|
31
38
|
component
|
|
32
39
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","groupLinking","initialRouteName","fromEntries","sort","a","b","screenConfig","groupPath","path","normalizePath","replace","linking","assign","parse","stringify","skipInitialDetectionInChild","undefined","toLowerCase","filter","keys","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,13 +4,14 @@ import * as React from 'react';
|
|
|
4
4
|
import { Group } from "./Group.js";
|
|
5
5
|
import { Screen } from "./Screen.js";
|
|
6
6
|
import { createComponentForStaticConfig } from "./StaticNavigation.js";
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
|
-
* Higher order
|
|
10
|
-
*
|
|
8
|
+
* Higher order function to create a navigator factory
|
|
9
|
+
* A navigator factory creates a navigator:
|
|
10
|
+
* - `Navigator` and `Screen` pairs for dynamic configuration
|
|
11
|
+
* - Static navigator object for static configuration
|
|
11
12
|
*
|
|
12
13
|
* @param Navigator The navigator component to wrap.
|
|
13
|
-
* @returns Factory method to create a
|
|
14
|
+
* @returns Factory method to create a navigator
|
|
14
15
|
*/
|
|
15
16
|
export function createNavigatorFactory(Navigator) {
|
|
16
17
|
const displayName = Navigator.displayName ?? Navigator.name ?? 'Navigator';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;AAyB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -16,7 +16,7 @@ export { NavigationMetaContext } from "./NavigationMetaContext.js";
|
|
|
16
16
|
export { NavigationContext, NavigationProvider, NavigationRouteContext } from "./NavigationProvider.js";
|
|
17
17
|
export { PreventRemoveContext } from "./PreventRemoveContext.js";
|
|
18
18
|
export { PreventRemoveProvider } from "./PreventRemoveProvider.js";
|
|
19
|
-
export { createPathConfigForStaticNavigation } from "./StaticNavigation.js";
|
|
19
|
+
export { createPathConfigForStaticNavigation, createScreenFactory } from "./StaticNavigation.js";
|
|
20
20
|
export { ThemeContext } from "./theming/ThemeContext.js";
|
|
21
21
|
export { ThemeProvider } from "./theming/ThemeProvider.js";
|
|
22
22
|
export { useTheme } from "./theming/useTheme.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","ThemeContext","ThemeProvider","useTheme","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,
|
|
1
|
+
{"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,cAAc,YAAS;AACvB,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,cAAc,2BAA2B","ignoreList":[]}
|
package/lib/module/types.js
CHANGED
|
@@ -42,4 +42,11 @@ export class PrivateValueStore {}
|
|
|
42
42
|
* The hook can be used in `NavigationContainer` directly, not inside of a navigator.
|
|
43
43
|
* So navigator specific methods won't be available.
|
|
44
44
|
*/
|
|
45
|
+
|
|
46
|
+
// Only use action helpers if all values are functions
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Adds a proper `ParamList` to a type bag interface
|
|
50
|
+
* So it can be used as `this['ParamList']`
|
|
51
|
+
*/
|
|
45
52
|
//# sourceMappingURL=types.js.map
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAA4B;;
|
|
1
|
+
{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAA4B;;AAopB1D;AACA;AACA;AACA;AACA;AACA;;AA4OA;;AAuBA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -18,8 +18,8 @@ export function useNavigationState(...args) {
|
|
|
18
18
|
let navigation, stateListener, selector;
|
|
19
19
|
if (typeof args[0] === 'string') {
|
|
20
20
|
// `useNavigation` uses `use` internally, so it's fine to call it conditionally
|
|
21
|
-
//
|
|
22
|
-
//
|
|
21
|
+
// Cast to a non-generic signature to skip overload resolution - otherwise TS
|
|
22
|
+
// eagerly expands `NavigationListForNested<RootNavigator>` at this call site.
|
|
23
23
|
navigation = useNavigation(args[0]);
|
|
24
24
|
selector = args[1];
|
|
25
25
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLatestCallback","useSyncExternalStoreWithSelector","useNavigation","jsx","_jsx","useNavigationState","args","navigation","stateListener","selector","use","NavigationStateListenerContext","Error","subscribe","useCallback","callback","addListener","getSnapshot","getState","value","NavigationStateListenerProvider","state","children","listeners","useRef","stateRef","current","push","filter","cb","useLayoutEffect","forEach","context","useMemo","Provider","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,gCAAgC,QAAQ,uCAAuC;AAOxF,SAASC,aAAa,QAAQ,oBAAiB;;AAgB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA;AAoBA,OAAO,SAASC,kBAAkBA,CAAC,GAAGC,IAAe,EAAW;EAC9D,IAAIC,UAAqD,EACvDC,aAAkD,EAClDC,QAAQ;EAEV,IAAI,OAAOH,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IAC/B;IACA;IACA;IACAC,UAAU,
|
|
1
|
+
{"version":3,"names":["React","useLatestCallback","useSyncExternalStoreWithSelector","useNavigation","jsx","_jsx","useNavigationState","args","navigation","stateListener","selector","use","NavigationStateListenerContext","Error","subscribe","useCallback","callback","addListener","getSnapshot","getState","value","NavigationStateListenerProvider","state","children","listeners","useRef","stateRef","current","push","filter","cb","useLayoutEffect","forEach","context","useMemo","Provider","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NavigationState, ParamListBase, Route } from '@react-navigation/routers';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, PathConfig, PathConfigMap, RouteGroupConfig, ScreenListeners, Theme } from './types';
|
|
3
|
+
import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, NavigatorTypeBagFor, PathConfig, PathConfigMap, RouteGroupConfig, ScreenListeners, Theme } from './types';
|
|
4
4
|
import type { AnyToUnknown, FlatType, HasArguments, InferParamsFromLinking, KeysOf, StandardSchemaV1, UnionToIntersection, ValidPathPattern } from './utilities';
|
|
5
5
|
type ParamsForScreenComponent<T> = T extends (...args: any[]) => any ? HasArguments<T> extends true ? T extends React.ComponentType<{
|
|
6
6
|
route: {
|
|
@@ -12,16 +12,16 @@ type ParamsForScreenComponent<T> = T extends (...args: any[]) => any ? HasArgume
|
|
|
12
12
|
};
|
|
13
13
|
}> ? Params : undefined;
|
|
14
14
|
type ParamsForNestedNavigator<T extends {
|
|
15
|
-
config:
|
|
15
|
+
config: any;
|
|
16
16
|
}, ParamList extends {} = StaticParamList<T>> = {
|
|
17
17
|
[RouteName in keyof ParamList]-?: undefined extends ParamList[RouteName] ? never : RouteName;
|
|
18
18
|
}[keyof ParamList] extends never ? NavigatorScreenParams<ParamList> | undefined : NavigatorScreenParams<ParamList>;
|
|
19
19
|
type ParamsForScreen<T> = T extends {
|
|
20
20
|
screen: {
|
|
21
|
-
config:
|
|
21
|
+
config: any;
|
|
22
22
|
};
|
|
23
23
|
} ? ParamsForNestedNavigator<T['screen']> : T extends {
|
|
24
|
-
config:
|
|
24
|
+
config: any;
|
|
25
25
|
} ? ParamsForNestedNavigator<T> : T extends {
|
|
26
26
|
screen: React.ComponentType<any>;
|
|
27
27
|
} ? ParamsForScreenComponent<T['screen']> : ParamsForScreenComponent<T>;
|
|
@@ -37,9 +37,10 @@ type MergeLinkingAndScreenParams<LinkingParams, ScreenParams> = undefined extend
|
|
|
37
37
|
* - When screen is a nested navigator: merges path params with navigator screen params
|
|
38
38
|
* - Otherwise: merges path params with screen component params
|
|
39
39
|
*/
|
|
40
|
-
type ParamsForConfig<Linking, Screen> =
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
type ParamsForConfig<Linking, Screen> = ParamsForConfigInternal<Linking, Screen, ParamsForScreen<Screen>>;
|
|
41
|
+
type ParamsForConfigInternal<Linking, Screen, SP> = undefined extends Linking ? SP : ShouldInferFromLinking<Linking> extends true ? Screen extends {
|
|
42
|
+
config: any;
|
|
43
|
+
} ? FlatType<InferParamsFromLinking<Linking>> & SP : MergeLinkingAndScreenParams<InferParamsFromLinking<Linking>, SP> : SP;
|
|
43
44
|
type ParamListForScreens<Screens> = {
|
|
44
45
|
[Key in KeysOf<Screens>]: Screens[Key] extends StaticScreenConfig<infer Linking, infer Screen, any, any, any, any> ? ParamsForConfig<Linking, Screen> : ParamsForScreen<Screens[Key]>;
|
|
45
46
|
};
|
|
@@ -105,6 +106,15 @@ export type StaticScreenConfigLinking = string | (StaticScreenConfigLinkingAlias
|
|
|
105
106
|
* Additional path alias that will be matched to the same screen.
|
|
106
107
|
*/
|
|
107
108
|
alias?: (string | StaticScreenConfigLinkingAlias)[];
|
|
109
|
+
/**
|
|
110
|
+
* Name of the initial route to use for the nested navigator when the path matches.
|
|
111
|
+
*/
|
|
112
|
+
initialRouteName?: string | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Path configuration for child screens in the nested navigator.
|
|
115
|
+
* Only supported when the screen renders a navigator with dynamic API.
|
|
116
|
+
*/
|
|
117
|
+
screens?: PathConfigMap<ParamListBase> | undefined;
|
|
108
118
|
}) | undefined;
|
|
109
119
|
export type StaticScreenConfigScreen = React.ComponentType<any> | StaticNavigation<any>;
|
|
110
120
|
export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation, Params = ParamsForConfig<Linking, Screen>> = {
|
|
@@ -221,7 +231,12 @@ export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen
|
|
|
221
231
|
*/
|
|
222
232
|
navigationKey?: string;
|
|
223
233
|
};
|
|
224
|
-
type
|
|
234
|
+
export type StaticScreenFactory<in out Bag extends NavigatorTypeBagBase> = <const Linking extends StaticScreenConfigLinking, const Screen extends StaticScreenConfigScreen>(config: StaticScreenConfig<Linking, Screen, Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'][keyof Bag['ParamList']]>) => StaticScreenConfig<Linking, Screen, Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'][keyof Bag['ParamList']]>;
|
|
235
|
+
/**
|
|
236
|
+
* Helper to create a typed `createXScreen` for static configuration.
|
|
237
|
+
*/
|
|
238
|
+
export declare function createScreenFactory<TypeBag extends NavigatorTypeBagBase>(): StaticScreenFactory<NavigatorTypeBagFor<TypeBag, ParamListBase>>;
|
|
239
|
+
type StaticConfigScreens<in out ParamList extends ParamListBase, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out NavigationList extends NavigationListBase<ParamList>> = {
|
|
225
240
|
[RouteName in keyof ParamList]: React.ComponentType<any> | StaticNavigation<any> | StaticScreenConfig<{
|
|
226
241
|
path: string;
|
|
227
242
|
parse?: Record<string, ((value: string) => any) | StandardSchemaV1<any, any>>;
|
|
@@ -260,7 +275,7 @@ type StaticConfigGroup<ParamList extends ParamListBase, State extends Navigation
|
|
|
260
275
|
screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
|
|
261
276
|
};
|
|
262
277
|
export type StaticConfig<Bag extends NavigatorTypeBagBase> = StaticConfigInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>;
|
|
263
|
-
type StaticConfigInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<
|
|
278
|
+
type StaticConfigInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<any, any, any, any, any>> & DefaultNavigatorOptions<ParamList, State, ScreenOptions, EventMap, NavigationList[keyof ParamList]>, 'screens' | 'children'> & ({
|
|
264
279
|
/**
|
|
265
280
|
* Screens to render in the navigator and their configuration.
|
|
266
281
|
*/
|
|
@@ -287,7 +302,7 @@ type StaticConfigInternal<ParamList extends ParamListBase, State extends Navigat
|
|
|
287
302
|
* Props for a screen component which is rendered by a static navigator.
|
|
288
303
|
* Takes the route params as a generic argument.
|
|
289
304
|
*/
|
|
290
|
-
export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
|
|
305
|
+
export type StaticScreenProps<in out T extends Record<string, unknown> | undefined> = {
|
|
291
306
|
route: {
|
|
292
307
|
params: T;
|
|
293
308
|
};
|
|
@@ -298,7 +313,7 @@ export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
|
|
|
298
313
|
export type StaticParamList<T extends {
|
|
299
314
|
readonly config: any;
|
|
300
315
|
}> = FlatType<ParamListForScreens<T['config']['screens']> & ParamListForGroups<T['config']['groups']>>;
|
|
301
|
-
export type StaticNavigation<NavigatorTypeBag extends NavigatorTypeBagBase> = {
|
|
316
|
+
export type StaticNavigation<in out NavigatorTypeBag extends NavigatorTypeBagBase> = {
|
|
302
317
|
config: StaticConfig<NavigatorTypeBag>;
|
|
303
318
|
getComponent: () => React.ComponentType<{}>;
|
|
304
319
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,KAAK,EACN,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,MAAM,EACN,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChE,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1B,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAChE,MAAM,GACN,SAAS,GACX,SAAS,GACX,CAAC,SAAS,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAChE,MAAM,GACN,SAAS,CAAC;AAIhB,KAAK,wBAAwB,CAC3B,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import type { ParamListBase } from '@react-navigation/routers';
|
|
1
2
|
import * as React from 'react';
|
|
3
|
+
import { type StaticConfig, type StaticParamList } from './StaticNavigation';
|
|
4
|
+
import type { NavigatorTypeBagBase, NavigatorTypeBagFor, TypedNavigator } from './types';
|
|
5
|
+
export type TypedNavigatorFactory<in out TypeBag extends NavigatorTypeBagBase> = {
|
|
6
|
+
<const ParamList extends ParamListBase>(): TypedNavigator<NavigatorTypeBagFor<TypeBag, ParamList>, undefined>;
|
|
7
|
+
<const Config extends StaticConfig<NavigatorTypeBagFor<TypeBag, ParamListBase>>>(config: Config): TypedNavigator<NavigatorTypeBagFor<TypeBag, StaticParamList<{
|
|
8
|
+
config: Config;
|
|
9
|
+
}>>, Config>;
|
|
10
|
+
};
|
|
2
11
|
/**
|
|
3
|
-
* Higher order
|
|
4
|
-
*
|
|
12
|
+
* Higher order function to create a navigator factory
|
|
13
|
+
* A navigator factory creates a navigator:
|
|
14
|
+
* - `Navigator` and `Screen` pairs for dynamic configuration
|
|
15
|
+
* - Static navigator object for static configuration
|
|
5
16
|
*
|
|
6
17
|
* @param Navigator The navigator component to wrap.
|
|
7
|
-
* @returns Factory method to create a
|
|
18
|
+
* @returns Factory method to create a navigator
|
|
8
19
|
*/
|
|
9
|
-
export declare function createNavigatorFactory(Navigator: React.ComponentType<any>):
|
|
20
|
+
export declare function createNavigatorFactory<TypeBag extends NavigatorTypeBagBase>(Navigator: React.ComponentType<any>): TypedNavigatorFactory<TypeBag>;
|
|
10
21
|
//# sourceMappingURL=createNavigatorFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,SAAS,oBAAoB,IAC3E;IACE,CAAC,KAAK,CAAC,SAAS,SAAS,aAAa,KAAK,cAAc,CACvD,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,EACvC,SAAS,CACV,CAAC;IACF,CACE,KAAK,CAAC,MAAM,SAAS,YAAY,CAC/B,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAC5C,EAED,MAAM,EAAE,MAAM,GACb,cAAc,CACf,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EACjE,MAAM,CACP,CAAC;CACH,CAAC;AAEJ;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,oBAAoB,EACzE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAClC,qBAAqB,CAAC,OAAO,CAAC,CAiDhC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { BaseNavigationContainer } from './BaseNavigationContainer';
|
|
2
2
|
export { createNavigationContainerRef } from './createNavigationContainerRef';
|
|
3
|
-
export { createNavigatorFactory } from './createNavigatorFactory';
|
|
3
|
+
export { createNavigatorFactory, type TypedNavigatorFactory, } from './createNavigatorFactory';
|
|
4
4
|
export { CurrentRenderContext } from './CurrentRenderContext';
|
|
5
5
|
export { findFocusedRoute } from './findFocusedRoute';
|
|
6
6
|
export { getActionFromState } from './getActionFromState';
|
|
@@ -14,7 +14,7 @@ export { NavigationMetaContext } from './NavigationMetaContext';
|
|
|
14
14
|
export { NavigationContext, NavigationProvider, NavigationRouteContext, } from './NavigationProvider';
|
|
15
15
|
export { PreventRemoveContext } from './PreventRemoveContext';
|
|
16
16
|
export { PreventRemoveProvider } from './PreventRemoveProvider';
|
|
17
|
-
export { createPathConfigForStaticNavigation, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type StaticScreenProps, } from './StaticNavigation';
|
|
17
|
+
export { createPathConfigForStaticNavigation, createScreenFactory, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type StaticScreenFactory, type StaticScreenProps, } from './StaticNavigation';
|
|
18
18
|
export { ThemeContext } from './theming/ThemeContext';
|
|
19
19
|
export { ThemeProvider } from './theming/ThemeProvider';
|
|
20
20
|
export { useTheme } from './theming/useTheme';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,mCAAmC,EACnC,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,2BAA2B,CAAC"}
|
|
@@ -104,7 +104,7 @@ export type EventMapBase = Record<string, {
|
|
|
104
104
|
data?: any;
|
|
105
105
|
canPreventDefault?: boolean | undefined;
|
|
106
106
|
}>;
|
|
107
|
-
export type EventMapCore<State extends NavigationState> = {
|
|
107
|
+
export type EventMapCore<in out State extends NavigationState> = {
|
|
108
108
|
focus: {
|
|
109
109
|
data: undefined;
|
|
110
110
|
};
|
|
@@ -146,8 +146,8 @@ export type EventArg<EventName, CanPreventDefault extends boolean | undefined =
|
|
|
146
146
|
} : {
|
|
147
147
|
readonly data: Readonly<Data>;
|
|
148
148
|
});
|
|
149
|
-
export type EventListenerCallback<EventMap extends EventMapBase, EventName extends keyof EventMap, EventCanPreventDefault extends boolean | undefined = EventMap[EventName]['canPreventDefault']> = (e: EventArg<EventName, undefined extends EventCanPreventDefault ? false : EventCanPreventDefault, EventMap[EventName]['data']>) => void;
|
|
150
|
-
export type EventConsumer<EventMap extends EventMapBase> = {
|
|
149
|
+
export type EventListenerCallback<in out EventMap extends EventMapBase, in out EventName extends keyof EventMap, in out EventCanPreventDefault extends boolean | undefined = EventMap[EventName]['canPreventDefault']> = (e: EventArg<EventName, undefined extends EventCanPreventDefault ? false : EventCanPreventDefault, EventMap[EventName]['data']>) => void;
|
|
150
|
+
export type EventConsumer<in out EventMap extends EventMapBase> = {
|
|
151
151
|
/**
|
|
152
152
|
* Subscribe to events from the parent navigator.
|
|
153
153
|
*
|
|
@@ -157,7 +157,7 @@ export type EventConsumer<EventMap extends EventMapBase> = {
|
|
|
157
157
|
addListener<EventName extends KeyOf<EventMap>>(type: EventName, callback: EventListenerCallback<EventMap, EventName>): () => void;
|
|
158
158
|
removeListener<EventName extends KeyOf<EventMap>>(type: EventName, callback: EventListenerCallback<EventMap, EventName>): void;
|
|
159
159
|
};
|
|
160
|
-
export type EventEmitter<EventMap extends EventMapBase> = {
|
|
160
|
+
export type EventEmitter<in out EventMap extends EventMapBase> = {
|
|
161
161
|
/**
|
|
162
162
|
* Emit an event to child screens.
|
|
163
163
|
*
|
|
@@ -292,7 +292,7 @@ type NavigationHelpersCommon<ParamList extends ParamListBase, State extends Navi
|
|
|
292
292
|
getState(): State;
|
|
293
293
|
} & PrivateValueStore<[ParamList, unknown, unknown]>;
|
|
294
294
|
type ParamType<ParamList extends {}, RouteName extends keyof ParamList | unknown, IsPartial extends boolean = false> = RouteName extends keyof ParamList ? ParamList[RouteName] extends undefined ? undefined : IsPartial extends true ? Partial<ParamList[RouteName]> : ParamList[RouteName] : unknown;
|
|
295
|
-
type NavigationHelpersRoute<ParamList extends {}, RouteName extends keyof ParamList = KeyOf<ParamList>> = {
|
|
295
|
+
type NavigationHelpersRoute<in out ParamList extends {}, in out RouteName extends keyof ParamList = KeyOf<ParamList>> = {
|
|
296
296
|
/**
|
|
297
297
|
* Update the param object for the route.
|
|
298
298
|
* The new params will be shallow merged with the old one.
|
|
@@ -360,8 +360,8 @@ export type NavigationProp<ParamList extends {}, RouteName extends keyof ParamLi
|
|
|
360
360
|
getParent(routeName: RouteName): NavigationProp<ParamList, RouteName, State, ScreenOptions, EventMap, ActionHelpers>;
|
|
361
361
|
getParent(): NavigationProp<ParamListBase> | undefined;
|
|
362
362
|
} & NavigationHelpersRoute<ParamList, RouteName> & ActionHelpers & EventConsumer<EventMap & EventMapCore<State>> & PrivateValueStore<[ParamList, RouteName, EventMap]>;
|
|
363
|
-
export type RouteProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = KeyOf<ParamList>> = Route<Extract<RouteName, string>, ParamList[RouteName]>;
|
|
364
|
-
export type CompositeNavigationProp<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>> =
|
|
363
|
+
export type RouteProp<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList = KeyOf<ParamList>> = Route<Extract<RouteName, string>, ParamList[RouteName]>;
|
|
364
|
+
export type CompositeNavigationProp<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>> = CompositeNavigationPropInternal<A, B,
|
|
365
365
|
/**
|
|
366
366
|
* Param list from both navigation objects needs to be combined
|
|
367
367
|
* For example, we should be able to navigate to screens in both A and B
|
|
@@ -371,25 +371,14 @@ ParamListOfNavigationProp<A> & ParamListOfNavigationProp<B>,
|
|
|
371
371
|
* The route name should refer to the route name specified in the first type
|
|
372
372
|
*/
|
|
373
373
|
RouteNameOfNavigationProp<A>,
|
|
374
|
-
/**
|
|
375
|
-
* The type of state should refer to the state specified in the first type
|
|
376
|
-
*/
|
|
377
|
-
StateOfNavigationProp<A>,
|
|
378
|
-
/**
|
|
379
|
-
* Screen options should refer to the options specified in the first type
|
|
380
|
-
*/
|
|
381
|
-
ScreenOptionsOfNavigationProp<A>,
|
|
382
374
|
/**
|
|
383
375
|
* Event map should refer to the config specified in the first type
|
|
384
376
|
*/
|
|
385
|
-
EventMapOfNavigationProp<A
|
|
377
|
+
EventMapOfNavigationProp<A>>;
|
|
378
|
+
type CompositeNavigationPropInternal<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>, ParamList extends {}, RouteName extends keyof ParamList, EventMap extends EventMapBase> = Omit<A & B, keyof NavigationProp<any, any, any, any, any>> & Omit<NavigationProp<ParamList, RouteName, StateOfNavigationProp<A>, ScreenOptionsOfNavigationProp<A>, EventMap>, 'getParent'> & {
|
|
386
379
|
getParent: A['getParent'] & B['getParent'];
|
|
387
380
|
} & // Mapped types don't preserve protected members
|
|
388
|
-
PrivateValueStore<[
|
|
389
|
-
ParamListOfNavigationProp<A> & ParamListOfNavigationProp<B>,
|
|
390
|
-
RouteNameOfNavigationProp<A>,
|
|
391
|
-
EventMapOfNavigationProp<A>
|
|
392
|
-
]>;
|
|
381
|
+
PrivateValueStore<[ParamList, RouteName, EventMap]>;
|
|
393
382
|
type ParamListOfNavigationProp<T> = T extends PrivateValueStore<[infer ParamList, any, any]> ? ParamList : never;
|
|
394
383
|
type RouteNameOfNavigationProp<T> = T extends PrivateValueStore<[any, infer RouteName, any]> ? RouteName : unknown;
|
|
395
384
|
type StateOfNavigationProp<T> = T extends {
|
|
@@ -399,23 +388,23 @@ type ScreenOptionsOfNavigationProp<T> = T extends {
|
|
|
399
388
|
setOptions: (options: Partial<infer ScreenOptions>) => void;
|
|
400
389
|
} ? ScreenOptions : {};
|
|
401
390
|
type EventMapOfNavigationProp<T> = T extends PrivateValueStore<[any, any, infer EventMap]> ? EventMap : {};
|
|
402
|
-
export type CompositeScreenProps<A extends {
|
|
391
|
+
export type CompositeScreenProps<in out A extends {
|
|
403
392
|
navigation: NavigationProp<ParamListBase, string, any, any, any>;
|
|
404
393
|
route: RouteProp<ParamListBase>;
|
|
405
|
-
}, B extends {
|
|
394
|
+
}, in out B extends {
|
|
406
395
|
navigation: NavigationProp<ParamListBase, string, any, any, any>;
|
|
407
396
|
}> = {
|
|
408
397
|
navigation: CompositeNavigationProp<A['navigation'], B['navigation']>;
|
|
409
398
|
route: A['route'];
|
|
410
399
|
};
|
|
411
|
-
export type ScreenLayoutArgs<ParamList extends ParamListBase, RouteName extends keyof ParamList, ScreenOptions extends {}, Navigation> = {
|
|
400
|
+
export type ScreenLayoutArgs<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList, in out ScreenOptions extends {}, in out Navigation> = {
|
|
412
401
|
route: RouteProp<ParamList, RouteName>;
|
|
413
402
|
options: ScreenOptions;
|
|
414
403
|
navigation: Navigation;
|
|
415
404
|
theme: Theme;
|
|
416
405
|
children: React.ReactElement;
|
|
417
406
|
};
|
|
418
|
-
export type Descriptor<ScreenOptions extends {}, Navigation extends NavigationProp<ParamListBase, any, any, any, any>, Route extends RouteProp<any, any>> = {
|
|
407
|
+
export type Descriptor<out ScreenOptions extends {}, out Navigation extends NavigationProp<ParamListBase, any, any, any, any>, out Route extends RouteProp<any, any>> = {
|
|
419
408
|
/**
|
|
420
409
|
* Render the component associated with this route.
|
|
421
410
|
*/
|
|
@@ -433,7 +422,7 @@ export type Descriptor<ScreenOptions extends {}, Navigation extends NavigationPr
|
|
|
433
422
|
*/
|
|
434
423
|
navigation: Navigation;
|
|
435
424
|
};
|
|
436
|
-
export type ScreenListeners<State extends NavigationState, EventMap extends EventMapBase> = Partial<{
|
|
425
|
+
export type ScreenListeners<in out State extends NavigationState, in out EventMap extends EventMapBase> = Partial<{
|
|
437
426
|
[EventName in keyof (EventMap & EventMapCore<State>)]: EventListenerCallback<EventMap & EventMapCore<State>, EventName>;
|
|
438
427
|
}>;
|
|
439
428
|
type ScreenComponentType<ParamList extends ParamListBase, RouteName extends keyof ParamList> = React.ComponentType<{
|
|
@@ -465,7 +454,7 @@ export type RouteConfigComponent<ParamList extends ParamListBase, RouteName exte
|
|
|
465
454
|
component?: never | undefined;
|
|
466
455
|
getComponent?: never | undefined;
|
|
467
456
|
};
|
|
468
|
-
export type RouteConfigProps<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = {
|
|
457
|
+
export type RouteConfigProps<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out Navigation> = {
|
|
469
458
|
/**
|
|
470
459
|
* Optional key for this screen. This doesn't need to be unique.
|
|
471
460
|
* If the key changes, existing screens with this name will be removed or reset.
|
|
@@ -512,7 +501,7 @@ export type RouteConfigProps<ParamList extends ParamListBase, RouteName extends
|
|
|
512
501
|
initialParams?: Partial<ParamList[RouteName]> | undefined;
|
|
513
502
|
};
|
|
514
503
|
export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = RouteConfigProps<ParamList, RouteName, State, ScreenOptions, EventMap, Navigation> & RouteConfigComponent<ParamList, RouteName>;
|
|
515
|
-
export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions extends {}, Navigation> = {
|
|
504
|
+
export type RouteGroupConfig<in out ParamList extends ParamListBase, in out ScreenOptions extends {}, in out Navigation> = {
|
|
516
505
|
/**
|
|
517
506
|
* Optional key for the screens in this group.
|
|
518
507
|
* If the key changes, all existing screens in this group will be removed or reset.
|
|
@@ -669,7 +658,7 @@ type BasicNavigationList<ParamList extends {}, ExcludedRouteNames, Parent extend
|
|
|
669
658
|
export type NavigationListForNavigator<Navigator> = Navigator extends TypedNavigator<infer Bag, any> ? Bag['NavigationList'] : Navigator extends PrivateValueStore<[any, infer NavigationList, any]> ? NavigationList : {};
|
|
670
659
|
export type NavigationListForNested<Navigator> = FlatType<NavigationListForNestedInternal<Navigator> & (Navigator extends TypedNavigator<infer Bag, any> ? BasicNavigationList<Bag['ParamList'], keyof NavigationListForNestedInternal<Navigator>, undefined> : Navigator extends PrivateValueStore<[infer ParamList, any, any]> ? ParamList extends {} ? BasicNavigationList<ParamList, keyof NavigationListForNestedInternal<Navigator>, undefined> : {} : {})>;
|
|
671
660
|
type NavigationListForNestedInternal<Navigator> = NavigationListForNavigator<Navigator> & NavigationListForStaticConfig<NavigationListForNavigator<Navigator>, Navigator>;
|
|
672
|
-
type NavigationListWithComposite<Parent extends NavigationProp<any, any, any, any, any>, NavigatorList extends Record<string, any>> = {
|
|
661
|
+
type NavigationListWithComposite<in out Parent extends NavigationProp<any, any, any, any, any>, in out NavigatorList extends Record<string, any>> = {
|
|
673
662
|
[K in keyof NavigatorList]: CompositeNavigationProp<NavigatorList[K], Parent>;
|
|
674
663
|
};
|
|
675
664
|
type NavigationListForStaticConfig<ParentList, Navigator> = Navigator extends {
|
|
@@ -723,23 +712,34 @@ export type NavigationContainerRef<ParamList extends {}> = Omit<NavigationHelper
|
|
|
723
712
|
export type NavigationContainerRefWithCurrent<ParamList extends {}> = NavigationContainerRef<ParamList> & {
|
|
724
713
|
current: NavigationContainerRef<ParamList> | null;
|
|
725
714
|
};
|
|
726
|
-
export type NavigationListBase<ParamList extends ParamListBase> = {
|
|
715
|
+
export type NavigationListBase<in out ParamList extends ParamListBase> = {
|
|
727
716
|
[RouteName in keyof ParamList]: unknown;
|
|
728
717
|
};
|
|
729
|
-
|
|
718
|
+
type ActionHelpersOf<T> = T extends Record<string, (...args: any) => void> ? T : {};
|
|
719
|
+
export interface NavigatorTypeBagBase {
|
|
730
720
|
ParamList: {};
|
|
731
721
|
State: NavigationState;
|
|
732
722
|
ScreenOptions: {};
|
|
733
723
|
EventMap: {};
|
|
734
|
-
|
|
724
|
+
ActionHelpers: {};
|
|
725
|
+
NavigationList: {
|
|
726
|
+
[RouteName in keyof this['ParamList']]: NavigationProp<this['ParamList'], RouteName, this['State'], this['ScreenOptions'], this['EventMap'], ActionHelpersOf<this['ActionHelpers']>>;
|
|
727
|
+
};
|
|
735
728
|
Navigator: React.ComponentType<any>;
|
|
729
|
+
}
|
|
730
|
+
/**
|
|
731
|
+
* Adds a proper `ParamList` to a type bag interface
|
|
732
|
+
* So it can be used as `this['ParamList']`
|
|
733
|
+
*/
|
|
734
|
+
export type NavigatorTypeBagFor<TypeBag extends NavigatorTypeBagBase, ParamList extends {}> = TypeBag & {
|
|
735
|
+
ParamList: ParamList;
|
|
736
736
|
};
|
|
737
737
|
type TypedNavigatorComponent<Bag extends NavigatorTypeBagBase> = React.ComponentType<Omit<React.ComponentProps<TypedNavigatorInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>['Navigator']>, 'children'>>;
|
|
738
738
|
type TypedNavigatorStaticDecorated<Bag extends NavigatorTypeBagBase, Config> = {
|
|
739
739
|
getComponent: () => React.ComponentType<{}>;
|
|
740
740
|
config: Config;
|
|
741
741
|
} & PrivateValueStore<[Bag['ParamList'], Bag['NavigationList'], unknown]>;
|
|
742
|
-
type TypedNavigatorStatic<Bag extends NavigatorTypeBagBase, Config> = {
|
|
742
|
+
type TypedNavigatorStatic<in out Bag extends NavigatorTypeBagBase, in out Config> = {
|
|
743
743
|
config: Config;
|
|
744
744
|
with: (Component: React.ComponentType<{
|
|
745
745
|
Navigator: TypedNavigatorComponent<Bag>;
|
|
@@ -747,7 +747,7 @@ type TypedNavigatorStatic<Bag extends NavigatorTypeBagBase, Config> = {
|
|
|
747
747
|
getComponent: () => TypedNavigatorComponent<Bag>;
|
|
748
748
|
};
|
|
749
749
|
export type TypedNavigator<Bag extends NavigatorTypeBagBase, Config = unknown> = (undefined extends Config ? TypedNavigatorInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']> : TypedNavigatorStatic<Bag, Config>) & PrivateValueStore<[Bag['ParamList'], Bag['NavigationList'], unknown]>;
|
|
750
|
-
type TypedNavigatorInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = {
|
|
750
|
+
type TypedNavigatorInternal<in out ParamList extends ParamListBase, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out NavigationList extends NavigationListBase<ParamList>, in out Navigator extends React.ComponentType<any>> = {
|
|
751
751
|
/**
|
|
752
752
|
* Navigator component which manages the child screens.
|
|
753
753
|
*/
|