@react-navigation/routers 6.1.5 → 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 +11 -18
- package/lib/commonjs/BaseRouter.js.map +1 -1
- package/lib/commonjs/CommonActions.js +23 -8
- package/lib/commonjs/CommonActions.js.map +1 -1
- package/lib/commonjs/DrawerRouter.js +13 -45
- package/lib/commonjs/DrawerRouter.js.map +1 -1
- package/lib/commonjs/StackRouter.js +155 -97
- package/lib/commonjs/StackRouter.js.map +1 -1
- package/lib/commonjs/TabRouter.js +28 -69
- 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 +11 -17
- package/lib/module/BaseRouter.js.map +1 -1
- package/lib/module/CommonActions.js +22 -4
- package/lib/module/CommonActions.js.map +1 -1
- package/lib/module/DrawerRouter.js +13 -39
- package/lib/module/DrawerRouter.js.map +1 -1
- package/lib/module/StackRouter.js +155 -92
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/module/TabRouter.js +28 -65
- 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 +14 -13
- package/lib/typescript/src/CommonActions.d.ts.map +1 -0
- package/lib/typescript/src/DrawerRouter.d.ts +6 -5
- package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
- package/lib/typescript/src/StackRouter.d.ts +24 -5
- package/lib/typescript/src/StackRouter.d.ts.map +1 -0
- package/lib/typescript/src/TabRouter.d.ts +6 -5
- 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 +15 -14
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +5 -5
- 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
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.StackActions = void 0;
|
|
7
7
|
exports.default = StackRouter;
|
|
8
|
-
|
|
9
8
|
var _nonSecure = require("nanoid/non-secure");
|
|
10
|
-
|
|
11
9
|
var _BaseRouter = _interopRequireDefault(require("./BaseRouter"));
|
|
12
|
-
|
|
13
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
|
|
15
11
|
const StackActions = {
|
|
16
12
|
replace(name, params) {
|
|
17
13
|
return {
|
|
@@ -22,7 +18,6 @@ const StackActions = {
|
|
|
22
18
|
}
|
|
23
19
|
};
|
|
24
20
|
},
|
|
25
|
-
|
|
26
21
|
push(name, params) {
|
|
27
22
|
return {
|
|
28
23
|
type: 'PUSH',
|
|
@@ -32,7 +27,6 @@ const StackActions = {
|
|
|
32
27
|
}
|
|
33
28
|
};
|
|
34
29
|
},
|
|
35
|
-
|
|
36
30
|
pop() {
|
|
37
31
|
let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
38
32
|
return {
|
|
@@ -42,20 +36,27 @@ const StackActions = {
|
|
|
42
36
|
}
|
|
43
37
|
};
|
|
44
38
|
},
|
|
45
|
-
|
|
46
39
|
popToTop() {
|
|
47
40
|
return {
|
|
48
41
|
type: 'POP_TO_TOP'
|
|
49
42
|
};
|
|
43
|
+
},
|
|
44
|
+
popTo(name, params, merge) {
|
|
45
|
+
return {
|
|
46
|
+
type: 'POP_TO',
|
|
47
|
+
payload: {
|
|
48
|
+
name,
|
|
49
|
+
params,
|
|
50
|
+
merge
|
|
51
|
+
}
|
|
52
|
+
};
|
|
50
53
|
}
|
|
51
|
-
|
|
52
54
|
};
|
|
53
55
|
exports.StackActions = StackActions;
|
|
54
|
-
|
|
55
56
|
function StackRouter(options) {
|
|
56
|
-
const router = {
|
|
57
|
+
const router = {
|
|
58
|
+
..._BaseRouter.default,
|
|
57
59
|
type: 'stack',
|
|
58
|
-
|
|
59
60
|
getInitialState(_ref) {
|
|
60
61
|
let {
|
|
61
62
|
routeNames,
|
|
@@ -75,25 +76,23 @@ function StackRouter(options) {
|
|
|
75
76
|
}]
|
|
76
77
|
};
|
|
77
78
|
},
|
|
78
|
-
|
|
79
79
|
getRehydratedState(partialState, _ref2) {
|
|
80
80
|
let {
|
|
81
81
|
routeNames,
|
|
82
82
|
routeParamList
|
|
83
83
|
} = _ref2;
|
|
84
84
|
let state = partialState;
|
|
85
|
-
|
|
86
85
|
if (state.stale === false) {
|
|
87
86
|
return state;
|
|
88
87
|
}
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({
|
|
89
|
+
...route,
|
|
91
90
|
key: route.key || `${route.name}-${(0, _nonSecure.nanoid)()}`,
|
|
92
|
-
params: routeParamList[route.name] !== undefined ? {
|
|
91
|
+
params: routeParamList[route.name] !== undefined ? {
|
|
92
|
+
...routeParamList[route.name],
|
|
93
93
|
...route.params
|
|
94
94
|
} : route.params
|
|
95
95
|
}));
|
|
96
|
-
|
|
97
96
|
if (routes.length === 0) {
|
|
98
97
|
const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];
|
|
99
98
|
routes.push({
|
|
@@ -102,7 +101,6 @@ function StackRouter(options) {
|
|
|
102
101
|
params: routeParamList[initialRouteName]
|
|
103
102
|
});
|
|
104
103
|
}
|
|
105
|
-
|
|
106
104
|
return {
|
|
107
105
|
stale: false,
|
|
108
106
|
type: 'stack',
|
|
@@ -112,7 +110,6 @@ function StackRouter(options) {
|
|
|
112
110
|
routes
|
|
113
111
|
};
|
|
114
112
|
},
|
|
115
|
-
|
|
116
113
|
getStateForRouteNamesChange(state, _ref3) {
|
|
117
114
|
let {
|
|
118
115
|
routeNames,
|
|
@@ -120,7 +117,6 @@ function StackRouter(options) {
|
|
|
120
117
|
routeKeyChanges
|
|
121
118
|
} = _ref3;
|
|
122
119
|
const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
|
|
123
|
-
|
|
124
120
|
if (routes.length === 0) {
|
|
125
121
|
const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
|
|
126
122
|
routes.push({
|
|
@@ -129,114 +125,191 @@ function StackRouter(options) {
|
|
|
129
125
|
params: routeParamList[initialRouteName]
|
|
130
126
|
});
|
|
131
127
|
}
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
return {
|
|
129
|
+
...state,
|
|
134
130
|
routeNames,
|
|
135
131
|
routes,
|
|
136
132
|
index: Math.min(state.index, routes.length - 1)
|
|
137
133
|
};
|
|
138
134
|
},
|
|
139
|
-
|
|
140
135
|
getStateForRouteFocus(state, key) {
|
|
141
136
|
const index = state.routes.findIndex(r => r.key === key);
|
|
142
|
-
|
|
143
137
|
if (index === -1 || index === state.index) {
|
|
144
138
|
return state;
|
|
145
139
|
}
|
|
146
|
-
|
|
147
|
-
|
|
140
|
+
return {
|
|
141
|
+
...state,
|
|
148
142
|
index,
|
|
149
143
|
routes: state.routes.slice(0, index + 1)
|
|
150
144
|
};
|
|
151
145
|
},
|
|
152
|
-
|
|
153
146
|
getStateForAction(state, action, options) {
|
|
154
147
|
const {
|
|
155
148
|
routeParamList
|
|
156
149
|
} = options;
|
|
157
|
-
|
|
158
150
|
switch (action.type) {
|
|
159
151
|
case 'REPLACE':
|
|
160
152
|
{
|
|
161
153
|
const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
|
|
162
|
-
|
|
163
154
|
if (index === -1) {
|
|
164
155
|
return null;
|
|
165
156
|
}
|
|
166
|
-
|
|
167
157
|
const {
|
|
168
158
|
name,
|
|
169
|
-
key,
|
|
170
159
|
params
|
|
171
160
|
} = action.payload;
|
|
172
|
-
|
|
173
161
|
if (!state.routeNames.includes(name)) {
|
|
174
162
|
return null;
|
|
175
163
|
}
|
|
176
|
-
|
|
177
|
-
|
|
164
|
+
return {
|
|
165
|
+
...state,
|
|
178
166
|
routes: state.routes.map((route, i) => i === index ? {
|
|
179
|
-
key:
|
|
167
|
+
key: `${name}-${(0, _nonSecure.nanoid)()}`,
|
|
180
168
|
name,
|
|
181
|
-
params: routeParamList[name] !== undefined ? {
|
|
169
|
+
params: routeParamList[name] !== undefined ? {
|
|
170
|
+
...routeParamList[name],
|
|
182
171
|
...params
|
|
183
172
|
} : params
|
|
184
173
|
} : route)
|
|
185
174
|
};
|
|
186
175
|
}
|
|
187
|
-
|
|
188
176
|
case 'PUSH':
|
|
189
|
-
|
|
177
|
+
case 'NAVIGATE':
|
|
178
|
+
{
|
|
179
|
+
if (!state.routeNames.includes(action.payload.name)) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
190
182
|
const getId = options.routeGetIdList[action.payload.name];
|
|
191
183
|
const id = getId === null || getId === void 0 ? void 0 : getId({
|
|
192
184
|
params: action.payload.params
|
|
193
185
|
});
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
186
|
+
let route;
|
|
187
|
+
if (id !== undefined) {
|
|
188
|
+
route = state.routes.find(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({
|
|
189
|
+
params: route.params
|
|
190
|
+
})));
|
|
191
|
+
} else {
|
|
192
|
+
const currentRoute = state.routes[state.index];
|
|
198
193
|
|
|
194
|
+
// If the route matches the current one, then navigate to it
|
|
195
|
+
if (action.type === 'NAVIGATE' && action.payload.name === currentRoute.name) {
|
|
196
|
+
route = currentRoute;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
let params;
|
|
200
|
+
if (action.type === 'NAVIGATE' && action.payload.merge && route) {
|
|
201
|
+
params = action.payload.params !== undefined || routeParamList[action.payload.name] !== undefined ? {
|
|
202
|
+
...routeParamList[action.payload.name],
|
|
203
|
+
...route.params,
|
|
204
|
+
...action.payload.params
|
|
205
|
+
} : route.params;
|
|
206
|
+
} else {
|
|
207
|
+
params = routeParamList[action.payload.name] !== undefined ? {
|
|
208
|
+
...routeParamList[action.payload.name],
|
|
209
|
+
...action.payload.params
|
|
210
|
+
} : action.payload.params;
|
|
211
|
+
}
|
|
212
|
+
let routes;
|
|
199
213
|
if (route) {
|
|
200
|
-
|
|
201
|
-
routes.
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
214
|
+
const routeKey = route.key;
|
|
215
|
+
routes = state.routes.filter(r => r.key !== routeKey);
|
|
216
|
+
routes.push({
|
|
217
|
+
...route,
|
|
218
|
+
path: action.type === 'NAVIGATE' && action.payload.path !== undefined ? action.payload.path : route.path,
|
|
219
|
+
params
|
|
205
220
|
});
|
|
206
221
|
} else {
|
|
207
222
|
routes = [...state.routes, {
|
|
208
223
|
key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
|
|
209
224
|
name: action.payload.name,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
} : action.payload.params
|
|
225
|
+
path: action.type === 'NAVIGATE' ? action.payload.path : undefined,
|
|
226
|
+
params
|
|
213
227
|
}];
|
|
214
228
|
}
|
|
215
|
-
|
|
216
|
-
|
|
229
|
+
return {
|
|
230
|
+
...state,
|
|
217
231
|
index: routes.length - 1,
|
|
218
232
|
routes
|
|
219
233
|
};
|
|
220
234
|
}
|
|
235
|
+
case 'NAVIGATE_DEPRECATED':
|
|
236
|
+
{
|
|
237
|
+
if (!state.routeNames.includes(action.payload.name)) {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
221
240
|
|
|
222
|
-
|
|
223
|
-
|
|
241
|
+
// If the route already exists, navigate to that
|
|
242
|
+
let index = -1;
|
|
243
|
+
const getId = options.routeGetIdList[action.payload.name];
|
|
244
|
+
const id = getId === null || getId === void 0 ? void 0 : getId({
|
|
245
|
+
params: action.payload.params
|
|
246
|
+
});
|
|
247
|
+
if (id) {
|
|
248
|
+
index = state.routes.findIndex(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({
|
|
249
|
+
params: route.params
|
|
250
|
+
})));
|
|
251
|
+
} else if (state.routes[state.index].name === action.payload.name) {
|
|
252
|
+
index = state.index;
|
|
253
|
+
} else {
|
|
254
|
+
for (let i = state.routes.length - 1; i >= 0; i--) {
|
|
255
|
+
if (state.routes[i].name === action.payload.name) {
|
|
256
|
+
index = i;
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (index === -1) {
|
|
262
|
+
const routes = [...state.routes, {
|
|
263
|
+
key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
|
|
264
|
+
name: action.payload.name,
|
|
265
|
+
params: routeParamList[action.payload.name] !== undefined ? {
|
|
266
|
+
...routeParamList[action.payload.name],
|
|
267
|
+
...action.payload.params
|
|
268
|
+
} : action.payload.params
|
|
269
|
+
}];
|
|
270
|
+
return {
|
|
271
|
+
...state,
|
|
272
|
+
routes,
|
|
273
|
+
index: routes.length - 1
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
const route = state.routes[index];
|
|
277
|
+
let params;
|
|
278
|
+
if (action.payload.merge) {
|
|
279
|
+
params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
|
|
280
|
+
...routeParamList[route.name],
|
|
281
|
+
...route.params,
|
|
282
|
+
...action.payload.params
|
|
283
|
+
} : route.params;
|
|
284
|
+
} else {
|
|
285
|
+
params = routeParamList[route.name] !== undefined ? {
|
|
286
|
+
...routeParamList[route.name],
|
|
287
|
+
...action.payload.params
|
|
288
|
+
} : action.payload.params;
|
|
289
|
+
}
|
|
290
|
+
return {
|
|
291
|
+
...state,
|
|
292
|
+
index,
|
|
293
|
+
routes: [...state.routes.slice(0, index), params !== route.params ? {
|
|
294
|
+
...route,
|
|
295
|
+
params
|
|
296
|
+
} : state.routes[index]]
|
|
297
|
+
};
|
|
298
|
+
}
|
|
224
299
|
case 'POP':
|
|
225
300
|
{
|
|
226
301
|
const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
|
|
227
|
-
|
|
228
302
|
if (index > 0) {
|
|
229
303
|
const count = Math.max(index - action.payload.count + 1, 1);
|
|
230
304
|
const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));
|
|
231
|
-
return {
|
|
305
|
+
return {
|
|
306
|
+
...state,
|
|
232
307
|
index: routes.length - 1,
|
|
233
308
|
routes
|
|
234
309
|
};
|
|
235
310
|
}
|
|
236
|
-
|
|
237
311
|
return null;
|
|
238
312
|
}
|
|
239
|
-
|
|
240
313
|
case 'POP_TO_TOP':
|
|
241
314
|
return router.getStateForAction(state, {
|
|
242
315
|
type: 'POP',
|
|
@@ -244,84 +317,72 @@ function StackRouter(options) {
|
|
|
244
317
|
count: state.routes.length - 1
|
|
245
318
|
}
|
|
246
319
|
}, options);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
if (action.payload.key || action.payload.name) {
|
|
254
|
-
var _action$payload$path;
|
|
320
|
+
case 'POP_TO':
|
|
321
|
+
{
|
|
322
|
+
if (!state.routeNames.includes(action.payload.name)) {
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
255
325
|
|
|
256
326
|
// If the route already exists, navigate to that
|
|
257
327
|
let index = -1;
|
|
258
|
-
const getId =
|
|
259
|
-
action.payload.key === undefined && action.payload.name !== undefined ? options.routeGetIdList[action.payload.name] : undefined;
|
|
328
|
+
const getId = options.routeGetIdList[action.payload.name];
|
|
260
329
|
const id = getId === null || getId === void 0 ? void 0 : getId({
|
|
261
330
|
params: action.payload.params
|
|
262
331
|
});
|
|
263
|
-
|
|
264
332
|
if (id) {
|
|
265
333
|
index = state.routes.findIndex(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({
|
|
266
334
|
params: route.params
|
|
267
335
|
})));
|
|
268
|
-
} else if (state.routes[state.index].name === action.payload.name
|
|
336
|
+
} else if (state.routes[state.index].name === action.payload.name) {
|
|
269
337
|
index = state.index;
|
|
270
338
|
} else {
|
|
271
339
|
for (let i = state.routes.length - 1; i >= 0; i--) {
|
|
272
|
-
if (state.routes[i].name === action.payload.name
|
|
340
|
+
if (state.routes[i].name === action.payload.name) {
|
|
273
341
|
index = i;
|
|
274
342
|
break;
|
|
275
343
|
}
|
|
276
344
|
}
|
|
277
345
|
}
|
|
278
346
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
if (index === -1 && action.payload.name !== undefined) {
|
|
284
|
-
var _action$payload$key;
|
|
285
|
-
|
|
286
|
-
const routes = [...state.routes, {
|
|
287
|
-
key: (_action$payload$key = action.payload.key) !== null && _action$payload$key !== void 0 ? _action$payload$key : `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
|
|
347
|
+
// If the route doesn't exist, remove the current route and add the new one
|
|
348
|
+
if (index === -1) {
|
|
349
|
+
const routes = [...state.routes.slice(0, -1), {
|
|
350
|
+
key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
|
|
288
351
|
name: action.payload.name,
|
|
289
|
-
|
|
290
|
-
|
|
352
|
+
params: routeParamList[action.payload.name] !== undefined ? {
|
|
353
|
+
...routeParamList[action.payload.name],
|
|
291
354
|
...action.payload.params
|
|
292
355
|
} : action.payload.params
|
|
293
356
|
}];
|
|
294
|
-
return {
|
|
357
|
+
return {
|
|
358
|
+
...state,
|
|
295
359
|
routes,
|
|
296
360
|
index: routes.length - 1
|
|
297
361
|
};
|
|
298
362
|
}
|
|
299
|
-
|
|
300
363
|
const route = state.routes[index];
|
|
301
364
|
let params;
|
|
302
|
-
|
|
303
365
|
if (action.payload.merge) {
|
|
304
|
-
params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
|
|
366
|
+
params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
|
|
367
|
+
...routeParamList[route.name],
|
|
305
368
|
...route.params,
|
|
306
369
|
...action.payload.params
|
|
307
370
|
} : route.params;
|
|
308
371
|
} else {
|
|
309
|
-
params = routeParamList[route.name] !== undefined ? {
|
|
372
|
+
params = routeParamList[route.name] !== undefined ? {
|
|
373
|
+
...routeParamList[route.name],
|
|
310
374
|
...action.payload.params
|
|
311
375
|
} : action.payload.params;
|
|
312
376
|
}
|
|
313
|
-
|
|
314
|
-
|
|
377
|
+
return {
|
|
378
|
+
...state,
|
|
315
379
|
index,
|
|
316
|
-
routes: [...state.routes.slice(0, index), params !== route.params
|
|
317
|
-
|
|
380
|
+
routes: [...state.routes.slice(0, index), params !== route.params ? {
|
|
381
|
+
...route,
|
|
318
382
|
params
|
|
319
383
|
} : state.routes[index]]
|
|
320
384
|
};
|
|
321
385
|
}
|
|
322
|
-
|
|
323
|
-
return null;
|
|
324
|
-
|
|
325
386
|
case 'GO_BACK':
|
|
326
387
|
if (state.index > 0) {
|
|
327
388
|
return router.getStateForAction(state, {
|
|
@@ -333,14 +394,11 @@ function StackRouter(options) {
|
|
|
333
394
|
source: action.source
|
|
334
395
|
}, options);
|
|
335
396
|
}
|
|
336
|
-
|
|
337
397
|
return null;
|
|
338
|
-
|
|
339
398
|
default:
|
|
340
399
|
return _BaseRouter.default.getStateForAction(state, action);
|
|
341
400
|
}
|
|
342
401
|
},
|
|
343
|
-
|
|
344
402
|
actionCreators: StackActions
|
|
345
403
|
};
|
|
346
404
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StackActions","replace","name","params","type","payload","push","pop","count","popToTop","StackRouter","options","router","BaseRouter","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","nanoid","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","max","concat","path","merge","actionCreators"],"sources":["StackRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n NavigationState<ParamList> & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push<RouteName extends keyof ParamList>(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState<ParamListBase>,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route<string>)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route<string>[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["StackActions","replace","name","params","type","payload","push","pop","count","popToTop","popTo","merge","StackRouter","options","router","BaseRouter","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","nanoid","index","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","find","currentRoute","routeKey","path","max","concat","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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"}
|