@react-navigation/core 8.0.0-alpha.10 → 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 +12 -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 +33 -17
- 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/lib/typescript/src/utilities.d.ts +7 -0
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/StaticNavigation.tsx +83 -46
- package/src/createNavigatorFactory.tsx +37 -5
- package/src/index.tsx +6 -1
- package/src/types.tsx +97 -69
- package/src/useNavigationState.tsx +5 -3
- package/src/utilities.tsx +22 -0
|
@@ -7,12 +7,23 @@ import { useRoute } from "./useRoute.js";
|
|
|
7
7
|
// If every nested route's params include `undefined`, the nested navigator
|
|
8
8
|
// itself can be omitted. Otherwise, require `NavigatorScreenParams`.
|
|
9
9
|
|
|
10
|
+
// Only infer params from linking if it's a pattern (i.e., contains ':')
|
|
11
|
+
// or if parse is present for query params.
|
|
12
|
+
// This avoids inferring non-literals like 'string' without parse.
|
|
13
|
+
|
|
10
14
|
/**
|
|
11
15
|
* Inferred params type based on both linking config and screen.
|
|
12
16
|
* - When linking is undefined: infers params from screen
|
|
13
17
|
* - When screen is a nested navigator: merges path params with navigator screen params
|
|
14
18
|
* - Otherwise: merges path params with screen component params
|
|
15
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
|
+
}
|
|
16
27
|
|
|
17
28
|
/**
|
|
18
29
|
* Props for a screen component which is rendered by a static navigator.
|
|
@@ -22,7 +33,7 @@ import { useRoute } from "./useRoute.js";
|
|
|
22
33
|
/**
|
|
23
34
|
* Infer the param list from the static navigation config.
|
|
24
35
|
*/
|
|
25
|
-
|
|
36
|
+
|
|
26
37
|
const MemoizedScreen = /*#__PURE__*/React.memo(({
|
|
27
38
|
component
|
|
28
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,7 +1,7 @@
|
|
|
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';
|
|
4
|
-
import type { AnyToUnknown,
|
|
3
|
+
import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, NavigatorTypeBagFor, PathConfig, PathConfigMap, RouteGroupConfig, ScreenListeners, Theme } from './types';
|
|
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: {
|
|
7
7
|
params: infer Params;
|
|
@@ -12,33 +12,35 @@ 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>;
|
|
28
|
-
type
|
|
29
|
-
path:
|
|
30
|
-
}
|
|
28
|
+
type ShouldInferFromLinking<Linking> = Linking extends ValidPathPattern | {
|
|
29
|
+
path: ValidPathPattern;
|
|
30
|
+
} | {
|
|
31
|
+
parse: Record<string, unknown>;
|
|
32
|
+
} ? true : false;
|
|
33
|
+
type MergeLinkingAndScreenParams<LinkingParams, ScreenParams> = undefined extends ScreenParams ? FlatType<LinkingParams> : FlatType<LinkingParams & ScreenParams>;
|
|
31
34
|
/**
|
|
32
35
|
* Inferred params type based on both linking config and screen.
|
|
33
36
|
* - When linking is undefined: infers params from screen
|
|
34
37
|
* - When screen is a nested navigator: merges path params with navigator screen params
|
|
35
38
|
* - Otherwise: merges path params with screen component params
|
|
36
39
|
*/
|
|
37
|
-
type ParamsForConfig<Linking, Screen> =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
} ? FlatType<ParamsForLinking<Linking>> & ParamsForScreen<Screen> : undefined extends ParamsForScreen<Screen> ? FlatType<ParamsForLinking<Linking>> : FlatType<ParamsForLinking<Linking> & ParamsForScreen<Screen>> : ParamsForScreen<Screen>;
|
|
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;
|
|
42
44
|
type ParamListForScreens<Screens> = {
|
|
43
45
|
[Key in KeysOf<Screens>]: Screens[Key] extends StaticScreenConfig<infer Linking, infer Screen, any, any, any, any> ? ParamsForConfig<Linking, Screen> : ParamsForScreen<Screens[Key]>;
|
|
44
46
|
};
|
|
@@ -104,6 +106,15 @@ export type StaticScreenConfigLinking = string | (StaticScreenConfigLinkingAlias
|
|
|
104
106
|
* Additional path alias that will be matched to the same screen.
|
|
105
107
|
*/
|
|
106
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;
|
|
107
118
|
}) | undefined;
|
|
108
119
|
export type StaticScreenConfigScreen = React.ComponentType<any> | StaticNavigation<any>;
|
|
109
120
|
export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation, Params = ParamsForConfig<Linking, Screen>> = {
|
|
@@ -220,7 +231,12 @@ export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen
|
|
|
220
231
|
*/
|
|
221
232
|
navigationKey?: string;
|
|
222
233
|
};
|
|
223
|
-
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>> = {
|
|
224
240
|
[RouteName in keyof ParamList]: React.ComponentType<any> | StaticNavigation<any> | StaticScreenConfig<{
|
|
225
241
|
path: string;
|
|
226
242
|
parse?: Record<string, ((value: string) => any) | StandardSchemaV1<any, any>>;
|
|
@@ -259,7 +275,7 @@ type StaticConfigGroup<ParamList extends ParamListBase, State extends Navigation
|
|
|
259
275
|
screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
|
|
260
276
|
};
|
|
261
277
|
export type StaticConfig<Bag extends NavigatorTypeBagBase> = StaticConfigInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>;
|
|
262
|
-
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'> & ({
|
|
263
279
|
/**
|
|
264
280
|
* Screens to render in the navigator and their configuration.
|
|
265
281
|
*/
|
|
@@ -286,7 +302,7 @@ type StaticConfigInternal<ParamList extends ParamListBase, State extends Navigat
|
|
|
286
302
|
* Props for a screen component which is rendered by a static navigator.
|
|
287
303
|
* Takes the route params as a generic argument.
|
|
288
304
|
*/
|
|
289
|
-
export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
|
|
305
|
+
export type StaticScreenProps<in out T extends Record<string, unknown> | undefined> = {
|
|
290
306
|
route: {
|
|
291
307
|
params: T;
|
|
292
308
|
};
|
|
@@ -297,7 +313,7 @@ export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
|
|
|
297
313
|
export type StaticParamList<T extends {
|
|
298
314
|
readonly config: any;
|
|
299
315
|
}> = FlatType<ParamListForScreens<T['config']['screens']> & ParamListForGroups<T['config']['groups']>>;
|
|
300
|
-
export type StaticNavigation<NavigatorTypeBag extends NavigatorTypeBagBase> = {
|
|
316
|
+
export type StaticNavigation<in out NavigatorTypeBag extends NavigatorTypeBagBase> = {
|
|
301
317
|
config: StaticConfig<NavigatorTypeBag>;
|
|
302
318
|
getComponent: () => React.ComponentType<{}>;
|
|
303
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,
|
|
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"}
|