@react-navigation/routers 8.0.0-alpha.2 → 8.0.0-alpha.20

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 (42) hide show
  1. package/lib/module/BaseRouter.js +64 -61
  2. package/lib/module/BaseRouter.js.map +1 -1
  3. package/lib/module/CommonActions.js +9 -21
  4. package/lib/module/CommonActions.js.map +1 -1
  5. package/lib/module/DrawerRouter.js +15 -14
  6. package/lib/module/DrawerRouter.js.map +1 -1
  7. package/lib/module/StackRouter.js +287 -166
  8. package/lib/module/StackRouter.js.map +1 -1
  9. package/lib/module/SwitchRouter.js +426 -0
  10. package/lib/module/SwitchRouter.js.map +1 -0
  11. package/lib/module/TabRouter.js +14 -290
  12. package/lib/module/TabRouter.js.map +1 -1
  13. package/lib/typescript/src/BaseRouter.d.ts +10 -8
  14. package/lib/typescript/src/BaseRouter.d.ts.map +1 -1
  15. package/lib/typescript/src/CommonActions.d.ts +42 -39
  16. package/lib/typescript/src/CommonActions.d.ts.map +1 -1
  17. package/lib/typescript/src/DrawerRouter.d.ts +6 -5
  18. package/lib/typescript/src/DrawerRouter.d.ts.map +1 -1
  19. package/lib/typescript/src/StackRouter.d.ts +70 -24
  20. package/lib/typescript/src/StackRouter.d.ts.map +1 -1
  21. package/lib/typescript/src/SwitchRouter.d.ts +69 -0
  22. package/lib/typescript/src/SwitchRouter.d.ts.map +1 -0
  23. package/lib/typescript/src/TabRouter.d.ts +4 -24
  24. package/lib/typescript/src/TabRouter.d.ts.map +1 -1
  25. package/lib/typescript/src/createParamsFromAction.d.ts +2 -2
  26. package/lib/typescript/src/createParamsFromAction.d.ts.map +1 -1
  27. package/lib/typescript/src/createRouteFromAction.d.ts +2 -2
  28. package/lib/typescript/src/createRouteFromAction.d.ts.map +1 -1
  29. package/lib/typescript/src/index.d.ts +9 -9
  30. package/lib/typescript/src/index.d.ts.map +1 -1
  31. package/lib/typescript/src/types.d.ts +20 -30
  32. package/lib/typescript/src/types.d.ts.map +1 -1
  33. package/package.json +8 -8
  34. package/src/BaseRouter.tsx +93 -80
  35. package/src/CommonActions.tsx +44 -66
  36. package/src/DrawerRouter.tsx +28 -22
  37. package/src/StackRouter.tsx +551 -238
  38. package/src/SwitchRouter.tsx +718 -0
  39. package/src/TabRouter.tsx +24 -463
  40. package/src/createParamsFromAction.tsx +1 -1
  41. package/src/createRouteFromAction.tsx +1 -1
  42. package/src/types.tsx +39 -41
@@ -1,73 +1,76 @@
1
1
  "use strict";
2
2
 
3
3
  import { nanoid } from 'nanoid/non-secure';
