@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.
Files changed (46) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/BaseRouter.js +11 -18
  3. package/lib/commonjs/BaseRouter.js.map +1 -1
  4. package/lib/commonjs/CommonActions.js +23 -8
  5. package/lib/commonjs/CommonActions.js.map +1 -1
  6. package/lib/commonjs/DrawerRouter.js +13 -45
  7. package/lib/commonjs/DrawerRouter.js.map +1 -1
  8. package/lib/commonjs/StackRouter.js +155 -97
  9. package/lib/commonjs/StackRouter.js.map +1 -1
  10. package/lib/commonjs/TabRouter.js +28 -69
  11. package/lib/commonjs/TabRouter.js.map +1 -1
  12. package/lib/commonjs/index.js +0 -11
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/types.js.map +1 -1
  15. package/lib/module/BaseRouter.js +11 -17
  16. package/lib/module/BaseRouter.js.map +1 -1
  17. package/lib/module/CommonActions.js +22 -4
  18. package/lib/module/CommonActions.js.map +1 -1
  19. package/lib/module/DrawerRouter.js +13 -39
  20. package/lib/module/DrawerRouter.js.map +1 -1
  21. package/lib/module/StackRouter.js +155 -92
  22. package/lib/module/StackRouter.js.map +1 -1
  23. package/lib/module/TabRouter.js +28 -65
  24. package/lib/module/TabRouter.js.map +1 -1
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/types.js.map +1 -1
  27. package/lib/typescript/src/BaseRouter.d.ts +1 -0
  28. package/lib/typescript/src/BaseRouter.d.ts.map +1 -0
  29. package/lib/typescript/src/CommonActions.d.ts +14 -13
  30. package/lib/typescript/src/CommonActions.d.ts.map +1 -0
  31. package/lib/typescript/src/DrawerRouter.d.ts +6 -5
  32. package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
  33. package/lib/typescript/src/StackRouter.d.ts +24 -5
  34. package/lib/typescript/src/StackRouter.d.ts.map +1 -0
  35. package/lib/typescript/src/TabRouter.d.ts +6 -5
  36. package/lib/typescript/src/TabRouter.d.ts.map +1 -0
  37. package/lib/typescript/src/index.d.ts +1 -0
  38. package/lib/typescript/src/index.d.ts.map +1 -0
  39. package/lib/typescript/src/types.d.ts +15 -14
  40. package/lib/typescript/src/types.d.ts.map +1 -0
  41. package/package.json +5 -5
  42. package/src/BaseRouter.tsx +1 -1
  43. package/src/CommonActions.tsx +48 -28
  44. package/src/DrawerRouter.tsx +2 -1
  45. package/src/StackRouter.tsx +270 -147
  46. 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 = { ..._BaseRouter.default,
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
- const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({ ...route,
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 ? { ...routeParamList[route.name],
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
- return { ...state,
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
- return { ...state,
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
- return { ...state,
164
+ return {
165
+ ...state,
178
166
  routes: state.routes.map((route, i) => i === index ? {
179
- key: key !== undefined ? key : `${name}-${(0, _nonSecure.nanoid)()}`,
167
+ key: `${name}-${(0, _nonSecure.nanoid)()}`,
180
168
  name,
181
- params: routeParamList[name] !== undefined ? { ...routeParamList[name],
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
- if (state.routeNames.includes(action.payload.name)) {
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
- const route = id ? state.routes.find(route => route.name === action.payload.name && id === (getId === null || getId === void 0 ? void 0 : getId({
195
- params: route.params
196
- }))) : undefined;
197
- let routes;
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
- routes = state.routes.filter(r => r.key !== route.key);
201
- routes.push({ ...route,
202
- params: routeParamList[action.payload.name] !== undefined ? { ...routeParamList[action.payload.name],
203
- ...action.payload.params
204
- } : action.payload.params
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
- params: routeParamList[action.payload.name] !== undefined ? { ...routeParamList[action.payload.name],
211
- ...action.payload.params
212
- } : action.payload.params
225
+ path: action.type === 'NAVIGATE' ? action.payload.path : undefined,
226
+ params
213
227
  }];
214
228
  }
215
-
216
- return { ...state,
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
- return null;
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 { ...state,
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
- case 'NAVIGATE':
249
- if (action.payload.name !== undefined && !state.routeNames.includes(action.payload.name)) {
250
- return null;
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 = // `getId` and `key` can't be used together
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 && action.payload.key === undefined || state.routes[state.index].key === action.payload.key) {
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 && action.payload.key === undefined || state.routes[i].key === action.payload.key) {
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
- if (index === -1 && action.payload.key && action.payload.name === undefined) {
280
- return null;
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
- path: action.payload.path,
290
- params: routeParamList[action.payload.name] !== undefined ? { ...routeParamList[action.payload.name],
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 { ...state,
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 ? { ...routeParamList[route.name],
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 ? { ...routeParamList[route.name],
372
+ params = routeParamList[route.name] !== undefined ? {
373
+ ...routeParamList[route.name],
310
374
  ...action.payload.params
311
375
  } : action.payload.params;
312
376
  }
313
-
314
- return { ...state,
377
+ return {
378
+ ...state,
315
379
  index,
316
- routes: [...state.routes.slice(0, index), params !== route.params || action.payload.path && action.payload.path !== route.path ? { ...route,
317
- path: (_action$payload$path = action.payload.path) !== null && _action$payload$path !== void 0 ? _action$payload$path : route.path,
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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"}