@react-navigation/routers 7.5.3 → 8.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/lib/module/BaseRouter.js +19 -1
- package/lib/module/BaseRouter.js.map +1 -1
- package/lib/module/CommonActions.js +9 -24
- package/lib/module/CommonActions.js.map +1 -1
- package/lib/module/DrawerRouter.js +0 -1
- package/lib/module/DrawerRouter.js.map +1 -1
- package/lib/module/StackRouter.js +55 -72
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/module/TabRouter.js +18 -28
- package/lib/module/TabRouter.js.map +1 -1
- package/lib/typescript/src/BaseRouter.d.ts +0 -9
- package/lib/typescript/src/BaseRouter.d.ts.map +1 -1
- package/lib/typescript/src/CommonActions.d.ts +15 -15
- package/lib/typescript/src/CommonActions.d.ts.map +1 -1
- package/lib/typescript/src/DrawerRouter.d.ts.map +1 -1
- package/lib/typescript/src/StackRouter.d.ts.map +1 -1
- package/lib/typescript/src/TabRouter.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +11 -4
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/BaseRouter.tsx +27 -1
- package/src/CommonActions.tsx +16 -43
- package/src/DrawerRouter.tsx +1 -2
- package/src/StackRouter.tsx +64 -94
- package/src/TabRouter.tsx +27 -37
- package/src/types.tsx +36 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerRouter.d.ts","sourceRoot":"","sources":["../../../src/DrawerRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb;IACE,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACvE,kBAAkB,CAAC,SAAS,CAAC,EAC7B,MAAM,GAAG,SAAS,CACnB,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,CACL;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,CAC3C,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,aAAa,IAC7D,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC5B;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;CACtB,CAAC;AAEJ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAWzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,aAAwB,EACxB,GAAG,IAAI,EACR,EAAE,mBAAmB,GAAG,MAAM,CAC7B,qBAAqB,CAAC,aAAa,CAAC,EACpC,gBAAgB,GAAG,sBAAsB,CAC1C,
|
|
1
|
+
{"version":3,"file":"DrawerRouter.d.ts","sourceRoot":"","sources":["../../../src/DrawerRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb;IACE,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACvE,kBAAkB,CAAC,SAAS,CAAC,EAC7B,MAAM,GAAG,SAAS,CACnB,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,CACL;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,CAC3C,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,aAAa,IAC7D,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC5B;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;CACtB,CAAC;AAEJ,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAWzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,aAAwB,EACxB,GAAG,IAAI,EACR,EAAE,mBAAmB,GAAG,MAAM,CAC7B,qBAAqB,CAAC,aAAa,CAAC,EACpC,gBAAgB,GAAG,sBAAsB,CAC1C,CA+JA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackRouter.d.ts","sourceRoot":"","sources":["../../../src/StackRouter.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StackRouter.d.ts","sourceRoot":"","sources":["../../../src/StackRouter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../../src/TabRouter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EACf,aAAa,EAGb,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,cAAc,GACd,OAAO,GACP,SAAS,GACT,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACpE,eAAe,CAAC,SAAS,CAAC,EAC1B,SAAS,CACV,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IACvE;;OAEG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,aAAa,IAAI;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,SAAS,SAAS,MAAM,SAAS,EACtC,GAAG,IAAI,EAAE,SAAS,SAAS,OAAO,GAC9B,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GACpC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GAClD,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACnD,KAAK,GACR,IAAI,CAAC;CACT,CAAC;AAIF,eAAO,MAAM,UAAU;iBACR,MAAM,WAAW,MAAM;;;;;;;CAMrC,CAAC;AA6GF,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,YAA2B,GAC5B,EAAE,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../../src/TabRouter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EACf,aAAa,EAGb,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,cAAc,GACd,OAAO,GACP,SAAS,GACT,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,aAAa,IAAI,IAAI,CACpE,eAAe,CAAC,SAAS,CAAC,EAC1B,SAAS,CACV,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IACZ;;OAEG;IACH,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IACvE;;OAEG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,aAAa,IAAI;IAC9D;;;;;OAKG;IACH,MAAM,CAAC,SAAS,SAAS,MAAM,SAAS,EACtC,GAAG,IAAI,EAAE,SAAS,SAAS,OAAO,GAC9B,SAAS,SAAS,SAAS,CAAC,SAAS,CAAC,GACpC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GAClD,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GACnD,KAAK,GACR,IAAI,CAAC;CACT,CAAC;AAIF,eAAO,MAAM,UAAU;iBACR,MAAM,WAAW,MAAM;;;;;;;CAMrC,CAAC;AA6GF,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,YAA2B,GAC5B,EAAE,gBAAgB,+FAkVlB"}
|
|
@@ -48,7 +48,7 @@ export type PartialState<State extends NavigationState> = Partial<Omit<State, 's
|
|
|
48
48
|
stale?: true;
|
|
49
49
|
routes: PartialRoute<Route<State['routeNames'][number]>>[];
|
|
50
50
|
}>;
|
|
51
|
-
export type Route<RouteName extends string, Params extends object | undefined = object | undefined> = Readonly<{
|
|
51
|
+
export type Route<RouteName extends string, Params extends unknown | object | undefined = object | undefined> = Readonly<{
|
|
52
52
|
/**
|
|
53
53
|
* Unique key for the route.
|
|
54
54
|
*/
|
|
@@ -62,17 +62,24 @@ export type Route<RouteName extends string, Params extends object | undefined =
|
|
|
62
62
|
* Usually present when the screen was opened from a deep link.
|
|
63
63
|
*/
|
|
64
64
|
path?: string;
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* History of param changes for this route.
|
|
67
|
+
*/
|
|
68
|
+
history?: {
|
|
69
|
+
type: 'params';
|
|
70
|
+
params: object;
|
|
71
|
+
}[];
|
|
72
|
+
} & Readonly<undefined extends Params ? {
|
|
66
73
|
/**
|
|
67
74
|
* Params for this route
|
|
68
75
|
*/
|
|
69
76
|
params?: Readonly<Params>;
|
|
70
|
-
}
|
|
77
|
+
} : {
|
|
71
78
|
/**
|
|
72
79
|
* Params for this route
|
|
73
80
|
*/
|
|
74
81
|
params: Readonly<Params>;
|
|
75
|
-
}
|
|
82
|
+
}>>;
|
|
76
83
|
export type ParamListBase = Record<string, object | undefined>;
|
|
77
84
|
export type NavigationAction = Readonly<{
|
|
78
85
|
/**
|
|
@@ -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,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC;AAE1D,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,IAC/B,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,GAAG,aAAa,IACzE,QAAQ,CAAC;IACP;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/C;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;IACtD;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEL,MAAM,MAAM,YAAY,GAAG,QAAQ,CACjC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG;IACnD,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC,EAAE,CAAC;CACnE,CACF,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,eAAe,IAAI,OAAO,CAC/D,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAChC,GACC,QAAQ,CAAC;IACP,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5D,CAAC,CAAC;AAEL,MAAM,MAAM,KAAK,CACf,SAAS,SAAS,MAAM,EACxB,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,
|
|
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": "8.0.0-alpha.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@jest/globals": "^30.0.0",
|
|
48
48
|
"del-cli": "^6.0.0",
|
|
49
|
-
"react-native-builder-bob": "^0.40.
|
|
49
|
+
"react-native-builder-bob": "^0.40.12",
|
|
50
50
|
"typescript": "^5.9.2"
|
|
51
51
|
},
|
|
52
52
|
"react-native-builder-bob": {
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
]
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "46daae524ec6a59737147ed506222dd09a5b6e39"
|
|
71
71
|
}
|
package/src/BaseRouter.tsx
CHANGED
|
@@ -42,6 +42,32 @@ export const BaseRouter = {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
case 'PUSH_PARAMS': {
|
|
46
|
+
const index = action.source
|
|
47
|
+
? state.routes.findIndex((r) => r.key === action.source)
|
|
48
|
+
: state.index;
|
|
49
|
+
|
|
50
|
+
if (index === -1) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
...state,
|
|
56
|
+
routes: state.routes.map((r, i) =>
|
|
57
|
+
i === index
|
|
58
|
+
? {
|
|
59
|
+
...r,
|
|
60
|
+
params: action.payload.params,
|
|
61
|
+
history: [
|
|
62
|
+
...(r.history ?? []),
|
|
63
|
+
{ type: 'params', params: r.params },
|
|
64
|
+
],
|
|
65
|
+
}
|
|
66
|
+
: r
|
|
67
|
+
),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
45
71
|
case 'RESET': {
|
|
46
72
|
const nextState = action.payload as State | PartialState<State>;
|
|
47
73
|
|
|
@@ -81,6 +107,6 @@ export const BaseRouter = {
|
|
|
81
107
|
},
|
|
82
108
|
|
|
83
109
|
shouldActionChangeFocus(action: CommonNavigationAction) {
|
|
84
|
-
return action.type === 'NAVIGATE'
|
|
110
|
+
return action.type === 'NAVIGATE';
|
|
85
111
|
},
|
|
86
112
|
};
|
package/src/CommonActions.tsx
CHANGED
|
@@ -26,17 +26,6 @@ type NavigateAction = {
|
|
|
26
26
|
target?: string;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
type NavigateDeprecatedAction = {
|
|
30
|
-
type: 'NAVIGATE_DEPRECATED';
|
|
31
|
-
payload: {
|
|
32
|
-
name: string;
|
|
33
|
-
params?: object;
|
|
34
|
-
merge?: boolean;
|
|
35
|
-
};
|
|
36
|
-
source?: string;
|
|
37
|
-
target?: string;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
29
|
type ResetAction = {
|
|
41
30
|
type: 'RESET';
|
|
42
31
|
payload: ResetState | undefined;
|
|
@@ -58,6 +47,13 @@ type ReplaceParamsAction = {
|
|
|
58
47
|
target?: string;
|
|
59
48
|
};
|
|
60
49
|
|
|
50
|
+
type PushParamsAction = {
|
|
51
|
+
type: 'PUSH_PARAMS';
|
|
52
|
+
payload: { params?: object };
|
|
53
|
+
source?: string;
|
|
54
|
+
target?: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
61
57
|
type PreloadAction = {
|
|
62
58
|
type: 'PRELOAD';
|
|
63
59
|
payload: {
|
|
@@ -71,10 +67,10 @@ type PreloadAction = {
|
|
|
71
67
|
export type Action =
|
|
72
68
|
| GoBackAction
|
|
73
69
|
| NavigateAction
|
|
74
|
-
| NavigateDeprecatedAction
|
|
75
70
|
| ResetAction
|
|
76
71
|
| SetParamsAction
|
|
77
72
|
| ReplaceParamsAction
|
|
73
|
+
| PushParamsAction
|
|
78
74
|
| PreloadAction;
|
|
79
75
|
|
|
80
76
|
export function goBack(): Action {
|
|
@@ -102,18 +98,12 @@ export function navigate(...args: any): Action {
|
|
|
102
98
|
if (typeof args[0] === 'string') {
|
|
103
99
|
const [name, params, options] = args;
|
|
104
100
|
|
|
105
|
-
if (typeof options === 'boolean') {
|
|
106
|
-
console.warn(
|
|
107
|
-
`Passing a boolean as the third argument to 'navigate' is deprecated. Pass '{ merge: true }' instead.`
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
101
|
return {
|
|
112
102
|
type: 'NAVIGATE',
|
|
113
103
|
payload: {
|
|
114
104
|
name,
|
|
115
105
|
params,
|
|
116
|
-
merge:
|
|
106
|
+
merge: options?.merge,
|
|
117
107
|
pop: options?.pop,
|
|
118
108
|
},
|
|
119
109
|
};
|
|
@@ -130,30 +120,6 @@ export function navigate(...args: any): Action {
|
|
|
130
120
|
}
|
|
131
121
|
}
|
|
132
122
|
|
|
133
|
-
export function navigateDeprecated(
|
|
134
|
-
...args:
|
|
135
|
-
| [name: string]
|
|
136
|
-
| [name: string, params: object | undefined]
|
|
137
|
-
| [options: { name: string; params?: object }]
|
|
138
|
-
): Action {
|
|
139
|
-
if (typeof args[0] === 'string') {
|
|
140
|
-
return {
|
|
141
|
-
type: 'NAVIGATE_DEPRECATED',
|
|
142
|
-
payload: { name: args[0], params: args[1] },
|
|
143
|
-
};
|
|
144
|
-
} else {
|
|
145
|
-
const payload = args[0] || {};
|
|
146
|
-
|
|
147
|
-
if (!('name' in payload)) {
|
|
148
|
-
throw new Error(
|
|
149
|
-
'You need to specify a name when calling navigateDeprecated with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigatelegacy for usage.'
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return { type: 'NAVIGATE_DEPRECATED', payload };
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
123
|
export function reset(state: ResetState | undefined) {
|
|
158
124
|
return { type: 'RESET', payload: state } as const satisfies ResetAction;
|
|
159
125
|
}
|
|
@@ -172,6 +138,13 @@ export function replaceParams(params: object) {
|
|
|
172
138
|
} as const satisfies ReplaceParamsAction;
|
|
173
139
|
}
|
|
174
140
|
|
|
141
|
+
export function pushParams(params: object) {
|
|
142
|
+
return {
|
|
143
|
+
type: 'PUSH_PARAMS',
|
|
144
|
+
payload: { params },
|
|
145
|
+
} as const satisfies PushParamsAction;
|
|
146
|
+
}
|
|
147
|
+
|
|
175
148
|
export function preload(name: string, params?: object) {
|
|
176
149
|
return {
|
|
177
150
|
type: 'PRELOAD',
|
package/src/DrawerRouter.tsx
CHANGED
|
@@ -221,8 +221,7 @@ export function DrawerRouter({
|
|
|
221
221
|
return addDrawerToHistory(state);
|
|
222
222
|
|
|
223
223
|
case 'JUMP_TO':
|
|
224
|
-
case 'NAVIGATE':
|
|
225
|
-
case 'NAVIGATE_DEPRECATED': {
|
|
224
|
+
case 'NAVIGATE': {
|
|
226
225
|
const result = router.getStateForAction(state, action, options);
|
|
227
226
|
|
|
228
227
|
if (result != null && result.index !== state.index) {
|
package/src/StackRouter.tsx
CHANGED
|
@@ -149,18 +149,12 @@ export const StackActions = {
|
|
|
149
149
|
return { type: 'POP_TO_TOP' } as const satisfies StackActionType;
|
|
150
150
|
},
|
|
151
151
|
popTo(name: string, params?: object, options?: { merge?: boolean }) {
|
|
152
|
-
if (typeof options === 'boolean') {
|
|
153
|
-
console.warn(
|
|
154
|
-
`Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead.`
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
152
|
return {
|
|
159
153
|
type: 'POP_TO',
|
|
160
154
|
payload: {
|
|
161
155
|
name,
|
|
162
156
|
params,
|
|
163
|
-
merge:
|
|
157
|
+
merge: options?.merge,
|
|
164
158
|
},
|
|
165
159
|
} as const satisfies StackActionType;
|
|
166
160
|
},
|
|
@@ -462,116 +456,92 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
462
456
|
};
|
|
463
457
|
}
|
|
464
458
|
|
|
465
|
-
case '
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
459
|
+
case 'POP': {
|
|
460
|
+
let currentIndex =
|
|
461
|
+
action.target === state.key && action.source
|
|
462
|
+
? state.routes.findIndex((r) => r.key === action.source)
|
|
463
|
+
: state.index;
|
|
469
464
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
465
|
+
let route = state.routes[currentIndex];
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* When popping entries,
|
|
469
|
+
* - Pop entries from route.history
|
|
470
|
+
* - Pop routes from state.routes
|
|
471
|
+
*
|
|
472
|
+
* Repeat until:
|
|
473
|
+
* - We have popped the amount of items in count
|
|
474
|
+
* - There are no more items to pop
|
|
475
|
+
*/
|
|
476
|
+
if (route.history?.length || currentIndex > 0) {
|
|
477
|
+
let count = action.payload.count;
|
|
478
|
+
let routes = state.routes;
|
|
479
|
+
|
|
480
|
+
while (count > 0 && (route.history?.length || currentIndex > 0)) {
|
|
481
|
+
if (route.history?.length) {
|
|
482
|
+
routes = [...routes];
|
|
483
|
+
|
|
484
|
+
const end = Math.min(count, route.history.length);
|
|
485
|
+
const last = route.history.at(-end);
|
|
486
|
+
const history = route.history.slice(0, -end);
|
|
487
|
+
const removed = route.history.length - history.length;
|
|
488
|
+
|
|
489
|
+
count = count - removed;
|
|
490
|
+
|
|
491
|
+
routes[currentIndex] = {
|
|
492
|
+
...route,
|
|
493
|
+
params: last?.type === 'params' ? last.params : route.params,
|
|
494
|
+
history,
|
|
495
|
+
};
|
|
496
|
+
}
|
|
479
497
|
|
|
480
|
-
|
|
481
|
-
|
|
498
|
+
if (currentIndex > 0 && count > 0) {
|
|
499
|
+
const length = routes.length;
|
|
500
|
+
const end = Math.max(currentIndex - count + 1, 1);
|
|
482
501
|
|
|
483
|
-
|
|
484
|
-
|
|
502
|
+
routes = routes
|
|
503
|
+
.slice(0, end)
|
|
504
|
+
.concat(routes.slice(currentIndex + 1));
|
|
485
505
|
|
|
486
|
-
|
|
487
|
-
index = state.routes.findIndex(
|
|
488
|
-
(route) =>
|
|
489
|
-
route.name === action.payload.name &&
|
|
490
|
-
id === getId?.({ params: route.params })
|
|
491
|
-
);
|
|
492
|
-
} else if (state.routes[state.index].name === action.payload.name) {
|
|
493
|
-
index = state.index;
|
|
494
|
-
} else {
|
|
495
|
-
index = state.routes.findLastIndex(
|
|
496
|
-
(route) => route.name === action.payload.name
|
|
497
|
-
);
|
|
498
|
-
}
|
|
506
|
+
const removed = length - routes.length;
|
|
499
507
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
508
|
+
count = count - removed;
|
|
509
|
+
currentIndex = routes.length - 1;
|
|
510
|
+
route = routes[currentIndex];
|
|
511
|
+
}
|
|
512
|
+
}
|
|
505
513
|
|
|
506
514
|
return {
|
|
507
515
|
...state,
|
|
508
|
-
routes,
|
|
509
516
|
index: routes.length - 1,
|
|
517
|
+
routes,
|
|
510
518
|
};
|
|
511
519
|
}
|
|
512
520
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
let params;
|
|
516
|
-
|
|
517
|
-
if (action.payload.merge) {
|
|
518
|
-
params =
|
|
519
|
-
action.payload.params !== undefined ||
|
|
520
|
-
routeParamList[route.name] !== undefined
|
|
521
|
-
? {
|
|
522
|
-
...routeParamList[route.name],
|
|
523
|
-
...route.params,
|
|
524
|
-
...action.payload.params,
|
|
525
|
-
}
|
|
526
|
-
: route.params;
|
|
527
|
-
} else {
|
|
528
|
-
params = createParamsFromAction({ action, routeParamList });
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
return {
|
|
532
|
-
...state,
|
|
533
|
-
index,
|
|
534
|
-
routes: [
|
|
535
|
-
...state.routes.slice(0, index),
|
|
536
|
-
params !== route.params
|
|
537
|
-
? { ...route, params }
|
|
538
|
-
: state.routes[index],
|
|
539
|
-
],
|
|
540
|
-
};
|
|
521
|
+
return null;
|
|
541
522
|
}
|
|
542
523
|
|
|
543
|
-
case '
|
|
544
|
-
|
|
545
|
-
action.target === state.key && action.source
|
|
546
|
-
? state.routes.findIndex((r) => r.key === action.source)
|
|
547
|
-
: state.index;
|
|
524
|
+
case 'POP_TO_TOP': {
|
|
525
|
+
let route = state.routes[0];
|
|
548
526
|
|
|
549
|
-
if (
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
527
|
+
if (state.index > 0 || route.history?.length) {
|
|
528
|
+
if (route.history?.length) {
|
|
529
|
+
route = {
|
|
530
|
+
...route,
|
|
531
|
+
history: undefined,
|
|
532
|
+
};
|
|
533
|
+
}
|
|
554
534
|
|
|
555
535
|
return {
|
|
556
536
|
...state,
|
|
557
|
-
index:
|
|
558
|
-
routes,
|
|
537
|
+
index: 0,
|
|
538
|
+
routes: [route],
|
|
559
539
|
};
|
|
560
540
|
}
|
|
561
541
|
|
|
562
542
|
return null;
|
|
563
543
|
}
|
|
564
544
|
|
|
565
|
-
case 'POP_TO_TOP':
|
|
566
|
-
return router.getStateForAction(
|
|
567
|
-
state,
|
|
568
|
-
{
|
|
569
|
-
type: 'POP',
|
|
570
|
-
payload: { count: state.routes.length - 1 },
|
|
571
|
-
},
|
|
572
|
-
options
|
|
573
|
-
);
|
|
574
|
-
|
|
575
545
|
case 'POP_TO': {
|
|
576
546
|
const currentIndex =
|
|
577
547
|
action.target === state.key && action.source
|
|
@@ -665,7 +635,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
665
635
|
}
|
|
666
636
|
|
|
667
637
|
case 'GO_BACK':
|
|
668
|
-
if (state.index > 0) {
|
|
638
|
+
if (state.index > 0 || state.routes[state.index].history?.length) {
|
|
669
639
|
return router.getStateForAction(
|
|
670
640
|
state,
|
|
671
641
|
{
|
package/src/TabRouter.tsx
CHANGED
|
@@ -352,8 +352,7 @@ export function TabRouter({
|
|
|
352
352
|
getStateForAction(state, action, { routeParamList, routeGetIdList }) {
|
|
353
353
|
switch (action.type) {
|
|
354
354
|
case 'JUMP_TO':
|
|
355
|
-
case 'NAVIGATE':
|
|
356
|
-
case 'NAVIGATE_DEPRECATED': {
|
|
355
|
+
case 'NAVIGATE': {
|
|
357
356
|
const index = state.routes.findIndex(
|
|
358
357
|
(route) => route.name === action.payload.name
|
|
359
358
|
);
|
|
@@ -383,8 +382,7 @@ export function TabRouter({
|
|
|
383
382
|
let params;
|
|
384
383
|
|
|
385
384
|
if (
|
|
386
|
-
|
|
387
|
-
action.type === 'NAVIGATE_DEPRECATED') &&
|
|
385
|
+
action.type === 'NAVIGATE' &&
|
|
388
386
|
action.payload.merge &&
|
|
389
387
|
currentId === nextId
|
|
390
388
|
) {
|
|
@@ -424,42 +422,34 @@ export function TabRouter({
|
|
|
424
422
|
};
|
|
425
423
|
}
|
|
426
424
|
|
|
427
|
-
case '
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
const index = nextState.index;
|
|
433
|
-
|
|
434
|
-
if (index != null) {
|
|
435
|
-
const focusedRoute = nextState.routes[index];
|
|
436
|
-
const historyItemIndex = state.history.findLastIndex(
|
|
437
|
-
(item) => item.key === focusedRoute.key
|
|
438
|
-
);
|
|
439
|
-
|
|
440
|
-
let updatedHistory = state.history;
|
|
441
|
-
|
|
442
|
-
if (historyItemIndex !== -1) {
|
|
443
|
-
updatedHistory = [...state.history];
|
|
444
|
-
updatedHistory[historyItemIndex] = {
|
|
445
|
-
...updatedHistory[historyItemIndex],
|
|
446
|
-
params: focusedRoute.params,
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
return {
|
|
451
|
-
...nextState,
|
|
452
|
-
history: updatedHistory,
|
|
453
|
-
};
|
|
454
|
-
}
|
|
425
|
+
case 'GO_BACK': {
|
|
426
|
+
const focusedRoute = state.routes[state.index];
|
|
427
|
+
|
|
428
|
+
if (state.history.length === 1 && !focusedRoute.history?.length) {
|
|
429
|
+
return null;
|
|
455
430
|
}
|
|
456
431
|
|
|
457
|
-
|
|
458
|
-
}
|
|
432
|
+
const lastHistoryItem = state.history[state.history.length - 1];
|
|
459
433
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
434
|
+
if (
|
|
435
|
+
lastHistoryItem?.type === 'route' &&
|
|
436
|
+
focusedRoute.history?.length
|
|
437
|
+
) {
|
|
438
|
+
const routes = [...state.routes];
|
|
439
|
+
const history = [...focusedRoute.history];
|
|
440
|
+
const last = history.pop();
|
|
441
|
+
|
|
442
|
+
routes[state.index] = {
|
|
443
|
+
...focusedRoute,
|
|
444
|
+
params:
|
|
445
|
+
last?.type === 'params' ? last.params : focusedRoute.params,
|
|
446
|
+
history,
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
return {
|
|
450
|
+
...state,
|
|
451
|
+
routes,
|
|
452
|
+
};
|
|
463
453
|
}
|
|
464
454
|
|
|
465
455
|
const previousHistoryItem = state.history[state.history.length - 2];
|
package/src/types.tsx
CHANGED
|
@@ -64,35 +64,42 @@ export type PartialState<State extends NavigationState> = Partial<
|
|
|
64
64
|
|
|
65
65
|
export type Route<
|
|
66
66
|
RouteName extends string,
|
|
67
|
-
Params extends object | undefined = object | undefined,
|
|
68
|
-
> = Readonly<
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
67
|
+
Params extends unknown | object | undefined = object | undefined,
|
|
68
|
+
> = Readonly<
|
|
69
|
+
{
|
|
70
|
+
/**
|
|
71
|
+
* Unique key for the route.
|
|
72
|
+
*/
|
|
73
|
+
key: string;
|
|
74
|
+
/**
|
|
75
|
+
* User-provided name for the route.
|
|
76
|
+
*/
|
|
77
|
+
name: RouteName;
|
|
78
|
+
/**
|
|
79
|
+
* Path associated with the route.
|
|
80
|
+
* Usually present when the screen was opened from a deep link.
|
|
81
|
+
*/
|
|
82
|
+
path?: string;
|
|
83
|
+
/**
|
|
84
|
+
* History of param changes for this route.
|
|
85
|
+
*/
|
|
86
|
+
history?: { type: 'params'; params: object }[];
|
|
87
|
+
} & Readonly<
|
|
88
|
+
undefined extends Params
|
|
89
|
+
? {
|
|
90
|
+
/**
|
|
91
|
+
* Params for this route
|
|
92
|
+
*/
|
|
93
|
+
params?: Readonly<Params>;
|
|
94
|
+
}
|
|
95
|
+
: {
|
|
96
|
+
/**
|
|
97
|
+
* Params for this route
|
|
98
|
+
*/
|
|
99
|
+
params: Readonly<Params>;
|
|
100
|
+
}
|
|
101
|
+
>
|
|
102
|
+
>;
|
|
96
103
|
|
|
97
104
|
export type ParamListBase = Record<string, object | undefined>;
|
|
98
105
|
|