@react-navigation/routers 8.0.0-alpha.4 → 8.0.0-alpha.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/module/CommonActions.js +3 -2
- package/lib/module/CommonActions.js.map +1 -1
- package/lib/module/StackRouter.js +96 -28
- package/lib/module/StackRouter.js.map +1 -1
- package/lib/typescript/src/CommonActions.d.ts +5 -1
- package/lib/typescript/src/CommonActions.d.ts.map +1 -1
- package/lib/typescript/src/StackRouter.d.ts +29 -0
- package/lib/typescript/src/StackRouter.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/CommonActions.tsx +9 -2
- package/src/StackRouter.tsx +165 -24
|
@@ -58,12 +58,13 @@ export function pushParams(params) {
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
export function preload(name, params) {
|
|
61
|
+
export function preload(name, params, options) {
|
|
62
62
|
return {
|
|
63
63
|
type: 'PRELOAD',
|
|
64
64
|
payload: {
|
|
65
65
|
name,
|
|
66
|
-
params
|
|
66
|
+
params,
|
|
67
|
+
reuse: options?.reuse
|
|
67
68
|
}
|
|
68
69
|
};
|
|
69
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["goBack","type","navigate","args","name","params","options","payload","merge","pop","Error","reset","state","setParams","replaceParams","pushParams","preload"],"sourceRoot":"../../src","sources":["CommonActions.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["goBack","type","navigate","args","name","params","options","payload","merge","pop","Error","reset","state","setParams","replaceParams","pushParams","preload","reuse"],"sourceRoot":"../../src","sources":["CommonActions.tsx"],"mappings":";;AA4EA,OAAO,SAASA,MAAMA,CAAA,EAAW;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAU,CAAC;AAC5B;AAqBA,OAAO,SAASC,QAAQA,CAAC,GAAGC,IAAS,EAAU;EAC7C,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IAC/B,MAAM,CAACC,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC,GAAGH,IAAI;IAEpC,OAAO;MACLF,IAAI,EAAE,UAAU;MAChBM,OAAO,EAAE;QACPH,IAAI;QACJC,MAAM;QACNG,KAAK,EAAEF,OAAO,EAAEE,KAAK;QACrBC,GAAG,EAAEH,OAAO,EAAEG;MAChB;IACF,CAAC;EACH,CAAC,MAAM;IACL,MAAMF,OAAO,GAAGJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7B,IAAI,EAAE,MAAM,IAAII,OAAO,CAAC,EAAE;MACxB,MAAM,IAAIG,KAAK,CACb,8JACF,CAAC;IACH;IAEA,OAAO;MAAET,IAAI,EAAE,UAAU;MAAEM;IAAQ,CAAC;EACtC;AACF;AAEA,OAAO,SAASI,KAAKA,CAACC,KAAiB,EAAE;EACvC,OAAO;IAAEX,IAAI,EAAE,OAAO;IAAEM,OAAO,EAAEK;EAAM,CAAC;AAC1C;AAEA,OAAO,SAASC,SAASA,CAACR,MAAc,EAAE;EACxC,OAAO;IACLJ,IAAI,EAAE,YAAY;IAClBM,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASS,aAAaA,CAACT,MAAc,EAAE;EAC5C,OAAO;IACLJ,IAAI,EAAE,gBAAgB;IACtBM,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASU,UAAUA,CAACV,MAAc,EAAE;EACzC,OAAO;IACLJ,IAAI,EAAE,aAAa;IACnBM,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASW,OAAOA,CACrBZ,IAAY,EACZC,MAA2B,EAC3BC,OAEC,EACD;EACA,OAAO;IACLL,IAAI,EAAE,SAAS;IACfM,OAAO,EAAE;MAAEH,IAAI;MAAEC,MAAM;MAAEY,KAAK,EAAEX,OAAO,EAAEW;IAAM;EACjD,CAAC;AACH","ignoreList":[]}
|
|
@@ -45,8 +45,32 @@ 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 = previousState.routes.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 {
|
|
70
|
+
...nextState,
|
|
71
|
+
preloadedRoutes: retainedRoutes.concat(nextState.preloadedRoutes.filter(route => !removedRetainedRouteKeys.has(route.key)))
|
|
72
|
+
};
|
|
73
|
+
}
|
|
50
74
|
export function StackRouter(options) {
|
|
51
75
|
const router = {
|
|
52
76
|
...BaseRouter,
|
|
@@ -63,6 +87,7 @@ export function StackRouter(options) {
|
|
|
63
87
|
index: 0,
|
|
64
88
|
routeNames,
|
|
65
89
|
preloadedRoutes: [],
|
|
90
|
+
retainedRouteKeys: [],
|
|
66
91
|
routes: [{
|
|
67
92
|
key: `${initialRouteName}-${nanoid()}`,
|
|
68
93
|
name: initialRouteName,
|
|
@@ -94,6 +119,7 @@ export function StackRouter(options) {
|
|
|
94
119
|
...route.params
|
|
95
120
|
} : route.params
|
|
96
121
|
})) ?? [];
|
|
122
|
+
const retainedRouteKeys = state.retainedRouteKeys?.filter(key => [...routes, ...preloadedRoutes].some(route => route.key === key)) ?? [];
|
|
97
123
|
if (routes.length === 0) {
|
|
98
124
|
const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];
|
|
99
125
|
routes.push({
|
|
@@ -109,7 +135,8 @@ export function StackRouter(options) {
|
|
|
109
135
|
index: routes.length - 1,
|
|
110
136
|
routeNames,
|
|
111
137
|
routes,
|
|
112
|
-
preloadedRoutes
|
|
138
|
+
preloadedRoutes,
|
|
139
|
+
retainedRouteKeys
|
|
113
140
|
};
|
|
114
141
|
},
|
|
115
142
|
getStateForRouteNamesChange(state, {
|
|
@@ -118,6 +145,7 @@ export function StackRouter(options) {
|
|
|
118
145
|
routeKeyChanges
|
|
119
146
|
}) {
|
|
120
147
|
const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
|
|
148
|
+
const preloadedRoutes = state.preloadedRoutes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
|
|
121
149
|
if (routes.length === 0) {
|
|
122
150
|
const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
|
|
123
151
|
routes.push({
|
|
@@ -126,10 +154,14 @@ export function StackRouter(options) {
|
|
|
126
154
|
params: routeParamList[initialRouteName]
|
|
127
155
|
});
|
|
128
156
|
}
|
|
157
|
+
const routeKeys = new Set([...routes, ...preloadedRoutes].map(route => route.key));
|
|
158
|
+
const retainedRouteKeys = state.retainedRouteKeys.filter(key => routeKeys.has(key));
|
|
129
159
|
return {
|
|
130
160
|
...state,
|
|
131
161
|
routeNames,
|
|
132
162
|
routes,
|
|
163
|
+
preloadedRoutes,
|
|
164
|
+
retainedRouteKeys,
|
|
133
165
|
index: Math.min(state.index, routes.length - 1)
|
|
134
166
|
};
|
|
135
167
|
},
|
|
@@ -138,11 +170,11 @@ export function StackRouter(options) {
|
|
|
138
170
|
if (index === -1 || index === state.index) {
|
|
139
171
|
return state;
|
|
140
172
|
}
|
|
141
|
-
return {
|
|
173
|
+
return retainRoutes(state, {
|
|
142
174
|
...state,
|
|
143
175
|
index,
|
|
144
176
|
routes: state.routes.slice(0, index + 1)
|
|
145
|
-
};
|
|
177
|
+
});
|
|
146
178
|
},
|
|
147
179
|
getStateForAction(state, action, options) {
|
|
148
180
|
const {
|
|
@@ -173,11 +205,11 @@ export function StackRouter(options) {
|
|
|
173
205
|
routeParamList
|
|
174
206
|
});
|
|
175
207
|
}
|
|
176
|
-
return {
|
|
208
|
+
return retainRoutes(state, {
|
|
177
209
|
...state,
|
|
178
210
|
routes: state.routes.map((r, i) => i === currentIndex ? route : r),
|
|
179
211
|
preloadedRoutes: state.preloadedRoutes.filter(r => r.key !== route.key)
|
|
180
|
-
};
|
|
212
|
+
});
|
|
181
213
|
}
|
|
182
214
|
case 'PUSH':
|
|
183
215
|
case 'NAVIGATE':
|
|
@@ -288,12 +320,12 @@ export function StackRouter(options) {
|
|
|
288
320
|
params
|
|
289
321
|
}];
|
|
290
322
|
}
|
|
291
|
-
return {
|
|
323
|
+
return retainRoutes(state, {
|
|
292
324
|
...state,
|
|
293
325
|
index: routes.length - 1,
|
|
294
326
|
preloadedRoutes: state.preloadedRoutes.filter(route => routes[routes.length - 1].key !== route.key),
|
|
295
327
|
routes
|
|
296
|
-
};
|
|
328
|
+
});
|
|
297
329
|
}
|
|
298
330
|
case 'POP':
|
|
299
331
|
{
|
|
@@ -336,11 +368,11 @@ export function StackRouter(options) {
|
|
|
336
368
|
route = routes[currentIndex];
|
|
337
369
|
}
|
|
338
370
|
}
|
|
339
|
-
return {
|
|
371
|
+
return retainRoutes(state, {
|
|
340
372
|
...state,
|
|
341
373
|
index: routes.length - 1,
|
|
342
374
|
routes
|
|
343
|
-
};
|
|
375
|
+
});
|
|
344
376
|
}
|
|
345
377
|
return null;
|
|
346
378
|
}
|
|
@@ -354,11 +386,11 @@ export function StackRouter(options) {
|
|
|
354
386
|
history: undefined
|
|
355
387
|
};
|
|
356
388
|
}
|
|
357
|
-
return {
|
|
389
|
+
return retainRoutes(state, {
|
|
358
390
|
...state,
|
|
359
391
|
index: 0,
|
|
360
392
|
routes: [route]
|
|
361
|
-
};
|
|
393
|
+
});
|
|
362
394
|
}
|
|
363
395
|
return null;
|
|
364
396
|
}
|
|
@@ -430,12 +462,12 @@ export function StackRouter(options) {
|
|
|
430
462
|
});
|
|
431
463
|
}
|
|
432
464
|
const routes = state.routes.slice(0, currentIndex).concat(route);
|
|
433
|
-
return {
|
|
465
|
+
return retainRoutes(state, {
|
|
434
466
|
...state,
|
|
435
467
|
index: routes.length - 1,
|
|
436
468
|
routes,
|
|
437
469
|
preloadedRoutes: state.preloadedRoutes.filter(r => r.key !== route.key)
|
|
438
|
-
};
|
|
470
|
+
});
|
|
439
471
|
}
|
|
440
472
|
const route = state.routes[index];
|
|
441
473
|
let baseParams = route.params;
|
|
@@ -457,7 +489,7 @@ export function StackRouter(options) {
|
|
|
457
489
|
routeParamList
|
|
458
490
|
});
|
|
459
491
|
}
|
|
460
|
-
return {
|
|
492
|
+
return retainRoutes(state, {
|
|
461
493
|
...state,
|
|
462
494
|
index,
|
|
463
495
|
routes: [...state.routes.slice(0, index), params !== baseParams || historyIndex !== undefined ? {
|
|
@@ -465,7 +497,7 @@ export function StackRouter(options) {
|
|
|
465
497
|
params,
|
|
466
498
|
history
|
|
467
499
|
} : state.routes[index]]
|
|
468
|
-
};
|
|
500
|
+
});
|
|
469
501
|
}
|
|
470
502
|
case 'GO_BACK':
|
|
471
503
|
if (state.index > 0 || state.routes[state.index].history?.length) {
|
|
@@ -479,33 +511,69 @@ export function StackRouter(options) {
|
|
|
479
511
|
}, options);
|
|
480
512
|
}
|
|
481
513
|
return null;
|
|
514
|
+
case 'RETAIN':
|
|
515
|
+
{
|
|
516
|
+
const routeKey = action.source ?? state.routes[state.index].key;
|
|
517
|
+
if (!state.routes.some(route => route.key === routeKey) && !state.preloadedRoutes.some(route => route.key === routeKey)) {
|
|
518
|
+
return null;
|
|
519
|
+
}
|
|
520
|
+
if (action.payload.enable) {
|
|
521
|
+
if (state.retainedRouteKeys.includes(routeKey)) {
|
|
522
|
+
return state;
|
|
523
|
+
}
|
|
524
|
+
return {
|
|
525
|
+
...state,
|
|
526
|
+
retainedRouteKeys: [...state.retainedRouteKeys, routeKey]
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
if (!state.retainedRouteKeys.includes(routeKey)) {
|
|
530
|
+
return state;
|
|
531
|
+
}
|
|
532
|
+
return {
|
|
533
|
+
...state,
|
|
534
|
+
preloadedRoutes: state.preloadedRoutes.filter(route => route.key !== routeKey),
|
|
535
|
+
retainedRouteKeys: state.retainedRouteKeys.filter(key => key !== routeKey)
|
|
536
|
+
};
|
|
537
|
+
}
|
|
482
538
|
case 'PRELOAD':
|
|
483
539
|
{
|
|
484
540
|
const getId = options.routeGetIdList[action.payload.name];
|
|
485
541
|
const id = getId?.({
|
|
486
542
|
params: action.payload.params
|
|
487
543
|
});
|
|
544
|
+
const params = createParamsFromAction({
|
|
545
|
+
action,
|
|
546
|
+
routeParamList
|
|
547
|
+
});
|
|
488
548
|
let route;
|
|
549
|
+
if (action.payload.reuse) {
|
|
550
|
+
route = state.preloadedRoutes.findLast(route => route.name === action.payload.name && (id === undefined || id === getId?.({
|
|
551
|
+
params: route.params
|
|
552
|
+
})));
|
|
553
|
+
if (route) {
|
|
554
|
+
return {
|
|
555
|
+
...state,
|
|
556
|
+
preloadedRoutes: state.preloadedRoutes.map(r => r.key === route?.key && r.params !== params ? {
|
|
557
|
+
...r,
|
|
558
|
+
params
|
|
559
|
+
} : r)
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
}
|
|
489
563
|
if (id !== undefined) {
|
|
490
|
-
route = state.routes.
|
|
564
|
+
route = state.routes.findLast(route => route.name === action.payload.name && id === getId?.({
|
|
491
565
|
params: route.params
|
|
492
566
|
}));
|
|
567
|
+
} else if (action.payload.reuse) {
|
|
568
|
+
route = state.routes.findLast(route => route.name === action.payload.name);
|
|
493
569
|
}
|
|
494
570
|
if (route) {
|
|
495
571
|
return {
|
|
496
572
|
...state,
|
|
497
|
-
routes: state.routes.map(r => {
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
return {
|
|
502
|
-
...r,
|
|
503
|
-
params: createParamsFromAction({
|
|
504
|
-
action,
|
|
505
|
-
routeParamList
|
|
506
|
-
})
|
|
507
|
-
};
|
|
508
|
-
})
|
|
573
|
+
routes: state.routes.map(r => r.key === route.key && r.params !== params ? {
|
|
574
|
+
...r,
|
|
575
|
+
params
|
|
576
|
+
} : r)
|
|
509
577
|
};
|
|
510
578
|
} else {
|
|
511
579
|
return {
|
|
@@ -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","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","filter","has","removedRetainedRouteKeys","preloadedRoutes","concat","StackRouter","router","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","index","getRehydratedState","partialState","state","some","getStateForRouteNamesChange","routeKeyChanges","routeKeys","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","findLastIndex","historyIndex","baseParams","routeKey","reuse","getRoutesFromState","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -54,6 +54,7 @@ type PreloadAction = {
|
|
|
54
54
|
payload: {
|
|
55
55
|
name: string;
|
|
56
56
|
params?: object | undefined;
|
|
57
|
+
reuse?: boolean | undefined;
|
|
57
58
|
};
|
|
58
59
|
source?: string | undefined;
|
|
59
60
|
target?: string | undefined;
|
|
@@ -93,11 +94,14 @@ export declare function pushParams(params: object): {
|
|
|
93
94
|
readonly params: object;
|
|
94
95
|
};
|
|
95
96
|
};
|
|
96
|
-
export declare function preload(name: string, params?: object | undefined
|
|
97
|
+
export declare function preload(name: string, params?: object | undefined, options?: {
|
|
98
|
+
reuse?: boolean | undefined;
|
|
99
|
+
}): {
|
|
97
100
|
readonly type: "PRELOAD";
|
|
98
101
|
readonly payload: {
|
|
99
102
|
readonly name: string;
|
|
100
103
|
readonly params: object | undefined;
|
|
104
|
+
readonly reuse: boolean | undefined;
|
|
101
105
|
};
|
|
102
106
|
};
|
|
103
107
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonActions.d.ts","sourceRoot":"","sources":["../../../src/CommonActions.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CommonActions.d.ts","sourceRoot":"","sources":["../../../src/CommonActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,13 @@ export type StackActionType = {
|
|
|
35
35
|
};
|
|
36
36
|
source?: string | undefined;
|
|
37
37
|
target?: string | undefined;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'RETAIN';
|
|
40
|
+
payload: {
|
|
41
|
+
enable: boolean;
|
|
42
|
+
};
|
|
43
|
+
source?: string | undefined;
|
|
44
|
+
target?: string | undefined;
|
|
38
45
|
};
|
|
39
46
|
export type StackRouterOptions = DefaultRouterOptions;
|
|
40
47
|
export type StackNavigationState<ParamList extends ParamListBase> = NavigationState<ParamList> & {
|
|
@@ -46,6 +53,13 @@ export type StackNavigationState<ParamList extends ParamListBase> = NavigationSt
|
|
|
46
53
|
* List of routes, which are supposed to be preloaded before navigating to.
|
|
47
54
|
*/
|
|
48
55
|
preloadedRoutes: NavigationRoute<ParamList, keyof ParamList>[];
|
|
56
|
+
/**
|
|
57
|
+
* List of route keys to retain in the stack.
|
|
58
|
+
* When a retained route gets removed from the stack,
|
|
59
|
+
* it'll be treated as preloaded route and not completely removed
|
|
60
|
+
* So it preserves the route and can be navigated to again.
|
|
61
|
+
*/
|
|
62
|
+
retainedRouteKeys: string[];
|
|
49
63
|
};
|
|
50
64
|
export type StackActionHelpers<ParamList extends ParamListBase> = {
|
|
51
65
|
/**
|
|
@@ -91,6 +105,15 @@ export type StackActionHelpers<ParamList extends ParamListBase> = {
|
|
|
91
105
|
merge?: boolean;
|
|
92
106
|
}
|
|
93
107
|
] : never): void;
|
|
108
|
+
/**
|
|
109
|
+
* Enable or disable retaining the current route in the stack.
|
|
110
|
+
* When a retained route gets removed from the stack,
|
|
111
|
+
* it'll be treated as preloaded route and not completely removed
|
|
112
|
+
* So it preserves the route and can be navigated to again.
|
|
113
|
+
*
|
|
114
|
+
* @param enable Whether to retain the current route in the stack or not.
|
|
115
|
+
*/
|
|
116
|
+
retain(enable: boolean): void;
|
|
94
117
|
};
|
|
95
118
|
export declare const StackActions: {
|
|
96
119
|
replace(name: string, params?: object): {
|
|
@@ -126,6 +149,12 @@ export declare const StackActions: {
|
|
|
126
149
|
readonly merge: boolean | undefined;
|
|
127
150
|
};
|
|
128
151
|
};
|
|
152
|
+
retain(enable: boolean): {
|
|
153
|
+
readonly type: "RETAIN";
|
|
154
|
+
readonly payload: {
|
|
155
|
+
readonly enable: boolean;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
129
158
|
};
|
|
130
159
|
export declare function StackRouter(options: StackRouterOptions): Router<StackNavigationState<ParamListBase>, import("./CommonActions").Action | StackActionType>;
|
|
131
160
|
//# sourceMappingURL=StackRouter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackRouter.d.ts","sourceRoot":"","sources":["../../../src/StackRouter.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,aAAa,EAEb,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAC7B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,CAAC,SAAS,SAAS,aAAa,IAC9D,eAAe,CAAC,SAAS,CAAC,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StackRouter.d.ts","sourceRoot":"","sources":["../../../src/StackRouter.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/routers",
|
|
3
3
|
"description": "Routers to help build custom navigators",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.6",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
7
7
|
"react-native",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"clean": "del lib"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"nanoid": "^
|
|
44
|
+
"nanoid": "^5.1.7"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@jest/globals": "^30.
|
|
48
|
-
"del-cli": "^
|
|
49
|
-
"react-native-builder-bob": "^0.
|
|
47
|
+
"@jest/globals": "^30.3.0",
|
|
48
|
+
"del-cli": "^7.0.0",
|
|
49
|
+
"react-native-builder-bob": "^0.41.0",
|
|
50
50
|
"typescript": "^6.0.2"
|
|
51
51
|
},
|
|
52
52
|
"react-native-builder-bob": {
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
]
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "d465f4e6b2996e5ed4648b23487e2027e83b263d"
|
|
71
71
|
}
|
package/src/CommonActions.tsx
CHANGED
|
@@ -59,6 +59,7 @@ type PreloadAction = {
|
|
|
59
59
|
payload: {
|
|
60
60
|
name: string;
|
|
61
61
|
params?: object | undefined;
|
|
62
|
+
reuse?: boolean | undefined;
|
|
62
63
|
};
|
|
63
64
|
source?: string | undefined;
|
|
64
65
|
target?: string | undefined;
|
|
@@ -147,9 +148,15 @@ export function pushParams(params: object) {
|
|
|
147
148
|
} as const satisfies PushParamsAction;
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
export function preload(
|
|
151
|
+
export function preload(
|
|
152
|
+
name: string,
|
|
153
|
+
params?: object | undefined,
|
|
154
|
+
options?: {
|
|
155
|
+
reuse?: boolean | undefined;
|
|
156
|
+
}
|
|
157
|
+
) {
|
|
151
158
|
return {
|
|
152
159
|
type: 'PRELOAD',
|
|
153
|
-
payload: { name, params },
|
|
160
|
+
payload: { name, params, reuse: options?.reuse },
|
|
154
161
|
} as const satisfies PreloadAction;
|
|
155
162
|
}
|
package/src/StackRouter.tsx
CHANGED
|
@@ -46,6 +46,12 @@ export type StackActionType =
|
|
|
46
46
|
};
|
|
47
47
|
source?: string | undefined;
|
|
48
48
|
target?: string | undefined;
|
|
49
|
+
}
|
|
50
|
+
| {
|
|
51
|
+
type: 'RETAIN';
|
|
52
|
+
payload: { enable: boolean };
|
|
53
|
+
source?: string | undefined;
|
|
54
|
+
target?: string | undefined;
|
|
49
55
|
};
|
|
50
56
|
|
|
51
57
|
export type StackRouterOptions = DefaultRouterOptions;
|
|
@@ -60,6 +66,13 @@ export type StackNavigationState<ParamList extends ParamListBase> =
|
|
|
60
66
|
* List of routes, which are supposed to be preloaded before navigating to.
|
|
61
67
|
*/
|
|
62
68
|
preloadedRoutes: NavigationRoute<ParamList, keyof ParamList>[];
|
|
69
|
+
/**
|
|
70
|
+
* List of route keys to retain in the stack.
|
|
71
|
+
* When a retained route gets removed from the stack,
|
|
72
|
+
* it'll be treated as preloaded route and not completely removed
|
|
73
|
+
* So it preserves the route and can be navigated to again.
|
|
74
|
+
*/
|
|
75
|
+
retainedRouteKeys: string[];
|
|
63
76
|
};
|
|
64
77
|
|
|
65
78
|
export type StackActionHelpers<ParamList extends ParamListBase> = {
|
|
@@ -124,6 +137,16 @@ export type StackActionHelpers<ParamList extends ParamListBase> = {
|
|
|
124
137
|
]
|
|
125
138
|
: never
|
|
126
139
|
): void;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Enable or disable retaining the current route in the stack.
|
|
143
|
+
* When a retained route gets removed from the stack,
|
|
144
|
+
* it'll be treated as preloaded route and not completely removed
|
|
145
|
+
* So it preserves the route and can be navigated to again.
|
|
146
|
+
*
|
|
147
|
+
* @param enable Whether to retain the current route in the stack or not.
|
|
148
|
+
*/
|
|
149
|
+
retain(enable: boolean): void;
|
|
127
150
|
};
|
|
128
151
|
|
|
129
152
|
export const StackActions = {
|
|
@@ -158,8 +181,47 @@ export const StackActions = {
|
|
|
158
181
|
},
|
|
159
182
|
} as const satisfies StackActionType;
|
|
160
183
|
},
|
|
184
|
+
retain(enable: boolean) {
|
|
185
|
+
return {
|
|
186
|
+
type: 'RETAIN',
|
|
187
|
+
payload: { enable },
|
|
188
|
+
} as const satisfies StackActionType;
|
|
189
|
+
},
|
|
161
190
|
};
|
|
162
191
|
|
|
192
|
+
function retainRoutes<ParamList extends ParamListBase>(
|
|
193
|
+
previousState: StackNavigationState<ParamList>,
|
|
194
|
+
nextState: StackNavigationState<ParamList>
|
|
195
|
+
) {
|
|
196
|
+
if (!nextState.retainedRouteKeys.length) {
|
|
197
|
+
return nextState;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
const retainedRouteKeySet = new Set(nextState.retainedRouteKeys);
|
|
201
|
+
const nextRouteKeySet = new Set(nextState.routes.map((route) => route.key));
|
|
202
|
+
const retainedRoutes = previousState.routes.filter(
|
|
203
|
+
(route) =>
|
|
204
|
+
retainedRouteKeySet.has(route.key) && !nextRouteKeySet.has(route.key)
|
|
205
|
+
);
|
|
206
|
+
|
|
207
|
+
if (!retainedRoutes.length) {
|
|
208
|
+
return nextState;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const removedRetainedRouteKeys = new Set(
|
|
212
|
+
retainedRoutes.map((route) => route.key)
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
return {
|
|
216
|
+
...nextState,
|
|
217
|
+
preloadedRoutes: retainedRoutes.concat(
|
|
218
|
+
nextState.preloadedRoutes.filter(
|
|
219
|
+
(route) => !removedRetainedRouteKeys.has(route.key)
|
|
220
|
+
)
|
|
221
|
+
),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
|
|
163
225
|
export function StackRouter(options: StackRouterOptions) {
|
|
164
226
|
const router: Router<
|
|
165
227
|
StackNavigationState<ParamListBase>,
|
|
@@ -183,6 +245,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
183
245
|
index: 0,
|
|
184
246
|
routeNames,
|
|
185
247
|
preloadedRoutes: [],
|
|
248
|
+
retainedRouteKeys: [],
|
|
186
249
|
routes: [
|
|
187
250
|
{
|
|
188
251
|
key: `${initialRouteName}-${nanoid()}`,
|
|
@@ -232,6 +295,11 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
232
295
|
}) as Route<string>
|
|
233
296
|
) ?? [];
|
|
234
297
|
|
|
298
|
+
const retainedRouteKeys =
|
|
299
|
+
state.retainedRouteKeys?.filter((key) =>
|
|
300
|
+
[...routes, ...preloadedRoutes].some((route) => route.key === key)
|
|
301
|
+
) ?? [];
|
|
302
|
+
|
|
235
303
|
if (routes.length === 0) {
|
|
236
304
|
const initialRouteName =
|
|
237
305
|
options.initialRouteName !== undefined
|
|
@@ -253,6 +321,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
253
321
|
routeNames,
|
|
254
322
|
routes,
|
|
255
323
|
preloadedRoutes,
|
|
324
|
+
retainedRouteKeys,
|
|
256
325
|
};
|
|
257
326
|
},
|
|
258
327
|
|
|
@@ -266,6 +335,12 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
266
335
|
!routeKeyChanges.includes(route.name)
|
|
267
336
|
);
|
|
268
337
|
|
|
338
|
+
const preloadedRoutes = state.preloadedRoutes.filter(
|
|
339
|
+
(route) =>
|
|
340
|
+
routeNames.includes(route.name) &&
|
|
341
|
+
!routeKeyChanges.includes(route.name)
|
|
342
|
+
);
|
|
343
|
+
|
|
269
344
|
if (routes.length === 0) {
|
|
270
345
|
const initialRouteName =
|
|
271
346
|
options.initialRouteName !== undefined &&
|
|
@@ -280,10 +355,20 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
280
355
|
});
|
|
281
356
|
}
|
|
282
357
|
|
|
358
|
+
const routeKeys = new Set(
|
|
359
|
+
[...routes, ...preloadedRoutes].map((route) => route.key)
|
|
360
|
+
);
|
|
361
|
+
|
|
362
|
+
const retainedRouteKeys = state.retainedRouteKeys.filter((key) =>
|
|
363
|
+
routeKeys.has(key)
|
|
364
|
+
);
|
|
365
|
+
|
|
283
366
|
return {
|
|
284
367
|
...state,
|
|
285
368
|
routeNames,
|
|
286
369
|
routes,
|
|
370
|
+
preloadedRoutes,
|
|
371
|
+
retainedRouteKeys,
|
|
287
372
|
index: Math.min(state.index, routes.length - 1),
|
|
288
373
|
};
|
|
289
374
|
},
|
|
@@ -295,11 +380,11 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
295
380
|
return state;
|
|
296
381
|
}
|
|
297
382
|
|
|
298
|
-
return {
|
|
383
|
+
return retainRoutes(state, {
|
|
299
384
|
...state,
|
|
300
385
|
index,
|
|
301
386
|
routes: state.routes.slice(0, index + 1),
|
|
302
|
-
};
|
|
387
|
+
});
|
|
303
388
|
},
|
|
304
389
|
|
|
305
390
|
getStateForAction(state, action, options) {
|
|
@@ -334,7 +419,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
334
419
|
route = createRouteFromAction({ action, routeParamList });
|
|
335
420
|
}
|
|
336
421
|
|
|
337
|
-
return {
|
|
422
|
+
return retainRoutes(state, {
|
|
338
423
|
...state,
|
|
339
424
|
routes: state.routes.map((r, i) =>
|
|
340
425
|
i === currentIndex ? route : r
|
|
@@ -342,7 +427,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
342
427
|
preloadedRoutes: state.preloadedRoutes.filter(
|
|
343
428
|
(r) => r.key !== route.key
|
|
344
429
|
),
|
|
345
|
-
};
|
|
430
|
+
});
|
|
346
431
|
}
|
|
347
432
|
|
|
348
433
|
case 'PUSH':
|
|
@@ -482,14 +567,14 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
482
567
|
];
|
|
483
568
|
}
|
|
484
569
|
|
|
485
|
-
return {
|
|
570
|
+
return retainRoutes(state, {
|
|
486
571
|
...state,
|
|
487
572
|
index: routes.length - 1,
|
|
488
573
|
preloadedRoutes: state.preloadedRoutes.filter(
|
|
489
574
|
(route) => routes[routes.length - 1].key !== route.key
|
|
490
575
|
),
|
|
491
576
|
routes,
|
|
492
|
-
};
|
|
577
|
+
});
|
|
493
578
|
}
|
|
494
579
|
|
|
495
580
|
case 'POP': {
|
|
@@ -547,11 +632,11 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
547
632
|
}
|
|
548
633
|
}
|
|
549
634
|
|
|
550
|
-
return {
|
|
635
|
+
return retainRoutes(state, {
|
|
551
636
|
...state,
|
|
552
637
|
index: routes.length - 1,
|
|
553
638
|
routes,
|
|
554
|
-
};
|
|
639
|
+
});
|
|
555
640
|
}
|
|
556
641
|
|
|
557
642
|
return null;
|
|
@@ -568,11 +653,11 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
568
653
|
};
|
|
569
654
|
}
|
|
570
655
|
|
|
571
|
-
return {
|
|
656
|
+
return retainRoutes(state, {
|
|
572
657
|
...state,
|
|
573
658
|
index: 0,
|
|
574
659
|
routes: [route],
|
|
575
|
-
};
|
|
660
|
+
});
|
|
576
661
|
}
|
|
577
662
|
|
|
578
663
|
return null;
|
|
@@ -655,14 +740,14 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
655
740
|
|
|
656
741
|
const routes = state.routes.slice(0, currentIndex).concat(route);
|
|
657
742
|
|
|
658
|
-
return {
|
|
743
|
+
return retainRoutes(state, {
|
|
659
744
|
...state,
|
|
660
745
|
index: routes.length - 1,
|
|
661
746
|
routes,
|
|
662
747
|
preloadedRoutes: state.preloadedRoutes.filter(
|
|
663
748
|
(r) => r.key !== route.key
|
|
664
749
|
),
|
|
665
|
-
};
|
|
750
|
+
});
|
|
666
751
|
}
|
|
667
752
|
|
|
668
753
|
const route = state.routes[index];
|
|
@@ -691,7 +776,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
691
776
|
params = createParamsFromAction({ action, routeParamList });
|
|
692
777
|
}
|
|
693
778
|
|
|
694
|
-
return {
|
|
779
|
+
return retainRoutes(state, {
|
|
695
780
|
...state,
|
|
696
781
|
index,
|
|
697
782
|
routes: [
|
|
@@ -700,7 +785,7 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
700
785
|
? { ...route, params, history }
|
|
701
786
|
: state.routes[index],
|
|
702
787
|
],
|
|
703
|
-
};
|
|
788
|
+
});
|
|
704
789
|
}
|
|
705
790
|
|
|
706
791
|
case 'GO_BACK':
|
|
@@ -719,32 +804,88 @@ export function StackRouter(options: StackRouterOptions) {
|
|
|
719
804
|
|
|
720
805
|
return null;
|
|
721
806
|
|
|
807
|
+
case 'RETAIN': {
|
|
808
|
+
const routeKey = action.source ?? state.routes[state.index].key;
|
|
809
|
+
|
|
810
|
+
if (
|
|
811
|
+
!state.routes.some((route) => route.key === routeKey) &&
|
|
812
|
+
!state.preloadedRoutes.some((route) => route.key === routeKey)
|
|
813
|
+
) {
|
|
814
|
+
return null;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
if (action.payload.enable) {
|
|
818
|
+
if (state.retainedRouteKeys.includes(routeKey)) {
|
|
819
|
+
return state;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
return {
|
|
823
|
+
...state,
|
|
824
|
+
retainedRouteKeys: [...state.retainedRouteKeys, routeKey],
|
|
825
|
+
};
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
if (!state.retainedRouteKeys.includes(routeKey)) {
|
|
829
|
+
return state;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
return {
|
|
833
|
+
...state,
|
|
834
|
+
preloadedRoutes: state.preloadedRoutes.filter(
|
|
835
|
+
(route) => route.key !== routeKey
|
|
836
|
+
),
|
|
837
|
+
retainedRouteKeys: state.retainedRouteKeys.filter(
|
|
838
|
+
(key) => key !== routeKey
|
|
839
|
+
),
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
|
|
722
843
|
case 'PRELOAD': {
|
|
723
844
|
const getId = options.routeGetIdList[action.payload.name];
|
|
724
845
|
const id = getId?.({ params: action.payload.params });
|
|
846
|
+
const params = createParamsFromAction({ action, routeParamList });
|
|
725
847
|
|
|
726
848
|
let route: Route<string> | undefined;
|
|
727
849
|
|
|
850
|
+
if (action.payload.reuse) {
|
|
851
|
+
route = state.preloadedRoutes.findLast(
|
|
852
|
+
(route) =>
|
|
853
|
+
route.name === action.payload.name &&
|
|
854
|
+
(id === undefined || id === getId?.({ params: route.params }))
|
|
855
|
+
);
|
|
856
|
+
|
|
857
|
+
if (route) {
|
|
858
|
+
return {
|
|
859
|
+
...state,
|
|
860
|
+
preloadedRoutes: state.preloadedRoutes.map((r) =>
|
|
861
|
+
r.key === route?.key && r.params !== params
|
|
862
|
+
? { ...r, params }
|
|
863
|
+
: r
|
|
864
|
+
),
|
|
865
|
+
};
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
|
|
728
869
|
if (id !== undefined) {
|
|
729
|
-
route = state.routes.
|
|
870
|
+
route = state.routes.findLast(
|
|
730
871
|
(route) =>
|
|
731
872
|
route.name === action.payload.name &&
|
|
732
873
|
id === getId?.({ params: route.params })
|
|
733
874
|
);
|
|
875
|
+
} else if (action.payload.reuse) {
|
|
876
|
+
route = state.routes.findLast(
|
|
877
|
+
(route) => route.name === action.payload.name
|
|
878
|
+
);
|
|
734
879
|
}
|
|
735
880
|
|
|
736
881
|
if (route) {
|
|
737
882
|
return {
|
|
738
883
|
...state,
|
|
739
|
-
routes: state.routes.map((r) =>
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
...r,
|
|
745
|
-
params: createParamsFromAction({ action, routeParamList }),
|
|
746
|
-
};
|
|
747
|
-
}),
|
|
884
|
+
routes: state.routes.map((r) =>
|
|
885
|
+
r.key === route.key && r.params !== params
|
|
886
|
+
? { ...r, params }
|
|
887
|
+
: r
|
|
888
|
+
),
|
|
748
889
|
};
|
|
749
890
|
} else {
|
|
750
891
|
return {
|