@react-navigation/routers 7.3.3 → 7.3.5

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 (53) hide show
  1. package/lib/typescript/src/BaseRouter.d.ts.map +1 -0
  2. package/lib/typescript/src/CommonActions.d.ts.map +1 -0
  3. package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
  4. package/lib/typescript/src/StackRouter.d.ts.map +1 -0
  5. package/lib/typescript/src/TabRouter.d.ts.map +1 -0
  6. package/lib/typescript/src/index.d.ts.map +1 -0
  7. package/lib/typescript/src/types.d.ts.map +1 -0
  8. package/package.json +10 -23
  9. package/lib/commonjs/BaseRouter.js +0 -60
  10. package/lib/commonjs/BaseRouter.js.map +0 -1
  11. package/lib/commonjs/CommonActions.js +0 -86
  12. package/lib/commonjs/CommonActions.js.map +0 -1
  13. package/lib/commonjs/DrawerRouter.js +0 -150
  14. package/lib/commonjs/DrawerRouter.js.map +0 -1
  15. package/lib/commonjs/StackRouter.js +0 -486
  16. package/lib/commonjs/StackRouter.js.map +0 -1
  17. package/lib/commonjs/TabRouter.js +0 -283
  18. package/lib/commonjs/TabRouter.js.map +0 -1
  19. package/lib/commonjs/index.js +0 -79
  20. package/lib/commonjs/index.js.map +0 -1
  21. package/lib/commonjs/package.json +0 -1
  22. package/lib/commonjs/types.js +0 -6
  23. package/lib/commonjs/types.js.map +0 -1
  24. package/lib/typescript/commonjs/package.json +0 -1
  25. package/lib/typescript/commonjs/src/BaseRouter.d.ts.map +0 -1
  26. package/lib/typescript/commonjs/src/CommonActions.d.ts.map +0 -1
  27. package/lib/typescript/commonjs/src/DrawerRouter.d.ts.map +0 -1
  28. package/lib/typescript/commonjs/src/StackRouter.d.ts.map +0 -1
  29. package/lib/typescript/commonjs/src/TabRouter.d.ts.map +0 -1
  30. package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
  31. package/lib/typescript/commonjs/src/types.d.ts.map +0 -1
  32. package/lib/typescript/module/src/BaseRouter.d.ts +0 -30
  33. package/lib/typescript/module/src/BaseRouter.d.ts.map +0 -1
  34. package/lib/typescript/module/src/CommonActions.d.ts +0 -76
  35. package/lib/typescript/module/src/CommonActions.d.ts.map +0 -1
  36. package/lib/typescript/module/src/DrawerRouter.d.ts +0 -53
  37. package/lib/typescript/module/src/DrawerRouter.d.ts.map +0 -1
  38. package/lib/typescript/module/src/StackRouter.d.ts +0 -105
  39. package/lib/typescript/module/src/StackRouter.d.ts.map +0 -1
  40. package/lib/typescript/module/src/TabRouter.d.ts +0 -45
  41. package/lib/typescript/module/src/TabRouter.d.ts.map +0 -1
  42. package/lib/typescript/module/src/index.d.ts +0 -11
  43. package/lib/typescript/module/src/index.d.ts.map +0 -1
  44. package/lib/typescript/module/src/types.d.ts +0 -176
  45. package/lib/typescript/module/src/types.d.ts.map +0 -1
  46. /package/lib/typescript/{module/package.json → package.json} +0 -0
  47. /package/lib/typescript/{commonjs/src → src}/BaseRouter.d.ts +0 -0
  48. /package/lib/typescript/{commonjs/src → src}/CommonActions.d.ts +0 -0
  49. /package/lib/typescript/{commonjs/src → src}/DrawerRouter.d.ts +0 -0
  50. /package/lib/typescript/{commonjs/src → src}/StackRouter.d.ts +0 -0
  51. /package/lib/typescript/{commonjs/src → src}/TabRouter.d.ts +0 -0
  52. /package/lib/typescript/{commonjs/src → src}/index.d.ts +0 -0
  53. /package/lib/typescript/{commonjs/src → src}/types.d.ts +0 -0
