@react-navigation/routers 7.6.0 → 7.6.2
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 +50 -45
- package/lib/module/BaseRouter.js.map +1 -1
- package/lib/module/DrawerRouter.js +15 -14
- package/lib/module/DrawerRouter.js.map +1 -1
- package/lib/module/StackRouter.js +1 -1
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/module/SwitchRouter.js +352 -0
- package/lib/module/SwitchRouter.js.map +1 -0
- package/lib/module/TabRouter.js +14 -300
- package/lib/module/TabRouter.js.map +1 -1
- package/lib/typescript/src/BaseRouter.d.ts +3 -1
- package/lib/typescript/src/BaseRouter.d.ts.map +1 -1
- package/lib/typescript/src/DrawerRouter.d.ts +1 -0
- package/lib/typescript/src/DrawerRouter.d.ts.map +1 -1
- package/lib/typescript/src/StackRouter.d.ts.map +1 -1
- package/lib/typescript/src/SwitchRouter.d.ts +78 -0
- package/lib/typescript/src/SwitchRouter.d.ts.map +1 -0
- package/lib/typescript/src/TabRouter.d.ts +4 -24
- package/lib/typescript/src/TabRouter.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/BaseRouter.tsx +74 -59
- package/src/DrawerRouter.tsx +21 -19
- package/src/StackRouter.tsx +2 -1
- package/src/SwitchRouter.tsx +580 -0
- package/src/TabRouter.tsx +24 -473
package/lib/module/BaseRouter.js
CHANGED
|
@@ -1,56 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { nanoid } from 'nanoid/non-secure';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
function getStateForAction(state, action) {
|
|
5
|
+
switch (action.type) {
|
|
6
|
+
case 'SET_PARAMS':
|
|
7
|
+
case 'REPLACE_PARAMS':
|
|
8
|
+
{
|
|
9
|
+
const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
|
|
10
|
+
if (index === -1) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
...state,
|
|
15
|
+
routes: state.routes.map((r, i) => i === index ? {
|
|
16
|
+
...r,
|
|
17
|
+
params: action.type === 'REPLACE_PARAMS' ? action.payload.params : {
|
|
18
|
+
...r.params,
|
|
19
|
+
...action.payload.params
|
|
20
|
+
}
|
|
21
|
+
} : r)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
case 'RESET':
|
|
25
|
+
{
|
|
26
|
+
const nextState = action.payload;
|
|
27
|
+
if (nextState == null) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const routeNamesSet = new Set(state.routeNames);
|
|
31
|
+
if (nextState.routes.length === 0 || nextState.routes.some(route => !routeNamesSet.has(route.name))) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
if (nextState.stale === false) {
|
|
35
|
+
if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !routeNamesSet.has(name)) || !Number.isInteger(nextState.index) || nextState.index < 0 || nextState.index >= nextState.routes.length) {
|
|
16
36
|
return null;
|
|
17
37
|
}
|
|
18
38
|
return {
|
|
19
|
-
...
|
|
20
|
-
routes:
|
|
21
|
-
...
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
...action.payload.params
|
|
25
|
-
}
|
|
26
|
-
} : r)
|
|
39
|
+
...nextState,
|
|
40
|
+
routes: nextState.routes.map(route => 'key' in route && route.key ? route : {
|
|
41
|
+
...route,
|
|
42
|
+
key: `${route.name}-${nanoid()}`
|
|
43
|
+
})
|
|
27
44
|
};
|
|
28
45
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
routes: nextState.routes.map(route => route.key ? route : {
|
|
43
|
-
...route,
|
|
44
|
-
key: `${route.name}-${nanoid()}`
|
|
45
|
-
})
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
return nextState;
|
|
49
|
-
}
|
|
50
|
-
default:
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
},
|
|
46
|
+
return nextState;
|
|
47
|
+
}
|
|
48
|
+
default:
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Base router object that can be used when writing custom routers.
|
|
55
|
+
* This provides few helper methods to handle common actions such as `RESET`.
|
|
56
|
+
*/
|
|
57
|
+
export const BaseRouter = {
|
|
58
|
+
getStateForAction,
|
|
54
59
|
shouldActionChangeFocus(action) {
|
|
55
60
|
return action.type === 'NAVIGATE' || action.type === 'NAVIGATE_DEPRECATED';
|
|
56
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","
|
|
1
|
+
{"version":3,"names":["nanoid","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","routeNamesSet","Set","routeNames","length","some","route","has","name","stale","Number","isInteger","BaseRouter","shouldActionChangeFocus"],"sourceRoot":"../../src","sources":["BaseRouter.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAY1C,SAASC,iBAAiBA,CACxBC,KAAsB,EACtBC,MAA8B,EAC9B;EACA,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,YAAY;IACjB,KAAK,gBAAgB;MAAE;QACrB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAM,GACvBJ,KAAK,CAACK,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKP,MAAM,CAACG,MAAM,CAAC,GACtDJ,KAAK,CAACG,KAAK;QAEf,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB,OAAO,IAAI;QACb;QAEA,OAAO;UACL,GAAGH,KAAK;UACRK,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACI,GAAG,CAAC,CAACF,CAAC,EAAEG,CAAC,KAC5BA,CAAC,KAAKP,KAAK,GACP;YACE,GAAGI,CAAC;YACJI,MAAM,EACJV,MAAM,CAACC,IAAI,KAAK,gBAAgB,GAC5BD,MAAM,CAACW,OAAO,CAACD,MAAM,GACrB;cAAE,GAAGJ,CAAC,CAACI,MAAM;cAAE,GAAGV,MAAM,CAACW,OAAO,CAACD;YAAO;UAChD,CAAC,GACDJ,CACN;QACF,CAAC;MACH;IAEA,KAAK,OAAO;MAAE;QACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAO;QAEhC,IAAIC,SAAS,IAAI,IAAI,EAAE;UACrB,OAAO,IAAI;QACb;QAEA,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAACf,KAAK,CAACgB,UAAU,CAAC;QAE/C,IACEH,SAAS,CAACR,MAAM,CAACY,MAAM,KAAK,CAAC,IAC7BJ,SAAS,CAACR,MAAM,CAACa,IAAI,CAClBC,KAAuB,IAAK,CAACL,aAAa,CAACM,GAAG,CAACD,KAAK,CAACE,IAAI,CAC5D,CAAC,EACD;UACA,OAAO,IAAI;QACb;QAEA,IAAIR,SAAS,CAACS,KAAK,KAAK,KAAK,EAAE;UAC7B,IACEtB,KAAK,CAACgB,UAAU,CAACC,MAAM,KAAKJ,SAAS,CAACG,UAAU,CAACC,MAAM,IACvDJ,SAAS,CAACG,UAAU,CAACE,IAAI,CAAEG,IAAI,IAAK,CAACP,aAAa,CAACM,GAAG,CAACC,IAAI,CAAC,CAAC,IAC7D,CAACE,MAAM,CAACC,SAAS,CAACX,SAAS,CAACV,KAAK,CAAC,IAClCU,SAAS,CAACV,KAAK,GAAG,CAAC,IACnBU,SAAS,CAACV,KAAK,IAAIU,SAAS,CAACR,MAAM,CAACY,MAAM,EAC1C;YACA,OAAO,IAAI;UACb;UAEA,OAAO;YACL,GAAGJ,SAAS;YACZR,MAAM,EAAEQ,SAAS,CAACR,MAAM,CAACI,GAAG,CAAEU,KAAK,IACjC,KAAK,IAAIA,KAAK,IAAIA,KAAK,CAACX,GAAG,GACvBW,KAAK,GACL;cAAE,GAAGA,KAAK;cAAEX,GAAG,EAAE,GAAGW,KAAK,CAACE,IAAI,IAAIvB,MAAM,CAAC,CAAC;YAAG,CACnD;UACF,CAAC;QACH;QAEA,OAAOe,SAAS;MAClB;IAEA;MACE,OAAO,IAAI;EACf;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMY,UAAU,GAAG;EACxB1B,iBAAiB;EAEjB2B,uBAAuBA,CAACzB,MAA8B,EAAE;IACtD,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU,IAAID,MAAM,CAACC,IAAI,KAAK,qBAAqB;EAC5E;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { nanoid } from 'nanoid/non-secure';
|
|
4
|
-
import {
|
|
4
|
+
import { SwitchRouter } from "./SwitchRouter.js";
|
|
5
|
+
import { TabActions } from "./TabRouter.js";
|
|
5
6
|
export const DrawerActions = {
|
|
6
7
|
...TabActions,
|
|
7
8
|
openDrawer() {
|
|
@@ -24,7 +25,7 @@ export function DrawerRouter({
|
|
|
24
25
|
defaultStatus = 'closed',
|
|
25
26
|
...rest
|
|
26
27
|
}) {
|
|
27
|
-
const router =
|
|
28
|
+
const router = SwitchRouter(rest);
|
|
28
29
|
const isDrawerInHistory = state => Boolean(state.history?.some(it => it.type === 'drawer'));
|
|
29
30
|
const addDrawerToHistory = state => {
|
|
30
31
|
if (isDrawerInHistory(state)) {
|
|
@@ -88,22 +89,22 @@ export function DrawerRouter({
|
|
|
88
89
|
if (partialState.stale === false) {
|
|
89
90
|
return partialState;
|
|
90
91
|
}
|
|
91
|
-
let state =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
let state = {
|
|
93
|
+
...router.getRehydratedState(partialState, {
|
|
94
|
+
routeNames,
|
|
95
|
+
routeParamList,
|
|
96
|
+
routeGetIdList
|
|
97
|
+
}),
|
|
98
|
+
default: defaultStatus,
|
|
99
|
+
type: 'drawer',
|
|
100
|
+
key: `drawer-${nanoid()}`
|
|
101
|
+
};
|
|
96
102
|
if (isDrawerInHistory(partialState)) {
|
|
97
103
|
// Re-sync the drawer entry in history to correct it if it was wrong
|
|
98
104
|
state = removeDrawerFromHistory(state);
|
|
99
105
|
state = addDrawerToHistory(state);
|
|
100
106
|
}
|
|
101
|
-
return
|
|
102
|
-
...state,
|
|
103
|
-
default: defaultStatus,
|
|
104
|
-
type: 'drawer',
|
|
105
|
-
key: `drawer-${nanoid()}`
|
|
106
|
-
};
|
|
107
|
+
return state;
|
|
107
108
|
},
|
|
108
109
|
getStateForRouteFocus(state, key) {
|
|
109
110
|
const result = router.getStateForRouteFocus(state, key);
|
|
@@ -125,7 +126,7 @@ export function DrawerRouter({
|
|
|
125
126
|
case 'NAVIGATE_DEPRECATED':
|
|
126
127
|
{
|
|
127
128
|
const result = router.getStateForAction(state, action, options);
|
|
128
|
-
if (result != null && result.index !== state.index) {
|
|
129
|
+
if (result != null && result.stale === false && result.index !== state.index) {
|
|
129
130
|
return closeDrawer(result);
|
|
130
131
|
}
|
|
131
132
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","
|
|
1
|
+
{"version":3,"names":["nanoid","SwitchRouter","TabActions","DrawerActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sourceRoot":"../../src","sources":["DrawerRouter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -98,7 +98,7 @@ export function StackRouter(options) {
|
|
|
98
98
|
} : route.params
|
|
99
99
|
})) ?? [];
|
|
100
100
|
if (routes.length === 0) {
|
|
101
|
-
const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];
|
|
101
|
+
const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
|
|
102
102
|
routes.push({
|
|
103
103
|
key: `${initialRouteName}-${nanoid()}`,
|
|
104
104
|
name: initialRouteName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","BaseRouter","createParamsFromAction","createRouteFromAction","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","popTo","options","console","warn","merge","StackRouter","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","preloadedRoutes","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","currentIndex","target","source","getId","routeGetIdList","id","find","i","findLast","currentRoute","path","findLastIndex","max","concat","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["nanoid","BaseRouter","createParamsFromAction","createRouteFromAction","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","popTo","options","console","warn","merge","StackRouter","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","preloadedRoutes","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","currentIndex","target","source","getId","routeGetIdList","id","find","i","findLast","currentRoute","path","findLastIndex","max","concat","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { nanoid } from 'nanoid/non-secure';
|
|
4
|
+
import { BaseRouter } from "./BaseRouter.js";
|
|
5
|
+
import { createParamsFromAction } from "./createParamsFromAction.js";
|
|
6
|
+
const TYPE_ROUTE = 'route';
|
|
7
|
+
const getRouteHistory = (routes, index, backBehavior, initialRouteName) => {
|
|
8
|
+
const history = [{
|
|
9
|
+
type: TYPE_ROUTE,
|
|
10
|
+
key: routes[index].key,
|
|
11
|
+
params: backBehavior === 'fullHistory' ? routes[index].params : undefined
|
|
12
|
+
}];
|
|
13
|
+
let initialRouteIndex;
|
|
14
|
+
switch (backBehavior) {
|
|
15
|
+
case 'order':
|
|
16
|
+
for (let i = index; i > 0; i--) {
|
|
17
|
+
history.unshift({
|
|
18
|
+
type: TYPE_ROUTE,
|
|
19
|
+
key: routes[i - 1].key
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
case 'firstRoute':
|
|
24
|
+
if (index !== 0) {
|
|
25
|
+
history.unshift({
|
|
26
|
+
type: TYPE_ROUTE,
|
|
27
|
+
key: routes[0].key
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
31
|
+
case 'initialRoute':
|
|
32
|
+
initialRouteIndex = routes.findIndex(route => route.name === initialRouteName);
|
|
33
|
+
initialRouteIndex = initialRouteIndex === -1 ? 0 : initialRouteIndex;
|
|
34
|
+
if (index !== initialRouteIndex) {
|
|
35
|
+
history.unshift({
|
|
36
|
+
type: TYPE_ROUTE,
|
|
37
|
+
key: routes[initialRouteIndex].key
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
break;
|
|
41
|
+
case 'history':
|
|
42
|
+
case 'fullHistory':
|
|
43
|
+
// The history will fill up on navigation
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
return history;
|
|
47
|
+
};
|
|
48
|
+
const changeIndex = (state, index, backBehavior, initialRouteName) => {
|
|
49
|
+
let history = state.history;
|
|
50
|
+
if (backBehavior === 'history' || backBehavior === 'fullHistory') {
|
|
51
|
+
const currentRoute = state.routes[index];
|
|
52
|
+
if (backBehavior === 'history') {
|
|
53
|
+
// Remove the existing key from the history to de-duplicate it
|
|
54
|
+
history = history.filter(it => it.type === 'route' ? it.key !== currentRoute.key : true);
|
|
55
|
+
} else if (backBehavior === 'fullHistory') {
|
|
56
|
+
const lastHistoryRouteItemIndex = history.findLastIndex(item => item.type === 'route');
|
|
57
|
+
const lastHistoryRouteItem = history[lastHistoryRouteItemIndex];
|
|
58
|
+
if (lastHistoryRouteItem?.type === 'route' && currentRoute.key === lastHistoryRouteItem.key) {
|
|
59
|
+
// For full-history, only remove if it matches the last route
|
|
60
|
+
// Useful for drawer, if current route was in history, then drawer state changed
|
|
61
|
+
// Then we only need to move the route to the front
|
|
62
|
+
history = [...history.slice(0, lastHistoryRouteItemIndex), ...history.slice(lastHistoryRouteItemIndex + 1)];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
history = history.concat({
|
|
66
|
+
type: TYPE_ROUTE,
|
|
67
|
+
key: currentRoute.key,
|
|
68
|
+
params: backBehavior === 'fullHistory' ? currentRoute.params : undefined
|
|
69
|
+
});
|
|
70
|
+
} else {
|
|
71
|
+
// Preserve non-route entries (e.g. drawer status) when rebuilding the history
|
|
72
|
+
history = [...state.history.filter(it => it.type !== 'route'), ...getRouteHistory(state.routes, index, backBehavior, initialRouteName)];
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
index,
|
|
76
|
+
history
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export function SwitchRouter({
|
|
80
|
+
initialRouteName,
|
|
81
|
+
backBehavior = 'firstRoute'
|
|
82
|
+
}) {
|
|
83
|
+
const router = {
|
|
84
|
+
...BaseRouter,
|
|
85
|
+
getInitialState({
|
|
86
|
+
routeNames,
|
|
87
|
+
routeParamList
|
|
88
|
+
}) {
|
|
89
|
+
const index = initialRouteName !== undefined && routeNames.includes(initialRouteName) ? routeNames.indexOf(initialRouteName) : 0;
|
|
90
|
+
const routes = routeNames.map(name => ({
|
|
91
|
+
name,
|
|
92
|
+
key: `${name}-${nanoid()}`,
|
|
93
|
+
params: routeParamList[name]
|
|
94
|
+
}));
|
|
95
|
+
return {
|
|
96
|
+
stale: false,
|
|
97
|
+
key: nanoid(),
|
|
98
|
+
index,
|
|
99
|
+
routeNames,
|
|
100
|
+
history: getRouteHistory(routes, index, backBehavior, initialRouteName),
|
|
101
|
+
routes,
|
|
102
|
+
preloadedRouteKeys: []
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
getRehydratedState(state, {
|
|
106
|
+
routeNames,
|
|
107
|
+
routeParamList
|
|
108
|
+
}) {
|
|
109
|
+
const routes = routeNames.map(name => {
|
|
110
|
+
const route = state.routes.find(r => r.name === name);
|
|
111
|
+
return {
|
|
112
|
+
...route,
|
|
113
|
+
name,
|
|
114
|
+
key: route && route.name === name && route.key ? route.key : `${name}-${nanoid()}`,
|
|
115
|
+
params: routeParamList[name] !== undefined ? {
|
|
116
|
+
...routeParamList[name],
|
|
117
|
+
...(route ? route.params : undefined)
|
|
118
|
+
} : route ? route.params : undefined
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
const index = Math.min(Math.max(routeNames.indexOf(state.routes[state.index ?? 0]?.name), 0), routes.length - 1);
|
|
122
|
+
const routeKeys = routes.map(route => route.key);
|
|
123
|
+
const history = [];
|
|
124
|
+
for (const item of state.history ?? []) {
|
|
125
|
+
if (item.type === 'route' && routeKeys.includes(item.key)) {
|
|
126
|
+
history.push(item);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const stateData = {
|
|
130
|
+
stale: false,
|
|
131
|
+
key: nanoid(),
|
|
132
|
+
index,
|
|
133
|
+
routeNames,
|
|
134
|
+
history,
|
|
135
|
+
routes,
|
|
136
|
+
preloadedRouteKeys: state.preloadedRouteKeys?.filter(key => routeKeys.includes(key)) ?? []
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
...stateData,
|
|
140
|
+
...changeIndex(stateData, index, backBehavior, initialRouteName)
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
getStateForRouteNamesChange(state, {
|
|
144
|
+
routeNames,
|
|
145
|
+
routeParamList,
|
|
146
|
+
routeKeyChanges
|
|
147
|
+
}) {
|
|
148
|
+
const routes = routeNames.map(name => state.routes.find(r => r.name === name && !routeKeyChanges.includes(r.name)) ?? {
|
|
149
|
+
name,
|
|
150
|
+
key: `${name}-${nanoid()}`,
|
|
151
|
+
params: routeParamList[name]
|
|
152
|
+
});
|
|
153
|
+
const routeKeys = new Set(routes.map(route => route.key));
|
|
154
|
+
const currentRoute = state.routes[state.index];
|
|
155
|
+
if (currentRoute == null) {
|
|
156
|
+
throw new Error(`Couldn't find a route at index ${state.index}.`);
|
|
157
|
+
}
|
|
158
|
+
const history = state.history.filter(
|
|
159
|
+
// Type will always be 'route' for tabs, but could be different in a router extending this (e.g. drawer)
|
|
160
|
+
item => item.type !== 'route' || routeKeys.has(item.key));
|
|
161
|
+
let index = routeNames.indexOf(currentRoute.name);
|
|
162
|
+
if (index === -1) {
|
|
163
|
+
// The focused route was removed, so focus the most recently visited surviving route
|
|
164
|
+
const previousRouteItem = history.findLast(item => item.type === 'route');
|
|
165
|
+
index = Math.max(0, routes.findIndex(route => route.key === previousRouteItem?.key));
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
...state,
|
|
169
|
+
routeNames,
|
|
170
|
+
routes,
|
|
171
|
+
...changeIndex({
|
|
172
|
+
routes,
|
|
173
|
+
history
|
|
174
|
+
}, index, backBehavior, initialRouteName),
|
|
175
|
+
preloadedRouteKeys: state.preloadedRouteKeys.filter(key => routeKeys.has(key))
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
getStateForRouteFocus(state, key) {
|
|
179
|
+
const index = state.routes.findIndex(r => r.key === key);
|
|
180
|
+
if (index === -1 || index === state.index) {
|
|
181
|
+
return state;
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
...state,
|
|
185
|
+
...changeIndex(state, index, backBehavior, initialRouteName)
|
|
186
|
+
};
|
|
187
|
+
},
|
|
188
|
+
getStateForAction(state, action, {
|
|
189
|
+
routeParamList,
|
|
190
|
+
routeGetIdList
|
|
191
|
+
}) {
|
|
192
|
+
switch (action.type) {
|
|
193
|
+
case 'JUMP_TO':
|
|
194
|
+
case 'NAVIGATE':
|
|
195
|
+
case 'NAVIGATE_DEPRECATED':
|
|
196
|
+
{
|
|
197
|
+
const index = state.routes.findIndex(route => route.name === action.payload.name);
|
|
198
|
+
if (index === -1) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
const route = state.routes[index];
|
|
202
|
+
if (route == null) {
|
|
203
|
+
throw new Error(`Couldn't find a route at index ${index}.`);
|
|
204
|
+
}
|
|
205
|
+
const getId = routeGetIdList[route.name];
|
|
206
|
+
const currentId = getId?.({
|
|
207
|
+
params: route.params
|
|
208
|
+
});
|
|
209
|
+
const nextId = getId?.({
|
|
210
|
+
params: action.payload.params
|
|
211
|
+
});
|
|
212
|
+
const key = currentId === nextId ? route.key : `${route.name}-${nanoid()}`;
|
|
213
|
+
let params;
|
|
214
|
+
if ((action.type === 'NAVIGATE' || action.type === 'NAVIGATE_DEPRECATED') && action.payload.merge && currentId === nextId) {
|
|
215
|
+
params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
|
|
216
|
+
...routeParamList[route.name],
|
|
217
|
+
...route.params,
|
|
218
|
+
...action.payload.params
|
|
219
|
+
} : route.params;
|
|
220
|
+
} else {
|
|
221
|
+
params = createParamsFromAction({
|
|
222
|
+
action,
|
|
223
|
+
routeParamList
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
const path = action.type === 'NAVIGATE' && action.payload.path != null ? action.payload.path : route.path;
|
|
227
|
+
const nextRoute = params !== route.params || path !== route.path || key !== route.key ? {
|
|
228
|
+
...route,
|
|
229
|
+
key,
|
|
230
|
+
path,
|
|
231
|
+
params
|
|
232
|
+
} : route;
|
|
233
|
+
const routes = state.routes.map((item, routeIndex) => routeIndex === index ? nextRoute : item);
|
|
234
|
+
const updatedState = {
|
|
235
|
+
...state,
|
|
236
|
+
routes,
|
|
237
|
+
history: key === route.key ? state.history : state.history.filter(it => it.type !== 'route' || it.key !== route.key)
|
|
238
|
+
};
|
|
239
|
+
return {
|
|
240
|
+
...updatedState,
|
|
241
|
+
...changeIndex(updatedState, index, backBehavior, initialRouteName),
|
|
242
|
+
preloadedRouteKeys: updatedState.preloadedRouteKeys.filter(key => key !== route.key && key !== nextRoute.key)
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
case 'SET_PARAMS':
|
|
246
|
+
case 'REPLACE_PARAMS':
|
|
247
|
+
{
|
|
248
|
+
const nextState = BaseRouter.getStateForAction(state, action);
|
|
249
|
+
if (nextState !== null) {
|
|
250
|
+
const index = nextState.index;
|
|
251
|
+
if (index != null) {
|
|
252
|
+
const focusedRoute = nextState.routes[index];
|
|
253
|
+
const historyItemIndex = state.history.findLastIndex(item => item.type === 'route' && item.key === focusedRoute.key);
|
|
254
|
+
let updatedHistory = state.history;
|
|
255
|
+
if (historyItemIndex !== -1) {
|
|
256
|
+
updatedHistory = [...state.history];
|
|
257
|
+
const item = updatedHistory[historyItemIndex];
|
|
258
|
+
if (item.type === 'route') {
|
|
259
|
+
updatedHistory[historyItemIndex] = {
|
|
260
|
+
...item,
|
|
261
|
+
params: focusedRoute.params
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
...nextState,
|
|
267
|
+
history: updatedHistory
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return nextState;
|
|
272
|
+
}
|
|
273
|
+
case 'GO_BACK':
|
|
274
|
+
{
|
|
275
|
+
if (state.history.length === 1) {
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
const previousHistoryItem = state.history[state.history.length - 2];
|
|
279
|
+
if (previousHistoryItem?.type !== 'route') {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
const previousKey = previousHistoryItem.key;
|
|
283
|
+
const index = state.routes.findLastIndex(route => route.key === previousKey);
|
|
284
|
+
if (index === -1) {
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
287
|
+
let routes = state.routes;
|
|
288
|
+
if (backBehavior === 'fullHistory' && routes[index].params !== previousHistoryItem.params) {
|
|
289
|
+
routes = [...state.routes];
|
|
290
|
+
routes[index] = {
|
|
291
|
+
...routes[index],
|
|
292
|
+
params: previousHistoryItem.params
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
...state,
|
|
297
|
+
routes,
|
|
298
|
+
preloadedRouteKeys: state.preloadedRouteKeys.filter(key => key !== state.routes[index].key),
|
|
299
|
+
history: state.history.slice(0, -1),
|
|
300
|
+
index
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
case 'PRELOAD':
|
|
304
|
+
{
|
|
305
|
+
const routeIndex = state.routes.findIndex(route => route.name === action.payload.name);
|
|
306
|
+
if (routeIndex === -1) {
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
const route = state.routes[routeIndex];
|
|
310
|
+
const getId = routeGetIdList[route.name];
|
|
311
|
+
const currentId = getId?.({
|
|
312
|
+
params: route.params
|
|
313
|
+
});
|
|
314
|
+
const nextId = getId?.({
|
|
315
|
+
params: action.payload.params
|
|
316
|
+
});
|
|
317
|
+
const key = currentId === nextId ? route.key : `${route.name}-${nanoid()}`;
|
|
318
|
+
const params = createParamsFromAction({
|
|
319
|
+
action,
|
|
320
|
+
routeParamList
|
|
321
|
+
});
|
|
322
|
+
const newRoute = params !== route.params ? {
|
|
323
|
+
...route,
|
|
324
|
+
key,
|
|
325
|
+
params
|
|
326
|
+
} : route;
|
|
327
|
+
let history = state.history;
|
|
328
|
+
if (key !== route.key) {
|
|
329
|
+
history = history.filter(record => record.type !== 'route' || record.key !== route.key);
|
|
330
|
+
if (routeIndex === state.index) {
|
|
331
|
+
history = history.concat({
|
|
332
|
+
type: TYPE_ROUTE,
|
|
333
|
+
key: newRoute.key,
|
|
334
|
+
params: backBehavior === 'fullHistory' ? newRoute.params : undefined
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
...state,
|
|
340
|
+
preloadedRouteKeys: state.preloadedRouteKeys.filter(key => key !== route.key).concat(newRoute.key),
|
|
341
|
+
routes: state.routes.map((route, index) => index === routeIndex ? newRoute : route),
|
|
342
|
+
history
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
default:
|
|
346
|
+
return BaseRouter.getStateForAction(state, action);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
return router;
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=SwitchRouter.js.map
|