@react-navigation/routers 6.1.6 → 7.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/commonjs/BaseRouter.js +1 -1
- package/lib/commonjs/BaseRouter.js.map +1 -1
- package/lib/commonjs/CommonActions.js +23 -2
- package/lib/commonjs/CommonActions.js.map +1 -1
- package/lib/commonjs/DrawerRouter.js +1 -0
- package/lib/commonjs/DrawerRouter.js.map +1 -1
- package/lib/commonjs/StackRouter.js +125 -34
- package/lib/commonjs/StackRouter.js.map +1 -1
- package/lib/commonjs/TabRouter.js +3 -10
- package/lib/commonjs/TabRouter.js.map +1 -1
- package/lib/module/BaseRouter.js +1 -1
- package/lib/module/BaseRouter.js.map +1 -1
- package/lib/module/CommonActions.js +22 -2
- package/lib/module/CommonActions.js.map +1 -1
- package/lib/module/DrawerRouter.js +1 -0
- package/lib/module/DrawerRouter.js.map +1 -1
- package/lib/module/StackRouter.js +125 -34
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/module/TabRouter.js +3 -10
- package/lib/module/TabRouter.js.map +1 -1
- package/lib/typescript/src/CommonActions.d.ts +13 -13
- package/lib/typescript/src/CommonActions.d.ts.map +1 -1
- package/lib/typescript/src/DrawerRouter.d.ts +5 -5
- package/lib/typescript/src/DrawerRouter.d.ts.map +1 -1
- package/lib/typescript/src/StackRouter.d.ts +23 -5
- package/lib/typescript/src/StackRouter.d.ts.map +1 -1
- package/lib/typescript/src/TabRouter.d.ts +5 -5
- package/lib/typescript/src/TabRouter.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +14 -14
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/BaseRouter.tsx +1 -1
- package/src/CommonActions.tsx +48 -28
- package/src/DrawerRouter.tsx +2 -1
- package/src/StackRouter.tsx +270 -147
- package/src/TabRouter.tsx +10 -17
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type * as CommonActions from './CommonActions';
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export type CommonNavigationAction = CommonActions.Action;
|
|
3
|
+
type NavigationRoute<ParamList extends ParamListBase, RouteName extends keyof ParamList> = Route<Extract<RouteName, string>, ParamList[RouteName]> & {
|
|
4
4
|
state?: NavigationState | PartialState<NavigationState>;
|
|
5
5
|
};
|
|
6
|
-
export
|
|
6
|
+
export type NavigationState<ParamList extends ParamListBase = ParamListBase> = Readonly<{
|
|
7
7
|
/**
|
|
8
8
|
* Unique key for the navigation state.
|
|
9
9
|
*/
|
|
@@ -35,20 +35,20 @@ export declare type NavigationState<ParamList extends ParamListBase = ParamListB
|
|
|
35
35
|
*/
|
|
36
36
|
stale: false;
|
|
37
37
|
}>;
|
|
38
|
-
export
|
|
38
|
+
export type InitialState = Readonly<Partial<Omit<NavigationState, 'stale' | 'routes'>> & {
|
|
39
39
|
routes: (Omit<Route<string>, 'key'> & {
|
|
40
40
|
state?: InitialState;
|
|
41
41
|
})[];
|
|
42
42
|
}>;
|
|
43
|
-
export
|
|
43
|
+
export type PartialRoute<R extends Route<string>> = Omit<R, 'key'> & {
|
|
44
44
|
key?: string;
|
|
45
45
|
state?: PartialState<NavigationState>;
|
|
46
46
|
};
|
|
47
|
-
export
|
|
47
|
+
export type PartialState<State extends NavigationState> = Partial<Omit<State, 'stale' | 'routes'>> & Readonly<{
|
|
48
48
|
stale?: true;
|
|
49
49
|
routes: PartialRoute<Route<State['routeNames'][number]>>[];
|
|
50
50
|
}>;
|
|
51
|
-
export
|
|
51
|
+
export type Route<RouteName extends string, Params extends object | undefined = object | undefined> = Readonly<{
|
|
52
52
|
/**
|
|
53
53
|
* Unique key for the route.
|
|
54
54
|
*/
|
|
@@ -73,8 +73,8 @@ export declare type Route<RouteName extends string, Params extends object | unde
|
|
|
73
73
|
*/
|
|
74
74
|
params: Readonly<Params>;
|
|
75
75
|
}>);
|
|
76
|
-
export
|
|
77
|
-
export
|
|
76
|
+
export type ParamListBase = Record<string, object | undefined>;
|
|
77
|
+
export type NavigationAction = Readonly<{
|
|
78
78
|
/**
|
|
79
79
|
* Type of the action (e.g. `NAVIGATE`)
|
|
80
80
|
*/
|
|
@@ -92,25 +92,25 @@ export declare type NavigationAction = Readonly<{
|
|
|
92
92
|
*/
|
|
93
93
|
target?: string;
|
|
94
94
|
}>;
|
|
95
|
-
export
|
|
95
|
+
export type ActionCreators<Action extends NavigationAction> = {
|
|
96
96
|
[key: string]: (...args: any) => Action;
|
|
97
97
|
};
|
|
98
|
-
export
|
|
98
|
+
export type DefaultRouterOptions<RouteName extends string = string> = {
|
|
99
99
|
/**
|
|
100
100
|
* Name of the route to focus by on initial render.
|
|
101
101
|
* If not specified, usually the first route is used.
|
|
102
102
|
*/
|
|
103
103
|
initialRouteName?: RouteName;
|
|
104
104
|
};
|
|
105
|
-
export
|
|
106
|
-
export
|
|
105
|
+
export type RouterFactory<State extends NavigationState, Action extends NavigationAction, RouterOptions extends DefaultRouterOptions> = (options: RouterOptions) => Router<State, Action>;
|
|
106
|
+
export type RouterConfigOptions = {
|
|
107
107
|
routeNames: string[];
|
|
108
108
|
routeParamList: ParamListBase;
|
|
109
109
|
routeGetIdList: Record<string, ((options: {
|
|
110
110
|
params?: Record<string, any>;
|
|
111
111
|
}) => string | undefined) | undefined>;
|
|
112
112
|
};
|
|
113
|
-
export
|
|
113
|
+
export type Router<State extends NavigationState, Action extends NavigationAction> = {
|
|
114
114
|
/**
|
|
115
115
|
* Type of the router. Should match the `type` property in state.
|
|
116
116
|
* If the type doesn't match, the state will be discarded during rehydration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/routers",
|
|
3
3
|
"description": "Routers to help build custom navigators",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "7.0.0-alpha.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"nanoid": "^3.1.23"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"del-cli": "^
|
|
42
|
+
"del-cli": "^5.0.0",
|
|
43
43
|
"react-native-builder-bob": "^0.20.3",
|
|
44
|
-
"typescript": "^4.
|
|
44
|
+
"typescript": "^4.9.4"
|
|
45
45
|
},
|
|
46
46
|
"react-native-builder-bob": {
|
|
47
47
|
"source": "src",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
]
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "ad722b882e0c40b1d1bc025d70112ddb126f265e"
|
|
61
61
|
}
|
package/src/BaseRouter.tsx
CHANGED
package/src/CommonActions.tsx
CHANGED
|
@@ -15,21 +15,22 @@ export type Action =
|
|
|
15
15
|
}
|
|
16
16
|
| {
|
|
17
17
|
type: 'NAVIGATE';
|
|
18
|
-
payload:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
payload: {
|
|
19
|
+
name: string;
|
|
20
|
+
params?: object;
|
|
21
|
+
path?: string;
|
|
22
|
+
merge?: boolean;
|
|
23
|
+
};
|
|
24
|
+
source?: string;
|
|
25
|
+
target?: string;
|
|
26
|
+
}
|
|
27
|
+
| {
|
|
28
|
+
type: 'NAVIGATE_DEPRECATED';
|
|
29
|
+
payload: {
|
|
30
|
+
name: string;
|
|
31
|
+
params?: object;
|
|
32
|
+
merge?: boolean;
|
|
33
|
+
};
|
|
33
34
|
source?: string;
|
|
34
35
|
target?: string;
|
|
35
36
|
}
|
|
@@ -50,17 +51,12 @@ export function goBack(): Action {
|
|
|
50
51
|
return { type: 'GO_BACK' };
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
export function navigate(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
params?: object;
|
|
60
|
-
path?: string;
|
|
61
|
-
merge?: boolean;
|
|
62
|
-
}
|
|
63
|
-
): Action;
|
|
54
|
+
export function navigate(options: {
|
|
55
|
+
name: string;
|
|
56
|
+
params?: object;
|
|
57
|
+
path?: string;
|
|
58
|
+
merge?: boolean;
|
|
59
|
+
}): Action;
|
|
64
60
|
// eslint-disable-next-line no-redeclare
|
|
65
61
|
export function navigate(name: string, params?: object): Action;
|
|
66
62
|
// eslint-disable-next-line no-redeclare
|
|
@@ -70,9 +66,9 @@ export function navigate(...args: any): Action {
|
|
|
70
66
|
} else {
|
|
71
67
|
const payload = args[0] || {};
|
|
72
68
|
|
|
73
|
-
if (!payload.hasOwnProperty('
|
|
69
|
+
if (!payload.hasOwnProperty('name')) {
|
|
74
70
|
throw new Error(
|
|
75
|
-
'You need to specify name
|
|
71
|
+
'You need to specify a name when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'
|
|
76
72
|
);
|
|
77
73
|
}
|
|
78
74
|
|
|
@@ -80,6 +76,30 @@ export function navigate(...args: any): Action {
|
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
78
|
|
|
79
|
+
export function navigateDeprecated(
|
|
80
|
+
...args:
|
|
81
|
+
| [name: string]
|
|
82
|
+
| [name: string, params: object | undefined]
|
|
83
|
+
| [route: { name: string; params?: object }]
|
|
84
|
+
): Action {
|
|
85
|
+
if (typeof args[0] === 'string') {
|
|
86
|
+
return {
|
|
87
|
+
type: 'NAVIGATE_DEPRECATED',
|
|
88
|
+
payload: { name: args[0], params: args[1] },
|
|
89
|
+
};
|
|
90
|
+
} else {
|
|
91
|
+
const payload = args[0] || {};
|
|
92
|
+
|
|
93
|
+
if (!payload.hasOwnProperty('name')) {
|
|
94
|
+
throw new Error(
|
|
95
|
+
'You need to specify a name when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigatelegacy for usage.'
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return { type: 'NAVIGATE_DEPRECATED', payload };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
83
103
|
export function reset(state: ResetState | undefined): Action {
|
|
84
104
|
return { type: 'RESET', payload: state };
|
|
85
105
|
}
|
package/src/DrawerRouter.tsx
CHANGED
|
@@ -220,7 +220,8 @@ export default function DrawerRouter({
|
|
|
220
220
|
return addDrawerToHistory(state);
|
|
221
221
|
|
|
222
222
|
case 'JUMP_TO':
|
|
223
|
-
case 'NAVIGATE':
|
|
223
|
+
case 'NAVIGATE':
|
|
224
|
+
case 'NAVIGATE_DEPRECATED': {
|
|
224
225
|
const result = router.getStateForAction(state, action, options);
|
|
225
226
|
|
|
226
227
|
if (result != null && result.index !== state.index) {
|