@react-navigation/routers 6.1.3 → 6.1.6
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/commonjs/BaseRouter.js +10 -17
- package/lib/commonjs/BaseRouter.js.map +1 -1
- package/lib/commonjs/CommonActions.js +0 -6
- package/lib/commonjs/CommonActions.js.map +1 -1
- package/lib/commonjs/DrawerRouter.js +12 -45
- package/lib/commonjs/DrawerRouter.js.map +1 -1
- package/lib/commonjs/StackRouter.js +40 -73
- package/lib/commonjs/StackRouter.js.map +1 -1
- package/lib/commonjs/TabRouter.js +25 -59
- package/lib/commonjs/TabRouter.js.map +1 -1
- package/lib/commonjs/index.js +0 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/BaseRouter.js +10 -16
- package/lib/module/BaseRouter.js.map +1 -1
- package/lib/module/CommonActions.js +0 -2
- package/lib/module/CommonActions.js.map +1 -1
- package/lib/module/DrawerRouter.js +12 -39
- package/lib/module/DrawerRouter.js.map +1 -1
- package/lib/module/StackRouter.js +40 -68
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/module/TabRouter.js +25 -55
- package/lib/module/TabRouter.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/BaseRouter.d.ts +1 -0
- package/lib/typescript/src/BaseRouter.d.ts.map +1 -0
- package/lib/typescript/src/CommonActions.d.ts +1 -0
- package/lib/typescript/src/CommonActions.d.ts.map +1 -0
- package/lib/typescript/src/DrawerRouter.d.ts +1 -0
- package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
- package/lib/typescript/src/StackRouter.d.ts +1 -0
- package/lib/typescript/src/StackRouter.d.ts.map +1 -0
- package/lib/typescript/src/TabRouter.d.ts +1 -0
- package/lib/typescript/src/TabRouter.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +1 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _nonSecure = require("nanoid/non-secure");
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Base router object that can be used when writing custom routers.
|
|
12
10
|
* This provides few helper methods to handle common actions such as `RESET`.
|
|
@@ -17,52 +15,47 @@ const BaseRouter = {
|
|
|
17
15
|
case 'SET_PARAMS':
|
|
18
16
|
{
|
|
19
17
|
const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
|
|
20
|
-
|
|
21
18
|
if (index === -1) {
|
|
22
19
|
return null;
|
|
23
20
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
routes: state.routes.map((r, i) => i === index ? {
|
|
27
|
-
|
|
21
|
+
return {
|
|
22
|
+
...state,
|
|
23
|
+
routes: state.routes.map((r, i) => i === index ? {
|
|
24
|
+
...r,
|
|
25
|
+
params: {
|
|
26
|
+
...r.params,
|
|
28
27
|
...action.payload.params
|
|
29
28
|
}
|
|
30
29
|
} : r)
|
|
31
30
|
};
|
|
32
31
|
}
|
|
33
|
-
|
|
34
32
|
case 'RESET':
|
|
35
33
|
{
|
|
36
34
|
const nextState = action.payload;
|
|
37
|
-
|
|
38
35
|
if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {
|
|
39
36
|
return null;
|
|
40
37
|
}
|
|
41
|
-
|
|
42
38
|
if (nextState.stale === false) {
|
|
43
39
|
if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {
|
|
44
40
|
return null;
|
|
45
41
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
routes: nextState.routes.map(route => route.key ? route : {
|
|
42
|
+
return {
|
|
43
|
+
...nextState,
|
|
44
|
+
routes: nextState.routes.map(route => route.key ? route : {
|
|
45
|
+
...route,
|
|
49
46
|
key: `${route.name}-${(0, _nonSecure.nanoid)()}`
|
|
50
47
|
})
|
|
51
48
|
};
|
|
52
49
|
}
|
|
53
|
-
|
|
54
50
|
return nextState;
|
|
55
51
|
}
|
|
56
|
-
|
|
57
52
|
default:
|
|
58
53
|
return null;
|
|
59
54
|
}
|
|
60
55
|
},
|
|
61
|
-
|
|
62
56
|
shouldActionChangeFocus(action) {
|
|
63
57
|
return action.type === 'NAVIGATE';
|
|
64
58
|
}
|
|
65
|
-
|
|
66
59
|
};
|
|
67
60
|
var _default = BaseRouter;
|
|
68
61
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","nanoid","shouldActionChangeFocus"],"sourceRoot":"../../src","sources":["BaseRouter.tsx"],"mappings":";;;;;;AAAA;AAQA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG;EACjBC,iBAAiB,CACfC,KAAY,EACZC,MAA8B,EACM;IACpC,QAAQA,MAAM,CAACC,IAAI;MACjB,KAAK,YAAY;QAAE;UACjB,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;UAEf,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI;UACb;UAEA,OAAO;YACL,GAAGH,KAAK;YACRK,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACI,GAAG,CAAC,CAACF,CAAC,EAAEG,CAAC,KAC5BA,CAAC,KAAKP,KAAK,GACP;cAAE,GAAGI,CAAC;cAAEI,MAAM,EAAE;gBAAE,GAAGJ,CAAC,CAACI,MAAM;gBAAE,GAAGV,MAAM,CAACW,OAAO,CAACD;cAAO;YAAE,CAAC,GAC3DJ,CAAC;UAET,CAAC;QACH;MAEA,KAAK,OAAO;QAAE;UACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAsC;UAE/D,IACEC,SAAS,CAACR,MAAM,CAACS,MAAM,KAAK,CAAC,IAC7BD,SAAS,CAACR,MAAM,CAACU,IAAI,CAClBC,KAAuB,IAAK,CAAChB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC,CACpE,EACD;YACA,OAAO,IAAI;UACb;UAEA,IAAIN,SAAS,CAACO,KAAK,KAAK,KAAK,EAAE;YAC7B,IACEpB,KAAK,CAACiB,UAAU,CAACH,MAAM,KAAKD,SAAS,CAACI,UAAU,CAACH,MAAM,IACvDD,SAAS,CAACI,UAAU,CAACF,IAAI,CACtBI,IAAI,IAAK,CAACnB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACC,IAAI,CAAC,CAC3C,EACD;cACA,OAAO,IAAI;YACb;YAEA,OAAO;cACL,GAAGN,SAAS;cACZR,MAAM,EAAEQ,SAAS,CAACR,MAAM,CAACI,GAAG,CAAEO,KAAK,IACjCA,KAAK,CAACR,GAAG,GAAGQ,KAAK,GAAG;gBAAE,GAAGA,KAAK;gBAAER,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAG,IAAAE,iBAAM,GAAG;cAAE,CAAC;YAEtE,CAAC;UACH;UAEA,OAAOR,SAAS;QAClB;MAEA;QACE,OAAO,IAAI;IAAC;EAElB,CAAC;EAEDS,uBAAuB,CAACrB,MAA8B,EAAE;IACtD,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU;EACnC;AACF,CAAC;AAAC,eAEaJ,UAAU;AAAA"}
|
|
@@ -7,13 +7,11 @@ exports.goBack = goBack;
|
|
|
7
7
|
exports.navigate = navigate;
|
|
8
8
|
exports.reset = reset;
|
|
9
9
|
exports.setParams = setParams;
|
|
10
|
-
|
|
11
10
|
function goBack() {
|
|
12
11
|
return {
|
|
13
12
|
type: 'GO_BACK'
|
|
14
13
|
};
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
// eslint-disable-next-line no-redeclare
|
|
18
16
|
function navigate() {
|
|
19
17
|
if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {
|
|
@@ -26,25 +24,21 @@ function navigate() {
|
|
|
26
24
|
};
|
|
27
25
|
} else {
|
|
28
26
|
const payload = (arguments.length <= 0 ? undefined : arguments[0]) || {};
|
|
29
|
-
|
|
30
27
|
if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {
|
|
31
28
|
throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
return {
|
|
35
31
|
type: 'NAVIGATE',
|
|
36
32
|
payload
|
|
37
33
|
};
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
|
-
|
|
41
36
|
function reset(state) {
|
|
42
37
|
return {
|
|
43
38
|
type: 'RESET',
|
|
44
39
|
payload: state
|
|
45
40
|
};
|
|
46
41
|
}
|
|
47
|
-
|
|
48
42
|
function setParams(params) {
|
|
49
43
|
return {
|
|
50
44
|
type: 'SET_PARAMS',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"sourceRoot":"../../src","sources":["CommonActions.tsx"],"mappings":";;;;;;;;;AAgDO,SAASA,MAAM,GAAW;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAU,CAAC;AAC5B;AAeA;AACO,SAASC,QAAQ,GAAuB;EAC7C,IAAI,yDAAc,KAAK,QAAQ,EAAE;IAC/B,OAAO;MAAED,IAAI,EAAE,UAAU;MAAEE,OAAO,EAAE;QAAEC,IAAI,kDAAS;QAAEC,MAAM;MAAU;IAAE,CAAC;EAC1E,CAAC,MAAM;IACL,MAAMF,OAAO,GAAG,sDAAW,CAAC,CAAC;IAE7B,IAAI,CAACA,OAAO,CAACG,cAAc,CAAC,KAAK,CAAC,IAAI,CAACH,OAAO,CAACG,cAAc,CAAC,MAAM,CAAC,EAAE;MACrE,MAAM,IAAIC,KAAK,CACb,mKAAmK,CACpK;IACH;IAEA,OAAO;MAAEN,IAAI,EAAE,UAAU;MAAEE;IAAQ,CAAC;EACtC;AACF;AAEO,SAASK,KAAK,CAACC,KAA6B,EAAU;EAC3D,OAAO;IAAER,IAAI,EAAE,OAAO;IAAEE,OAAO,EAAEM;EAAM,CAAC;AAC1C;AAEO,SAASC,SAAS,CAACL,MAAc,EAAU;EAChD,OAAO;IAAEJ,IAAI,EAAE,YAAY;IAAEE,OAAO,EAAE;MAAEE;IAAO;EAAE,CAAC;AACpD"}
|
|
@@ -5,93 +5,75 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.DrawerActions = void 0;
|
|
7
7
|
exports.default = DrawerRouter;
|
|
8
|
-
|
|
9
8
|
var _nonSecure = require("nanoid/non-secure");
|
|
10
|
-
|
|
11
9
|
var _TabRouter = _interopRequireWildcard(require("./TabRouter"));
|
|
12
|
-
|
|
13
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
|
|
15
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
const DrawerActions = {
|
|
13
|
+
..._TabRouter.TabActions,
|
|
19
14
|
openDrawer() {
|
|
20
15
|
return {
|
|
21
16
|
type: 'OPEN_DRAWER'
|
|
22
17
|
};
|
|
23
18
|
},
|
|
24
|
-
|
|
25
19
|
closeDrawer() {
|
|
26
20
|
return {
|
|
27
21
|
type: 'CLOSE_DRAWER'
|
|
28
22
|
};
|
|
29
23
|
},
|
|
30
|
-
|
|
31
24
|
toggleDrawer() {
|
|
32
25
|
return {
|
|
33
26
|
type: 'TOGGLE_DRAWER'
|
|
34
27
|
};
|
|
35
28
|
}
|
|
36
|
-
|
|
37
29
|
};
|
|
38
30
|
exports.DrawerActions = DrawerActions;
|
|
39
|
-
|
|
40
31
|
function DrawerRouter(_ref) {
|
|
41
32
|
let {
|
|
42
33
|
defaultStatus = 'closed',
|
|
43
34
|
...rest
|
|
44
35
|
} = _ref;
|
|
45
36
|
const router = (0, _TabRouter.default)(rest);
|
|
46
|
-
|
|
47
37
|
const isDrawerInHistory = state => {
|
|
48
38
|
var _state$history;
|
|
49
|
-
|
|
50
39
|
return Boolean((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.some(it => it.type === 'drawer'));
|
|
51
40
|
};
|
|
52
|
-
|
|
53
41
|
const addDrawerToHistory = state => {
|
|
54
42
|
if (isDrawerInHistory(state)) {
|
|
55
43
|
return state;
|
|
56
44
|
}
|
|
57
|
-
|
|
58
|
-
|
|
45
|
+
return {
|
|
46
|
+
...state,
|
|
59
47
|
history: [...state.history, {
|
|
60
48
|
type: 'drawer',
|
|
61
49
|
status: defaultStatus === 'open' ? 'closed' : 'open'
|
|
62
50
|
}]
|
|
63
51
|
};
|
|
64
52
|
};
|
|
65
|
-
|
|
66
53
|
const removeDrawerFromHistory = state => {
|
|
67
54
|
if (!isDrawerInHistory(state)) {
|
|
68
55
|
return state;
|
|
69
56
|
}
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
72
59
|
history: state.history.filter(it => it.type !== 'drawer')
|
|
73
60
|
};
|
|
74
61
|
};
|
|
75
|
-
|
|
76
62
|
const openDrawer = state => {
|
|
77
63
|
if (defaultStatus === 'open') {
|
|
78
64
|
return removeDrawerFromHistory(state);
|
|
79
65
|
}
|
|
80
|
-
|
|
81
66
|
return addDrawerToHistory(state);
|
|
82
67
|
};
|
|
83
|
-
|
|
84
68
|
const closeDrawer = state => {
|
|
85
69
|
if (defaultStatus === 'open') {
|
|
86
70
|
return addDrawerToHistory(state);
|
|
87
71
|
}
|
|
88
|
-
|
|
89
72
|
return removeDrawerFromHistory(state);
|
|
90
73
|
};
|
|
91
|
-
|
|
92
|
-
|
|
74
|
+
return {
|
|
75
|
+
...router,
|
|
93
76
|
type: 'drawer',
|
|
94
|
-
|
|
95
77
|
getInitialState(_ref2) {
|
|
96
78
|
let {
|
|
97
79
|
routeNames,
|
|
@@ -103,88 +85,73 @@ function DrawerRouter(_ref) {
|
|
|
103
85
|
routeParamList,
|
|
104
86
|
routeGetIdList
|
|
105
87
|
});
|
|
106
|
-
return {
|
|
88
|
+
return {
|
|
89
|
+
...state,
|
|
107
90
|
default: defaultStatus,
|
|
108
91
|
stale: false,
|
|
109
92
|
type: 'drawer',
|
|
110
93
|
key: `drawer-${(0, _nonSecure.nanoid)()}`
|
|
111
94
|
};
|
|
112
95
|
},
|
|
113
|
-
|
|
114
96
|
getRehydratedState(partialState, _ref3) {
|
|
115
97
|
let {
|
|
116
98
|
routeNames,
|
|
117
99
|
routeParamList,
|
|
118
100
|
routeGetIdList
|
|
119
101
|
} = _ref3;
|
|
120
|
-
|
|
121
102
|
if (partialState.stale === false) {
|
|
122
103
|
return partialState;
|
|
123
104
|
}
|
|
124
|
-
|
|
125
105
|
let state = router.getRehydratedState(partialState, {
|
|
126
106
|
routeNames,
|
|
127
107
|
routeParamList,
|
|
128
108
|
routeGetIdList
|
|
129
109
|
});
|
|
130
|
-
|
|
131
110
|
if (isDrawerInHistory(partialState)) {
|
|
132
111
|
// Re-sync the drawer entry in history to correct it if it was wrong
|
|
133
112
|
state = removeDrawerFromHistory(state);
|
|
134
113
|
state = addDrawerToHistory(state);
|
|
135
114
|
}
|
|
136
|
-
|
|
137
|
-
|
|
115
|
+
return {
|
|
116
|
+
...state,
|
|
138
117
|
default: defaultStatus,
|
|
139
118
|
type: 'drawer',
|
|
140
119
|
key: `drawer-${(0, _nonSecure.nanoid)()}`
|
|
141
120
|
};
|
|
142
121
|
},
|
|
143
|
-
|
|
144
122
|
getStateForRouteFocus(state, key) {
|
|
145
123
|
const result = router.getStateForRouteFocus(state, key);
|
|
146
124
|
return closeDrawer(result);
|
|
147
125
|
},
|
|
148
|
-
|
|
149
126
|
getStateForAction(state, action, options) {
|
|
150
127
|
switch (action.type) {
|
|
151
128
|
case 'OPEN_DRAWER':
|
|
152
129
|
return openDrawer(state);
|
|
153
|
-
|
|
154
130
|
case 'CLOSE_DRAWER':
|
|
155
131
|
return closeDrawer(state);
|
|
156
|
-
|
|
157
132
|
case 'TOGGLE_DRAWER':
|
|
158
133
|
if (isDrawerInHistory(state)) {
|
|
159
134
|
return removeDrawerFromHistory(state);
|
|
160
135
|
}
|
|
161
|
-
|
|
162
136
|
return addDrawerToHistory(state);
|
|
163
|
-
|
|
164
137
|
case 'JUMP_TO':
|
|
165
138
|
case 'NAVIGATE':
|
|
166
139
|
{
|
|
167
140
|
const result = router.getStateForAction(state, action, options);
|
|
168
|
-
|
|
169
141
|
if (result != null && result.index !== state.index) {
|
|
170
142
|
return closeDrawer(result);
|
|
171
143
|
}
|
|
172
|
-
|
|
173
144
|
return result;
|
|
174
145
|
}
|
|
175
|
-
|
|
176
146
|
case 'GO_BACK':
|
|
177
147
|
if (isDrawerInHistory(state)) {
|
|
178
148
|
return removeDrawerFromHistory(state);
|
|
179
149
|
}
|
|
180
|
-
|
|
181
150
|
return router.getStateForAction(state, action, options);
|
|
182
|
-
|
|
183
151
|
default:
|
|
184
152
|
return router.getStateForAction(state, action, options);
|
|
185
153
|
}
|
|
186
154
|
},
|
|
187
|
-
|
|
188
155
|
actionCreators: DrawerActions
|
|
189
156
|
};
|
|
190
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DrawerRouter.tsx"],"names":["DrawerActions","TabActions","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"],"mappings":"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","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"names":["DrawerActions","TabActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","TabRouter","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","nanoid","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sourceRoot":"../../src","sources":["DrawerRouter.tsx"],"mappings":"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"}
|