@@ -1,486 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StackActions = void 0;
7
- exports.StackRouter = StackRouter;
8
- var _nonSecure = require("nanoid/non-secure");
9
- var _BaseRouter = require("./BaseRouter.js");
10
- const StackActions = exports.StackActions = {
11
- replace(name, params) {
12
- return {
13
- type: 'REPLACE',
14
- payload: {
15
- name,
16
- params
17
- }
18
- };
19
- },
20
- push(name, params) {
21
- return {
22
- type: 'PUSH',
23
- payload: {
24
- name,
25
- params
26
- }
27
- };
28
- },
29
- pop(count = 1) {
30
- return {
31
- type: 'POP',
32
- payload: {
33
- count
34
- }
35
- };
36
- },
37
- popToTop() {
38
- return {
39
- type: 'POP_TO_TOP'
40
- };
41
- },
42
- popTo(name, params, options) {
43
- if (typeof options === 'boolean') {
44
- console.warn(`Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead.`);
45
- }
46
- return {
47
- type: 'POP_TO',
48
- payload: {
49
- name,
50
- params,
51
- merge: typeof options === 'boolean' ? options : options?.merge
52
- }
53
- };
54
- }
55
- };
56
- function StackRouter(options) {
57
- const router = {
58
- ..._BaseRouter.BaseRouter,
59
- type: 'stack',
60
- getInitialState({
61
- routeNames,
62
- routeParamList
63
- }) {
64
- const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
65
- return {
66
- stale: false,
67
- type: 'stack',
68
- key: `stack-${(0, _nonSecure.nanoid)()}`,
69
- index: 0,
70
- routeNames,
71
- preloadedRoutes: [],
72
- routes: [{
73
- key: `${initialRouteName}-${(0, _nonSecure.nanoid)()}`,
74
- name: initialRouteName,
75
- params: routeParamList[initialRouteName]
76
- }]
77
- };
78
- },
79
- getRehydratedState(partialState, {
80
- routeNames,
81
- routeParamList
82
- }) {
83
- const state = partialState;
84
- if (state.stale === false) {
85
- return state;
86
- }
87
- const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => ({
88
- ...route,
89
- key: route.key || `${route.name}-${(0, _nonSecure.nanoid)()}`,
90
- params: routeParamList[route.name] !== undefined ? {
91
- ...routeParamList[route.name],
92
- ...route.params
93
- } : route.params
94
- }));
95
- const preloadedRoutes = state.preloadedRoutes?.filter(route => routeNames.includes(route.name)).map(route => ({
96
- ...route,
97
- key: route.key || `${route.name}-${(0, _nonSecure.nanoid)()}`,
98
- params: routeParamList[route.name] !== undefined ? {
99
- ...routeParamList[route.name],
100
- ...route.params
101
- } : route.params
102
- })) ?? [];
103
- if (routes.length === 0) {
104
- const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];
105
- routes.push({
106
- key: `${initialRouteName}-${(0, _nonSecure.nanoid)()}`,
107
- name: initialRouteName,
108
- params: routeParamList[initialRouteName]
109
- });
110
- }
111
- return {
112
- stale: false,
113
- type: 'stack',
114
- key: `stack-${(0, _nonSecure.nanoid)()}`,
115
- index: routes.length - 1,
116
- routeNames,
117
- routes,
118
- preloadedRoutes
119
- };
120
- },
121
- getStateForRouteNamesChange(state, {
122
- routeNames,
123
- routeParamList,
124
- routeKeyChanges
125
- }) {
126
- const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));
127
- if (routes.length === 0) {
128
- const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];
129
- routes.push({
130
- key: `${initialRouteName}-${(0, _nonSecure.nanoid)()}`,
131
- name: initialRouteName,
132
- params: routeParamList[initialRouteName]
133
- });
134
- }
135
- return {
136
- ...state,
137
- routeNames,
138
- routes,
139
- index: Math.min(state.index, routes.length - 1)
140
- };
141
- },
142
- getStateForRouteFocus(state, key) {
143
- const index = state.routes.findIndex(r => r.key === key);
144
- if (index === -1 || index === state.index) {
145
- return state;
146
- }
147
- return {
148
- ...state,
149
- index,
150
- routes: state.routes.slice(0, index + 1)
151
- };
152
- },
153
- getStateForAction(state, action, options) {
154
- const {
155
- routeParamList
156
- } = options;
157
- switch (action.type) {
158
- case 'REPLACE':
159
- {
160
- const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
161
- if (index === -1) {
162
- return null;
163
- }
164
- const {
165
- name,
166
- params
167
- } = action.payload;
168
- if (!state.routeNames.includes(name)) {
169
- return null;
170
- }
171
- return {
172
- ...state,
173
- routes: state.routes.map((route, i) => i === index ? {
174
- key: `${name}-${(0, _nonSecure.nanoid)()}`,
175
- name,
176
- params: routeParamList[name] !== undefined ? {
177
- ...routeParamList[name],
178
- ...params
179
- } : params
180
- } : route)
181
- };
182
- }
183
- case 'PUSH':
184
- case 'NAVIGATE':
185
- {
186
- if (!state.routeNames.includes(action.payload.name)) {
187
- return null;
188
- }
189
- const getId = options.routeGetIdList[action.payload.name];
190
- const id = getId?.({
191
- params: action.payload.params
192
- });
193
- let route;
194
- if (id !== undefined) {
195
- route = state.routes.findLast(route => route.name === action.payload.name && id === getId?.({
196
- params: route.params
197
- }));
198
- } else if (action.type === 'NAVIGATE') {
199
- const currentRoute = state.routes[state.index];
200
-
201
- // If the route matches the current one, then navigate to it
202
- if (action.payload.name === currentRoute.name) {
203
- route = currentRoute;
204
- } else if (action.payload.pop) {
205
- route = state.routes.findLast(route => route.name === action.payload.name);
206
- }
207
- }
208
- if (!route) {
209
- route = state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({
210
- params: route.params
211
- }));
212
- }
213
- let params;
214
- if (action.type === 'NAVIGATE' && action.payload.merge && route) {
215
- params = action.payload.params !== undefined || routeParamList[action.payload.name] !== undefined ? {
216
- ...routeParamList[action.payload.name],
217
- ...route.params,
218
- ...action.payload.params
219
- } : route.params;
220
- } else {
221
- params = routeParamList[action.payload.name] !== undefined ? {
222
- ...routeParamList[action.payload.name],
223
- ...action.payload.params
224
- } : action.payload.params;
225
- }
226
- let routes;
227
- if (route) {
228
- if (action.type === 'NAVIGATE' && action.payload.pop) {
229
- routes = [];
230
-
231
- // Get all routes until the matching one
232
- for (const r of state.routes) {
233
- if (r.key === route.key) {
234
- routes.push({
235
- ...route,
236
- path: action.payload.path !== undefined ? action.payload.path : route.path,
237
- params
238
- });
239
- break;
240
- }
241
- routes.push(r);
242
- }
243
- } else {
244
- routes = state.routes.filter(r => r.key !== route.key);
245
- routes.push({
246
- ...route,
247
- path: action.type === 'NAVIGATE' && action.payload.path !== undefined ? action.payload.path : route.path,
248
- params
249
- });
250
- }
251
- } else {
252
- routes = [...state.routes, {
253
- key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
254
- name: action.payload.name,
255
- path: action.type === 'NAVIGATE' ? action.payload.path : undefined,
256
- params
257
- }];
258
- }
259
- return {
260
- ...state,
261
- index: routes.length - 1,
262
- preloadedRoutes: state.preloadedRoutes.filter(route => routes[routes.length - 1].key !== route.key),
263
- routes
264
- };
265
- }
266
- case 'NAVIGATE_DEPRECATED':
267
- {
268
- if (state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({
269
- params: route.params
270
- }))) {
271
- return null;
272
- }
273
- if (!state.routeNames.includes(action.payload.name)) {
274
- return null;
275
- }
276
-
277
- // If the route already exists, navigate to that
278
- let index = -1;
279
- const getId = options.routeGetIdList[action.payload.name];
280
- const id = getId?.({
281
- params: action.payload.params
282
- });
283
- if (id) {
284
- index = state.routes.findIndex(route => route.name === action.payload.name && id === getId?.({
285
- params: route.params
286
- }));
287
- } else if (state.routes[state.index].name === action.payload.name) {
288
- index = state.index;
289
- } else {
290
- for (let i = state.routes.length - 1; i >= 0; i--) {
291
- if (state.routes[i].name === action.payload.name) {
292
- index = i;
293
- break;
294
- }
295
- }
296
- }
297
- if (index === -1) {
298
- const routes = [...state.routes, {
299
- key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
300
- name: action.payload.name,
301
- params: routeParamList[action.payload.name] !== undefined ? {
302
- ...routeParamList[action.payload.name],
303
- ...action.payload.params
304
- } : action.payload.params
305
- }];
306
- return {
307
- ...state,
308
- routes,
309
- index: routes.length - 1
310
- };
311
- }
312
- const route = state.routes[index];
313
- let params;
314
- if (action.payload.merge) {
315
- params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
316
- ...routeParamList[route.name],
317
- ...route.params,
318
- ...action.payload.params
319
- } : route.params;
320
- } else {
321
- params = routeParamList[route.name] !== undefined ? {
322
- ...routeParamList[route.name],
323
- ...action.payload.params
324
- } : action.payload.params;
325
- }
326
- return {
327
- ...state,
328
- index,
329
- routes: [...state.routes.slice(0, index), params !== route.params ? {
330
- ...route,
331
- params
332
- } : state.routes[index]]
333
- };
334
- }
335
- case 'POP':
336
- {
337
- const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
338
- if (index > 0) {
339
- const count = Math.max(index - action.payload.count + 1, 1);
340
- const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));
341
- return {
342
- ...state,
343
- index: routes.length - 1,
344
- routes
345
- };
346
- }
347
- return null;
348
- }
349
- case 'POP_TO_TOP':
350
- return router.getStateForAction(state, {
351
- type: 'POP',
352
- payload: {
353
- count: state.routes.length - 1
354
- }
355
- }, options);
356
- case 'POP_TO':
357
- {
358
- if (!state.routeNames.includes(action.payload.name)) {
359
- return null;
360
- }
361
-
362
- // If the route already exists, navigate to that
363
- let index = -1;
364
- const getId = options.routeGetIdList[action.payload.name];
365
- const id = getId?.({
366
- params: action.payload.params
367
- });
368
- if (id) {
369
- index = state.routes.findIndex(route => route.name === action.payload.name && id === getId?.({
370
- params: route.params
371
- }));
372
- } else if (state.routes[state.index].name === action.payload.name) {
373
- index = state.index;
374
- } else {
375
- for (let i = state.routes.length - 1; i >= 0; i--) {
376
- if (state.routes[i].name === action.payload.name) {
377
- index = i;
378
- break;
379
- }
380
- }
381
- }
382
-
383
- // If the route doesn't exist, remove the current route and add the new one
384
- if (index === -1) {
385
- const routes = [...state.routes.slice(0, -1), {
386
- key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
387
- name: action.payload.name,
388
- params: routeParamList[action.payload.name] !== undefined ? {
389
- ...routeParamList[action.payload.name],
390
- ...action.payload.params
391
- } : action.payload.params
392
- }];
393
- return {
394
- ...state,
395
- routes,
396
- index: routes.length - 1
397
- };
398
- }
399
- const route = state.routes[index];
400
- let params;
401
- if (action.payload.merge) {
402
- params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? {
403
- ...routeParamList[route.name],
404
- ...route.params,
405
- ...action.payload.params
406
- } : route.params;
407
- } else {
408
- params = routeParamList[route.name] !== undefined ? {
409
- ...routeParamList[route.name],
410
- ...action.payload.params
411
- } : action.payload.params;
412
- }
413
- return {
414
- ...state,
415
- index,
416
- routes: [...state.routes.slice(0, index), params !== route.params ? {
417
- ...route,
418
- params
419
- } : state.routes[index]]
420
- };
421
- }
422
- case 'GO_BACK':
423
- if (state.index > 0) {
424
- return router.getStateForAction(state, {
425
- type: 'POP',
426
- payload: {
427
- count: 1
428
- },
429
- target: action.target,
430
- source: action.source
431
- }, options);
432
- }
433
- return null;
434
- case 'PRELOAD':
435
- {
436
- const getId = options.routeGetIdList[action.payload.name];
437
- const id = getId?.({
438
- params: action.payload.params
439
- });
440
- let route;
441
- if (id !== undefined) {
442
- route = state.routes.find(route => route.name === action.payload.name && id === getId?.({
443
- params: route.params
444
- }));
445
- }
446
- if (route) {
447
- return {
448
- ...state,
449
- routes: state.routes.map(r => {
450
- if (r.key !== route?.key) {
451
- return r;
452
- }
453
- return {
454
- ...r,
455
- params: routeParamList[action.payload.name] !== undefined ? {
456
- ...routeParamList[action.payload.name],
457
- ...action.payload.params
458
- } : action.payload.params
459
- };
460
- })
461
- };
462
- } else {
463
- return {
464
- ...state,
465
- preloadedRoutes: state.preloadedRoutes.filter(r => r.name !== action.payload.name || id !== getId?.({
466
- params: r.params
467
- })).concat({
468
- key: `${action.payload.name}-${(0, _nonSecure.nanoid)()}`,
469
- name: action.payload.name,
470
- params: routeParamList[action.payload.name] !== undefined ? {
471
- ...routeParamList[action.payload.name],
472
- ...action.payload.params
473
- } : action.payload.params
474
- })
475
- };
476
- }
477
- }
478
- default:
479
- return _BaseRouter.BaseRouter.getStateForAction(state, action);
480
- }
481
- },
482
- actionCreators: StackActions
483
- };
484
- return router;
485
- }
486
- //# sourceMappingURL=StackRouter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_nonSecure","require","_BaseRouter","StackActions","exports","replace","name","params","type","payload","push","pop","count","popToTop","popTo","options","console","warn","merge","StackRouter","router","BaseRouter","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","nanoid","index","preloadedRoutes","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","findLast","currentRoute","find","path","max","concat","actionCreators"],"sourceRoot":"../../src","sources":["StackRouter.tsx"],"mappings":"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","ignoreList":[]}