4
- /**
5
- * Base router object that can be used when writing custom routers.
6
- * This provides few helper methods to handle common actions such as `RESET`.
7
- */
8
- export const BaseRouter = {
9
- getStateForAction(state, action) {
10
- switch (action.type) {
11
- case 'SET_PARAMS':
12
- case 'REPLACE_PARAMS':
13
- {
14
- const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
15
- if (index === -1) {
16
- return null;
17
- }
18
- return {
19
- ...state,
20
- routes: state.routes.map((r, i) => i === index ? {
21
- ...r,
22
- params: action.type === 'REPLACE_PARAMS' ? action.payload.params : {
23
- ...r.params,
24
- ...action.payload.params
25
- }
26
- } : r)
27
- };
4
+ function getStateForAction(state, action) {
5
+ switch (action.type) {
6
+ case 'SET_PARAMS':
7
+ case 'REPLACE_PARAMS':
8
+ {
9
+ const index = action.source !== undefined ? state.routes.findIndex(r => r.key === action.source) : state.index;
10
+ if (index === -1) {
11
+ return null;
12
+ }
13
+ return {
14
+ ...state,
15
+ routes: state.routes.map((r, i) => i === index ? {
16
+ ...r,
17
+ params: action.type === 'REPLACE_PARAMS' ? action.payload.params : {
18
+ ...r.params,
19
+ ...action.payload.params
20
+ }
21
+ } : r)
22
+ };
23
+ }
24
+ case 'PUSH_PARAMS':
25
+ {
26
+ const index = action.source !== undefined ? state.routes.findIndex(r => r.key === action.source) : state.index;
27
+ if (index === -1) {
28
+ return null;
29
+ }
30
+ return {
31
+ ...state,
32
+ routes: state.routes.map((r, i) => i === index ? {
33
+ ...r,
34
+ params: action.payload.params,
35
+ history: [...(r.history ?? []), {
36
+ type: 'params',
37
+ params: r.params
38
+ }]
39
+ } : r)
40
+ };
41
+ }
42
+ case 'RESET':
43
+ {
44
+ const nextState = action.payload;
45
+ const routeNamesSet = new Set(state.routeNames);
46
+ if (nextState.routes.length === 0 || nextState.routes.some(route => !routeNamesSet.has(route.name))) {
47
+ return null;
28
48
  }
29
- case 'PUSH_PARAMS':
30
- {
31
- const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
32
- if (index === -1) {
49
+ if (nextState.stale === false) {
50
+ if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !routeNamesSet.has(name)) || !Number.isInteger(nextState.index) || nextState.index < 0 || nextState.index >= nextState.routes.length) {
33
51
  return null;
34
52
  }
35
53
  return {
36
- ...state,
37
- routes: state.routes.map((r, i) => i === index ? {
38
- ...r,
39
- params: action.payload.params,
40
- history: [...(r.history ?? []), {
41
- type: 'params',
42
- params: r.params
43
- }]
44
- } : r)
54
+ ...nextState,
55
+ routes: nextState.routes.map(route => 'key' in route && route.key ? route : {
56
+ ...route,
57
+ key: `${route.name}-${nanoid()}`
58
+ })
45
59
  };
46
60
  }
47
- case 'RESET':
48
- {
49
- const nextState = action.payload;
50
- if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {
51
- return null;
52
- }
53
- if (nextState.stale === false) {
54
- if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {
55
- return null;
56
- }
57
- return {
58
- ...nextState,
59
- routes: nextState.routes.map(route => route.key ? route : {
60
- ...route,
61
- key: `${route.name}-${nanoid()}`
62
- })
63
- };
64
- }
65
- return nextState;
66
- }
67
- default:
68
- return null;
69
- }
70
- },
61
+ return nextState;
62
+ }
63
+ default:
64
+ return null;
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Base router object that can be used when writing custom routers.
70
+ * This provides few helper methods to handle common actions such as `RESET`.
71
+ */
72
+ export const BaseRouter = {
73
+ getStateForAction,
71
74
  shouldActionChangeFocus(action) {
72
75
  return action.type === 'NAVIGATE';
73
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","history","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"sourceRoot":"../../src","sources":["BaseRouter.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["nanoid","getStateForAction","state","action","type","index","source","undefined","routes","findIndex","r","key","map","i","params","payload","history","nextState","routeNamesSet","Set","routeNames","length","some","route","has","name","stale","Number","isInteger","BaseRouter","shouldActionChangeFocus"],"sourceRoot":"../../src","sources":["BaseRouter.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,28 +5,16 @@ export function goBack() {
5
5
  type: 'GO_BACK'
6
6
  };
7
7
  }
8
- export function navigate(...args) {
9
- if (typeof args[0] === 'string') {
10
- const [name, params, options] = args;
11
- return {
12
- type: 'NAVIGATE',
13
- payload: {
14
- name,
15
- params,
16
- merge: options?.merge,
17
- pop: options?.pop
18
- }
19
- };
20
- } else {
21
- const payload = args[0] || {};
22
- if (!('name' in payload)) {
23
- throw new Error('You need to specify a name when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');
8
+ export function navigate(name, params, options) {
9
+ return {
10
+ type: 'NAVIGATE',
11
+ payload: {
12
+ name,
13
+ params,
14
+ merge: options?.merge,
15
+ pop: options?.pop
24
16
  }
25
- return {
26
- type: 'NAVIGATE',
27
- payload
28
- };
29
- }
17
+ };
30
18
  }
31
19
  export function reset(state) {
32
20
  return {
@@ -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":";;AA2EA,OAAO,SAASA,MAAMA,CAAA,EAAW;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAU,CAAC;AAC5B;AAmBA,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,KAA6B,EAAE;EACnD,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,CAACZ,IAAY,EAAEC,MAAe,EAAE;EACrD,OAAO;IACLJ,IAAI,EAAE,SAAS;IACfM,OAAO,EAAE;MAAEH,IAAI;MAAEC;IAAO;EAC1B,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["goBack","type","navigate","name","params","options","payload","merge","pop","reset","state","setParams","replaceParams","pushParams","preload"],"sourceRoot":"../../src","sources":["CommonActions.tsx"],"mappings":";;AA2EA,OAAO,SAASA,MAAMA,CAAA,EAAG;EACvB,OAAO;IAAEC,IAAI,EAAE;EAAU,CAAC;AAC5B;AAEA,OAAO,SAASC,QAAQA,CACtBC,IAAY,EACZC,MAA2B,EAC3BC,OAKa,EACb;EACA,OAAO;IACLJ,IAAI,EAAE,UAAU;IAChBK,OAAO,EAAE;MACPH,IAAI;MACJC,MAAM;MACNG,KAAK,EAAEF,OAAO,EAAEE,KAAK;MACrBC,GAAG,EAAEH,OAAO,EAAEG;IAChB;EACF,CAAC;AACH;AAEA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,OAAO;IAAET,IAAI,EAAE,OAAO;IAAEK,OAAO,EAAEI;EAAM,CAAC;AAC1C;AAEA,OAAO,SAASC,SAASA,CAACP,MAAc,EAAE;EACxC,OAAO;IACLH,IAAI,EAAE,YAAY;IAClBK,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASQ,aAAaA,CAACR,MAAc,EAAE;EAC5C,OAAO;IACLH,IAAI,EAAE,gBAAgB;IACtBK,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASS,UAAUA,CAACT,MAAc,EAAE;EACzC,OAAO;IACLH,IAAI,EAAE,aAAa;IACnBK,OAAO,EAAE;MAAEF;IAAO;EACpB,CAAC;AACH;AAEA,OAAO,SAASU,OAAOA,CAACX,IAAY,EAAEC,MAA2B,EAAE;EACjE,OAAO;IACLH,IAAI,EAAE,SAAS;IACfK,OAAO,EAAE;MAAEH,IAAI;MAAEC;IAAO;EAC1B,CAAC;AACH","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { nanoid } from 'nanoid/non-secure';
4
- import { TabActions, TabRouter } from "./TabRouter.js";
4
+ import { SwitchRouter } from "./SwitchRouter.js";
5
+ import { TabActions } from "./TabRouter.js";
5
6
  export const DrawerActions = {
6
7
  ...TabActions,
7
8
  openDrawer() {
@@ -24,7 +25,7 @@ export function DrawerRouter({
24
25
  defaultStatus = 'closed',
25
26
  ...rest
26
27
  }) {
27
- const router = TabRouter(rest);
28
+ const router = SwitchRouter(rest);
28
29
  const isDrawerInHistory = state => Boolean(state.history?.some(it => it.type === 'drawer'));
29
30
  const addDrawerToHistory = state => {
30
31
  if (isDrawerInHistory(state)) {
@@ -88,22 +89,22 @@ export function DrawerRouter({
88
89
  if (partialState.stale === false) {
89
90
  return partialState;
90
91
  }
91
- let state = router.getRehydratedState(partialState, {
92
- routeNames,
93
- routeParamList,
94
- routeGetIdList
95
- });
92
+ let state = {
93
+ ...router.getRehydratedState(partialState, {
94
+ routeNames,
95
+ routeParamList,
96
+ routeGetIdList
97
+ }),
98
+ default: defaultStatus,
99
+ type: 'drawer',
100
+ key: `drawer-${nanoid()}`
101
+ };
96
102
  if (isDrawerInHistory(partialState)) {
97
103
  // Re-sync the drawer entry in history to correct it if it was wrong
98
104
  state = removeDrawerFromHistory(state);
99
105
  state = addDrawerToHistory(state);
100
106
  }
101
- return {
102
- ...state,
103
- default: defaultStatus,
104
- type: 'drawer',
105
- key: `drawer-${nanoid()}`
106
- };
107
+ return state;
107
108
  },
108
109
  getStateForRouteFocus(state, key) {
109
110
  const result = router.getStateForRouteFocus(state, key);
@@ -124,7 +125,7 @@ export function DrawerRouter({
124
125
  case 'NAVIGATE':
125
126
  {
126
127
  const result = router.getStateForAction(state, action, options);
127
- if (result != null && result.index !== state.index) {
128
+ if (result != null && result.stale === false && result.index !== state.index) {
128
129
  return closeDrawer(result);
129
130
  }
130
131
  return result;
@@ -1 +1 @@
1
- {"version":3,"names":["nanoid","TabActions","TabRouter","DrawerActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sourceRoot":"../../src","sources":["DrawerRouter.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["nanoid","SwitchRouter","TabActions","DrawerActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sourceRoot":"../../src","sources":["DrawerRouter.tsx"],"mappings":"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","ignoreList":[]}