@react-navigation/routers 8.0.0-alpha.5 → 8.0.0-alpha.7

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.
@@ -45,8 +45,50 @@ export const StackActions = {
45
45
  merge: options?.merge
46
46
  }
47
47
  };
48
+ },
49
+ retain(enable) {
50
+ return {
51
+ type: 'RETAIN',
52
+ payload: {
53
+ enable
54
+ }
55
+ };
48
56
  }
49
57
  };
58
+ function retainRoutes(previousState, nextState) {
59
+ if (!nextState.retainedRouteKeys.length) {
60
+ return nextState;
61
+ }
62
+ const retainedRouteKeySet = new Set(nextState.retainedRouteKeys);
63
+ const nextRouteKeySet = new Set(nextState.routes.map(route => route.key));
64
+ const retainedRoutes = getActiveRoutes(previousState).filter(route => retainedRouteKeySet.has(route.key) && !nextRouteKeySet.has(route.key));
65
+ if (!retainedRoutes.length) {
66
+ return nextState;
67
+ }
68
+ const removedRetainedRouteKeys = new Set(retainedRoutes.map(route => route.key));
69
+ return getStateWithRoutes(nextState, getActiveRoutes(nextState), getPreloadedRoutes(nextState), retainedRoutes.concat(getRetainedRoutes(nextState).filter(route => !removedRetainedRouteKeys.has(route.key))));
70
+ }
71
+ const getActiveRoutes = state => state.routes.slice(0, state.index + 1);
72
+ const getInactiveRoutes = state => state.routes.slice(state.index + 1);
73
+ const getPreloadedRoutes = state => {
74
+ const retainedRouteKeySet = new Set(state.retainedRouteKeys);
75
+ return getInactiveRoutes(state).filter(route => !retainedRouteKeySet.has(route.key));
76
+ };
77
+ const getRetainedRoutes = state => {
78
+ const retainedRouteKeySet = new Set(state.retainedRouteKeys);
79
+ return getInactiveRoutes(state).filter(route => retainedRouteKeySet.has(route.key));
80
+ };
81
+ const getStateWithRoutes = (state, activeRoutes, preloadedRoutes = getPreloadedRoutes(state), retainedRoutes = getRetainedRoutes(state)) => {
82
+ const routeKeySet = new Set(activeRoutes.map(route => route.key));
83
+ const retainedRouteKeySet = new Set(state.retainedRouteKeys);
84
+ const filteredRetainedRoutes = retainedRoutes.filter(route => !routeKeySet.has(route.key));
85
+ const filteredPreloadedRoutes = preloadedRoutes.filter(route => !retainedRouteKeySet.has(route.key) && !routeKeySet.has(route.key));
86
+ return {
87
+ ...state,
88
+ index: activeRoutes.length - 1,
89
+ routes: activeRoutes.concat(filteredRetainedRoutes, filteredPreloadedRoutes)
90
+ };
91
+ };
50
92
  export function StackRouter(options) {
51
93
  const router = {
52
94
  ...BaseRouter,
@@ -62,7 +104,7 @@ export function StackRouter(options) {
62
104
  key: `stack-${nanoid()}`,
63
105
  index: 0,
64
106
  routeNames,
65
- preloadedRoutes: [],
107
+ retainedRouteKeys: [],
66
108
  routes: [{
67
109
  key: `${initialRouteName}-${nanoid()}`,
68
110
  name: initialRouteName,
@@ -86,14 +128,6 @@ export function StackRouter(options) {
86
128
  ...route.params
87
129
  } : route.params
88
130
  }));
89
- const preloadedRoutes = state.preloadedRoutes?.filter(route => routeNames.includes(route.name)).map(route => ({
90
- ...route,
91
- key: route.key || `${route.name}-${nanoid()}`,
92
- params: routeParamList[route.name] !== undefined ? {
93
- ...routeParamList[route.name],
94
- ...route.params
95
- } : route.params
96
- })) ?? [];
97
131
  if (routes.length === 0) {
98
132
  const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];
99
133
  routes.push({
@@ -102,14 +136,17 @@ export function StackRouter(options) {
102
136
  params: routeParamList[initialRouteName]
103
137
  });
104
138
  }
139
+ const index = Math.min(Math.max(state.index ?? routes.length - 1, 0), routes.length - 1);
140
+ const routeKeys = new Set(routes.map(route => route.key));
141
+ const retainedRouteKeys = state.retainedRouteKeys?.filter(key => routeKeys.has(key)) ?? [];
105
142
  return {
106
143
  stale: false,
107
144
  type: 'stack',
108
145
  key: `stack-${nanoid()}`,
109
- index: routes.length - 1,
146
+ index,
110
147
  routeNames,
111
148
  routes,
112
- preloadedRoutes
149
+ retainedRouteKeys
113
150
  };
114
151
  },
115
152
  getStateForRouteNamesChange(state, {
@@ -117,7 +154,9 @@ export function StackRouter(options) {
117
154
  routeParamList,
118
155
  routeKeyChanges
119
156
  }) {
120
- const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
157
+ const routes = getActiveRoutes(state).filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
158
+ const preloadedRoutes = getPreloadedRoutes(state).filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
159
+ const retainedRoutes = getRetainedRoutes(state).filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
121
160
  if (routes.length === 0) {
122
161
  const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
123
162
  routes.push({
@@ -126,32 +165,33 @@ export function StackRouter(options) {
126
165
  params: routeParamList[initialRouteName]
127
166
  });
128
167
  }
129
- return {
168
+ const routeKeys = new Set([...routes, ...preloadedRoutes, ...retainedRoutes].map(route => route.key));
169
+ const retainedRouteKeys = state.retainedRouteKeys.filter(key => routeKeys.has(key));
170
+ return getStateWithRoutes({
130
171
  ...state,
131
172
  routeNames,
132
- routes,
133
- index: Math.min(state.index, routes.length - 1)
134
- };
173
+ retainedRouteKeys
174
+ }, routes, preloadedRoutes, retainedRoutes);
135
175
  },
136
176
  getStateForRouteFocus(state, key) {
137
- const index = state.routes.findIndex(r => r.key === key);
177
+ const routes = getActiveRoutes(state);
178
+ const index = routes.findIndex(r => r.key === key);
138
179
  if (index === -1 || index === state.index) {
139
180
  return state;
140
181
  }
141
- return {
142
- ...state,
143
- index,
144
- routes: state.routes.slice(0, index + 1)
145
- };
182
+ return retainRoutes(state, getStateWithRoutes(state, routes.slice(0, index + 1)));
146
183
  },
147
184
  getStateForAction(state, action, options) {
148
185
  const {
149
186
  routeParamList
150
187
  } = options;
188
+ const routes = getActiveRoutes(state);
189
+ const preloadedRoutes = getPreloadedRoutes(state);
190
+ const inactiveRoutes = getInactiveRoutes(state);
151
191
  switch (action.type) {
152
192
  case 'REPLACE':
153
193
  {
154
- const currentIndex = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
194
+ const currentIndex = action.target === state.key && action.source ? routes.findIndex(r => r.key === action.source) : state.index;
155
195
  if (currentIndex === -1) {
156
196
  return null;
157
197
  }
@@ -163,8 +203,8 @@ export function StackRouter(options) {
163
203
  params: action.payload.params
164
204
  });
165
205
 
166
- // Re-use preloaded route if available
167
- let route = state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({
206
+ // Re-use inactive route if available
207
+ let route = inactiveRoutes.find(route => route.name === action.payload.name && id === getId?.({
168
208
  params: route.params
169
209
  }));
170
210
  if (!route) {
@@ -173,11 +213,7 @@ export function StackRouter(options) {
173
213
  routeParamList
174
214
  });
175
215
  }
176
- return {
177
- ...state,
178
- routes: state.routes.map((r, i) => i === currentIndex ? route : r),
179
- preloadedRoutes: state.preloadedRoutes.filter(r => r.key !== route.key)
180
- };
216
+ return retainRoutes(state, getStateWithRoutes(state, routes.map((r, i) => i === currentIndex ? route : r), preloadedRoutes.filter(r => r.key !== route.key)));
181
217
  }
182
218
  case 'PUSH':
183
219
  case 'NAVIGATE':
@@ -191,15 +227,15 @@ export function StackRouter(options) {
191
227
  });
192
228
  let route;
193
229
  if (action.type === 'NAVIGATE') {
194
- const currentRoute = state.routes[state.index];
230
+ const currentRoute = routes[state.index];
195
231
  if (id !== undefined) {
196
232
  if (currentRoute.name === action.payload.name && id === getId?.({
197
233
  params: currentRoute.params
198
234
  })) {
199
235
  route = currentRoute;
200
236
  } else if (action.payload.pop) {
201
- for (let i = state.routes.length - 1; i >= 0; i--) {
202
- const r = state.routes[i];
237
+ for (let i = routes.length - 1; i >= 0; i--) {
238
+ const r = routes[i];
203
239
  if (r.name !== action.payload.name) {
204
240
  continue;
205
241
  }
@@ -233,12 +269,12 @@ export function StackRouter(options) {
233
269
  if (action.payload.name === currentRoute.name) {
234
270
  route = currentRoute;
235
271
  } else if (action.payload.pop) {
236
- route = state.routes.findLast(route => route.name === action.payload.name);
272
+ route = routes.findLast(route => route.name === action.payload.name);
237
273
  }
238
274
  }
239
275
  }
240
276
  if (!route) {
241
- route = state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({
277
+ route = inactiveRoutes.find(route => route.name === action.payload.name && id === getId?.({
242
278
  params: route.params
243
279
  }));
244
280
  }
@@ -255,50 +291,52 @@ export function StackRouter(options) {
255
291
  routeParamList
256
292
  });
257
293
  }
258
- let routes;
294
+ let nextRoutes;
259
295
  if (route) {
260
296
  if (action.type === 'NAVIGATE' && action.payload.pop) {
261
- routes = [];
297
+ nextRoutes = [];
262
298
 
263
299
  // Get all routes until the matching one
264
- for (const r of state.routes) {
300
+ for (const r of routes) {
265
301
  if (r.key === route.key) {
266
- routes.push({
302
+ nextRoutes.push({
267
303
  ...route,
268
304
  path: action.payload.path !== undefined ? action.payload.path : route.path,
269
305
  params
270
306
  });
271
307
  break;
272
308
  }
273
- routes.push(r);
309
+ nextRoutes.push(r);
310
+ }
311
+ if (!nextRoutes.some(r => r.key === route.key)) {
312
+ nextRoutes.push({
313
+ ...route,
314
+ path: action.payload.path !== undefined ? action.payload.path : route.path,
315
+ params
316
+ });
274
317
  }
275
318
  } else {
276
- routes = state.routes.filter(r => r.key !== route.key);
277
- routes.push({
319
+ nextRoutes = routes.filter(r => r.key !== route.key);
320
+ nextRoutes.push({
278
321
  ...route,
279
322
  path: action.type === 'NAVIGATE' && action.payload.path !== undefined ? action.payload.path : route.path,
280
323
  params
281
324
  });
282
325
  }
283
326
  } else {
284
- routes = [...state.routes, {
327
+ nextRoutes = [...routes, {
285
328
  key: `${action.payload.name}-${nanoid()}`,
286
329
  name: action.payload.name,
287
330
  path: action.type === 'NAVIGATE' ? action.payload.path : undefined,
288
331
  params
289
332
  }];
290
333
  }
291
- return {
292
- ...state,
293
- index: routes.length - 1,
294
- preloadedRoutes: state.preloadedRoutes.filter(route => routes[routes.length - 1].key !== route.key),
295
- routes
296
- };
334
+ return retainRoutes(state, getStateWithRoutes(state, nextRoutes, preloadedRoutes.filter(route => nextRoutes[nextRoutes.length - 1].key !== route.key)));
297
335
  }
298
336
  case 'POP':
299
337
  {
300
- let currentIndex = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
301
- let route = state.routes[currentIndex];
338
+ let currentIndex = action.target === state.key && action.source ? routes.findIndex(r => r.key === action.source) : state.index;
339
+ let route = routes[currentIndex];
302
340
 
303
341
  /**
304
342
  * When popping entries,
@@ -311,42 +349,38 @@ export function StackRouter(options) {
311
349
  */
312
350
  if (route.history?.length || currentIndex > 0) {
313
351
  let count = action.payload.count;
314
- let routes = state.routes;
352
+ let nextRoutes = routes;
315
353
  while (count > 0 && (route.history?.length || currentIndex > 0)) {
316
354
  if (route.history?.length) {
317
- routes = [...routes];
355
+ nextRoutes = [...nextRoutes];
318
356
  const end = Math.min(count, route.history.length);
319
357
  const last = route.history.at(-end);
320
358
  const history = route.history.slice(0, -end);
321
359
  const removed = route.history.length - history.length;
322
360
  count = count - removed;
323
- routes[currentIndex] = {
361
+ nextRoutes[currentIndex] = {
324
362
  ...route,
325
363
  params: last?.type === 'params' ? last.params : route.params,
326
364
  history
327
365
  };
328
366
  }
329
367
  if (currentIndex > 0 && count > 0) {
330
- const length = routes.length;
368
+ const length = nextRoutes.length;
331
369
  const end = Math.max(currentIndex - count + 1, 1);
332
- routes = routes.slice(0, end).concat(routes.slice(currentIndex + 1));
333
- const removed = length - routes.length;
370
+ nextRoutes = nextRoutes.slice(0, end).concat(nextRoutes.slice(currentIndex + 1));
371
+ const removed = length - nextRoutes.length;
334
372
  count = count - removed;
335
- currentIndex = routes.length - 1;
336
- route = routes[currentIndex];
373
+ currentIndex = nextRoutes.length - 1;
374
+ route = nextRoutes[currentIndex];
337
375
  }
338
376
  }
339
- return {
340
- ...state,
341
- index: routes.length - 1,
342
- routes
343
- };
377
+ return retainRoutes(state, getStateWithRoutes(state, nextRoutes));
344
378
  }
345
379
  return null;
346
380
  }
347
381
  case 'POP_TO_TOP':
348
382
  {
349
- let route = state.routes[0];
383
+ let route = routes[0];
350
384
  if (state.index > 0 || route.history?.length) {
351
385
  if (route.history?.length) {
352
386
  route = {
@@ -354,17 +388,13 @@ export function StackRouter(options) {
354
388
  history: undefined
355
389
  };
356
390
  }
357
- return {
358
- ...state,
359
- index: 0,
360
- routes: [route]
361
- };
391
+ return retainRoutes(state, getStateWithRoutes(state, [route]));
362
392
  }
363
393
  return null;
364
394
  }
365
395
  case 'POP_TO':
366
396
  {
367
- const currentIndex = action.target === state.key && action.source ? state.routes.findLastIndex(r => r.key === action.source) : state.index;
397
+ const currentIndex = action.target === state.key && action.source ? routes.findLastIndex(r => r.key === action.source) : state.index;
368
398
  if (currentIndex === -1) {
369
399
  return null;
370
400
  }
@@ -381,7 +411,7 @@ export function StackRouter(options) {
381
411
  });
382
412
  if (id !== undefined) {
383
413
  for (let i = currentIndex; i >= 0; i--) {
384
- const r = state.routes[i];
414
+ const r = routes[i];
385
415
  if (r.name !== action.payload.name) {
386
416
  continue;
387
417
  }
@@ -406,11 +436,11 @@ export function StackRouter(options) {
406
436
  }
407
437
  }
408
438
  }
409
- } else if (state.routes[currentIndex].name === action.payload.name) {
439
+ } else if (routes[currentIndex].name === action.payload.name) {
410
440
  index = currentIndex;
411
441
  } else {
412
442
  for (let i = currentIndex; i >= 0; i--) {
413
- if (state.routes[i].name === action.payload.name) {
443
+ if (routes[i].name === action.payload.name) {
414
444
  index = i;
415
445
  break;
416
446
  }
@@ -419,8 +449,8 @@ export function StackRouter(options) {
419
449
 
420
450
  // If the route doesn't exist, remove the current route and add the new one
421
451
  if (index === -1) {
422
- // Re-use preloaded route if available
423
- let route = state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({
452
+ // Re-use inactive route if available
453
+ let route = inactiveRoutes.find(route => route.name === action.payload.name && id === getId?.({
424
454
  params: route.params
425
455
  }));
426
456
  if (!route) {
@@ -429,15 +459,10 @@ export function StackRouter(options) {
429
459
  routeParamList
430
460
  });
431
461
  }
432
- const routes = state.routes.slice(0, currentIndex).concat(route);
433
- return {
434
- ...state,
435
- index: routes.length - 1,
436
- routes,
437
- preloadedRoutes: state.preloadedRoutes.filter(r => r.key !== route.key)
438
- };
462
+ const nextRoutes = routes.slice(0, currentIndex).concat(route);
463
+ return retainRoutes(state, getStateWithRoutes(state, nextRoutes, preloadedRoutes.filter(r => r.key !== route.key)));
439
464
  }
440
- const route = state.routes[index];
465
+ const route = routes[index];
441
466
  let baseParams = route.params;
442
467
  let history = route.history;
443
468
  if (historyIndex !== undefined && route.history) {
@@ -457,18 +482,14 @@ export function StackRouter(options) {
457
482
  routeParamList
458
483
  });
459
484
  }
460
- return {
461
- ...state,
462
- index,
463
- routes: [...state.routes.slice(0, index), params !== baseParams || historyIndex !== undefined ? {
464
- ...route,
465
- params,
466
- history
467
- } : state.routes[index]]
468
- };
485
+ return retainRoutes(state, getStateWithRoutes(state, [...routes.slice(0, index), params !== baseParams || historyIndex !== undefined ? {
486
+ ...route,
487
+ params,
488
+ history
489
+ } : routes[index]]));
469
490
  }
470
491
  case 'GO_BACK':
471
- if (state.index > 0 || state.routes[state.index].history?.length) {
492
+ if (state.index > 0 || routes[state.index].history?.length) {
472
493
  return router.getStateForAction(state, {
473
494
  type: 'POP',
474
495
  payload: {
@@ -479,6 +500,29 @@ export function StackRouter(options) {
479
500
  }, options);
480
501
  }
481
502
  return null;
503
+ case 'RETAIN':
504
+ {
505
+ const routeKey = action.source ?? routes[state.index].key;
506
+ if (!state.routes.some(route => route.key === routeKey)) {
507
+ return null;
508
+ }
509
+ if (action.payload.enable) {
510
+ if (state.retainedRouteKeys.includes(routeKey)) {
511
+ return state;
512
+ }
513
+ return {
514
+ ...state,
515
+ retainedRouteKeys: [...state.retainedRouteKeys, routeKey]
516
+ };
517
+ }
518
+ if (!state.retainedRouteKeys.includes(routeKey)) {
519
+ return state;
520
+ }
521
+ return getStateWithRoutes({
522
+ ...state,
523
+ retainedRouteKeys: state.retainedRouteKeys.filter(key => key !== routeKey)
524
+ }, routes, preloadedRoutes.filter(route => route.key !== routeKey));
525
+ }
482
526
  case 'PRELOAD':
483
527
  {
484
528
  const getId = options.routeGetIdList[action.payload.name];
@@ -491,53 +535,41 @@ export function StackRouter(options) {
491
535
  });
492
536
  let route;
493
537
  if (action.payload.reuse) {
494
- route = state.preloadedRoutes.findLast(route => route.name === action.payload.name && (id === undefined || id === getId?.({
538
+ route = preloadedRoutes.findLast(route => route.name === action.payload.name && (id === undefined || id === getId?.({
495
539
  params: route.params
496
540
  })));
497
541
  if (route) {
498
- return {
499
- ...state,
500
- preloadedRoutes: state.preloadedRoutes.map(r => r.key === route?.key && r.params !== params ? {
501
- ...r,
502
- params
503
- } : r)
504
- };
542
+ return getStateWithRoutes(state, routes, preloadedRoutes.map(r => r.key === route?.key && r.params !== params ? {
543
+ ...r,
544
+ params
545
+ } : r));
505
546
  }
506
547
  }
507
548
  if (id !== undefined) {
508
- route = state.routes.findLast(route => route.name === action.payload.name && id === getId?.({
549
+ route = routes.findLast(route => route.name === action.payload.name && id === getId?.({
509
550
  params: route.params
510
551
  }));
511
552
  } else if (action.payload.reuse) {
512
- route = state.routes.findLast(route => route.name === action.payload.name);
553
+ route = routes.findLast(route => route.name === action.payload.name);
513
554
  }
514
555
  if (route) {
515
- return {
516
- ...state,
517
- routes: state.routes.map(r => r.key === route.key && r.params !== params ? {
518
- ...r,
519
- params
520
- } : r)
521
- };
556
+ return getStateWithRoutes(state, routes.map(r => r.key === route.key && r.params !== params ? {
557
+ ...r,
558
+ params
559
+ } : r), preloadedRoutes);
522
560
  } else {
523
- return {
524
- ...state,
525
- preloadedRoutes: state.preloadedRoutes.filter(r => r.name !== action.payload.name || id !== getId?.({
526
- params: r.params
527
- })).concat(createRouteFromAction({
528
- action,
529
- routeParamList
530
- }))
531
- };
561
+ return getStateWithRoutes(state, routes, preloadedRoutes.filter(r => r.name !== action.payload.name || id !== getId?.({
562
+ params: r.params
563
+ })).concat(createRouteFromAction({
564
+ action,
565
+ routeParamList
566
+ })));
532
567
  }
533
568
  }
534
569
  default:
535
570
  return BaseRouter.getStateForAction(state, action);
536
571
  }
537
572
  },
538
- getRoutesFromState(state) {
539
- return [...state.routes, ...state.preloadedRoutes];
540
- },
541
573
  actionCreators: StackActions
542
574
  };
543
575
  return router;
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","BaseRouter","createParamsFromAction","createRouteFromAction","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","popTo","options","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","currentRoute","history","j","findLast","path","end","last","at","removed","max","concat","findLastIndex","historyIndex","baseParams","reuse","getRoutesFromState","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","merge","retain","enable","retainRoutes","previousState","nextState","retainedRouteKeys","length","retainedRouteKeySet","Set","nextRouteKeySet","routes","map","route","key","retainedRoutes","getActiveRoutes","filter","has","removedRetainedRouteKeys","getStateWithRoutes","getPreloadedRoutes","concat","getRetainedRoutes","state","slice","index","getInactiveRoutes","activeRoutes","preloadedRoutes","routeKeySet","filteredRetainedRoutes","filteredPreloadedRoutes","StackRouter","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","getRehydratedState","partialState","Math","min","max","routeKeys","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","findIndex","r","getStateForAction","action","inactiveRoutes","currentIndex","target","source","getId","routeGetIdList","id","find","i","currentRoute","history","j","findLast","nextRoutes","path","some","end","last","at","removed","findLastIndex","historyIndex","baseParams","routeKey","reuse","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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","ignoreList":[]}