@react-navigation/routers 6.1.5 → 6.1.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.
Files changed (41) hide show
  1. package/lib/commonjs/BaseRouter.js +10 -17
  2. package/lib/commonjs/BaseRouter.js.map +1 -1
  3. package/lib/commonjs/CommonActions.js +0 -6
  4. package/lib/commonjs/CommonActions.js.map +1 -1
  5. package/lib/commonjs/DrawerRouter.js +12 -45
  6. package/lib/commonjs/DrawerRouter.js.map +1 -1
  7. package/lib/commonjs/StackRouter.js +40 -73
  8. package/lib/commonjs/StackRouter.js.map +1 -1
  9. package/lib/commonjs/TabRouter.js +37 -61
  10. package/lib/commonjs/TabRouter.js.map +1 -1
  11. package/lib/commonjs/index.js +0 -11
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/module/BaseRouter.js +10 -16
  15. package/lib/module/BaseRouter.js.map +1 -1
  16. package/lib/module/CommonActions.js +0 -2
  17. package/lib/module/CommonActions.js.map +1 -1
  18. package/lib/module/DrawerRouter.js +12 -39
  19. package/lib/module/DrawerRouter.js.map +1 -1
  20. package/lib/module/StackRouter.js +40 -68
  21. package/lib/module/StackRouter.js.map +1 -1
  22. package/lib/module/TabRouter.js +37 -57
  23. package/lib/module/TabRouter.js.map +1 -1
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/types.js.map +1 -1
  26. package/lib/typescript/src/BaseRouter.d.ts +1 -0
  27. package/lib/typescript/src/BaseRouter.d.ts.map +1 -0
  28. package/lib/typescript/src/CommonActions.d.ts +1 -0
  29. package/lib/typescript/src/CommonActions.d.ts.map +1 -0
  30. package/lib/typescript/src/DrawerRouter.d.ts +1 -0
  31. package/lib/typescript/src/DrawerRouter.d.ts.map +1 -0
  32. package/lib/typescript/src/StackRouter.d.ts +1 -0
  33. package/lib/typescript/src/StackRouter.d.ts.map +1 -0
  34. package/lib/typescript/src/TabRouter.d.ts +1 -0
  35. package/lib/typescript/src/TabRouter.d.ts.map +1 -0
  36. package/lib/typescript/src/index.d.ts +1 -0
  37. package/lib/typescript/src/index.d.ts.map +1 -0
  38. package/lib/typescript/src/types.d.ts +1 -0
  39. package/lib/typescript/src/types.d.ts.map +1 -0
  40. package/package.json +3 -3
  41. package/src/TabRouter.tsx +17 -3
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _nonSecure = require("nanoid/non-secure");
9
-
10
8
  /**
11
9
  * Base router object that can be used when writing custom routers.
12
10
  * This provides few helper methods to handle common actions such as `RESET`.
@@ -17,52 +15,47 @@ const BaseRouter = {
17
15
  case 'SET_PARAMS':
18
16
  {
19
17
  const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
20
-
21
18
  if (index === -1) {
22
19
  return null;
23
20
  }
24
-
25
- return { ...state,
26
- routes: state.routes.map((r, i) => i === index ? { ...r,
27
- params: { ...r.params,
21
+ return {
22
+ ...state,
23
+ routes: state.routes.map((r, i) => i === index ? {
24
+ ...r,
25
+ params: {
26
+ ...r.params,
28
27
  ...action.payload.params
29
28
  }
30
29
  } : r)
31
30
  };
32
31
  }
33
-
34
32
  case 'RESET':
35
33
  {
36
34
  const nextState = action.payload;
37
-
38
35
  if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {
39
36
  return null;
40
37
  }
41
-
42
38
  if (nextState.stale === false) {
43
39
  if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {
44
40
  return null;
45
41
  }
46
-
47
- return { ...nextState,
48
- routes: nextState.routes.map(route => route.key ? route : { ...route,
42
+ return {
43
+ ...nextState,
44
+ routes: nextState.routes.map(route => route.key ? route : {
45
+ ...route,
49
46
  key: `${route.name}-${(0, _nonSecure.nanoid)()}`
50
47
  })
51
48
  };
52
49
  }
53
-
54
50
  return nextState;
55
51
  }
56
-
57
52
  default:
58
53
  return null;
59
54
  }
60
55
  },
61
-
62
56
  shouldActionChangeFocus(action) {
63
57
  return action.type === 'NAVIGATE';
64
58
  }
65
-
66
59
  };
67
60
  var _default = BaseRouter;
68
61
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","nanoid","shouldActionChangeFocus"],"sources":["BaseRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction<State extends NavigationState>(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState<State> | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = 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 return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState<State>;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n"],"mappings":";;;;;;;AAAA;;AAQA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG;EACjBC,iBAAiB,CACfC,KADe,EAEfC,MAFe,EAGqB;IACpC,QAAQA,MAAM,CAACC,IAAf;MACE,KAAK,YAAL;QAAmB;UACjB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAP,GACVJ,KAAK,CAACK,MAAN,CAAaC,SAAb,CAAwBC,CAAD,IAAOA,CAAC,CAACC,GAAF,KAAUP,MAAM,CAACG,MAA/C,CADU,GAEVJ,KAAK,CAACG,KAFV;;UAIA,IAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;YAChB,OAAO,IAAP;UACD;;UAED,OAAO,EACL,GAAGH,KADE;YAELK,MAAM,EAAEL,KAAK,CAACK,MAAN,CAAaI,GAAb,CAAiB,CAACF,CAAD,EAAIG,CAAJ,KACvBA,CAAC,KAAKP,KAAN,GACI,EAAE,GAAGI,CAAL;cAAQI,MAAM,EAAE,EAAE,GAAGJ,CAAC,CAACI,MAAP;gBAAe,GAAGV,MAAM,CAACW,OAAP,CAAeD;cAAjC;YAAhB,CADJ,GAEIJ,CAHE;UAFH,CAAP;QAQD;;MAED,KAAK,OAAL;QAAc;UACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAzB;;UAEA,IACEC,SAAS,CAACR,MAAV,CAAiBS,MAAjB,KAA4B,CAA5B,IACAD,SAAS,CAACR,MAAV,CAAiBU,IAAjB,CACGC,KAAD,IAA6B,CAAChB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BF,KAAK,CAACG,IAAhC,CADhC,CAFF,EAKE;YACA,OAAO,IAAP;UACD;;UAED,IAAIN,SAAS,CAACO,KAAV,KAAoB,KAAxB,EAA+B;YAC7B,IACEpB,KAAK,CAACiB,UAAN,CAAiBH,MAAjB,KAA4BD,SAAS,CAACI,UAAV,CAAqBH,MAAjD,IACAD,SAAS,CAACI,UAAV,CAAqBF,IAArB,CACGI,IAAD,IAAU,CAACnB,KAAK,CAACiB,UAAN,CAAiBC,QAAjB,CAA0BC,IAA1B,CADb,CAFF,EAKE;cACA,OAAO,IAAP;YACD;;YAED,OAAO,EACL,GAAGN,SADE;cAELR,MAAM,EAAEQ,SAAS,CAACR,MAAV,CAAiBI,GAAjB,CAAsBO,KAAD,IAC3BA,KAAK,CAACR,GAAN,GAAYQ,KAAZ,GAAoB,EAAE,GAAGA,KAAL;gBAAYR,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAG,IAAAE,iBAAA,GAAS;cAA3C,CADd;YAFH,CAAP;UAMD;;UAED,OAAOR,SAAP;QACD;;MAED;QACE,OAAO,IAAP;IAtDJ;EAwDD,CA7DgB;;EA+DjBS,uBAAuB,CAACrB,MAAD,EAAiC;IACtD,OAAOA,MAAM,CAACC,IAAP,KAAgB,UAAvB;EACD;;AAjEgB,CAAnB;eAoEeJ,U"}
1
+ {"version":3,"names":["BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","nanoid","shouldActionChangeFocus"],"sourceRoot":"../../src","sources":["BaseRouter.tsx"],"mappings":";;;;;;AAAA;AAQA;AACA;AACA;AACA;AACA,MAAMA,UAAU,GAAG;EACjBC,iBAAiB,CACfC,KAAY,EACZC,MAA8B,EACM;IACpC,QAAQA,MAAM,CAACC,IAAI;MACjB,KAAK,YAAY;QAAE;UACjB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAM,GACvBJ,KAAK,CAACK,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKP,MAAM,CAACG,MAAM,CAAC,GACtDJ,KAAK,CAACG,KAAK;UAEf,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI;UACb;UAEA,OAAO;YACL,GAAGH,KAAK;YACRK,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACI,GAAG,CAAC,CAACF,CAAC,EAAEG,CAAC,KAC5BA,CAAC,KAAKP,KAAK,GACP;cAAE,GAAGI,CAAC;cAAEI,MAAM,EAAE;gBAAE,GAAGJ,CAAC,CAACI,MAAM;gBAAE,GAAGV,MAAM,CAACW,OAAO,CAACD;cAAO;YAAE,CAAC,GAC3DJ,CAAC;UAET,CAAC;QACH;MAEA,KAAK,OAAO;QAAE;UACZ,MAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAsC;UAE/D,IACEC,SAAS,CAACR,MAAM,CAACS,MAAM,KAAK,CAAC,IAC7BD,SAAS,CAACR,MAAM,CAACU,IAAI,CAClBC,KAAuB,IAAK,CAAChB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC,CACpE,EACD;YACA,OAAO,IAAI;UACb;UAEA,IAAIN,SAAS,CAACO,KAAK,KAAK,KAAK,EAAE;YAC7B,IACEpB,KAAK,CAACiB,UAAU,CAACH,MAAM,KAAKD,SAAS,CAACI,UAAU,CAACH,MAAM,IACvDD,SAAS,CAACI,UAAU,CAACF,IAAI,CACtBI,IAAI,IAAK,CAACnB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACC,IAAI,CAAC,CAC3C,EACD;cACA,OAAO,IAAI;YACb;YAEA,OAAO;cACL,GAAGN,SAAS;cACZR,MAAM,EAAEQ,SAAS,CAACR,MAAM,CAACI,GAAG,CAAEO,KAAK,IACjCA,KAAK,CAACR,GAAG,GAAGQ,KAAK,GAAG;gBAAE,GAAGA,KAAK;gBAAER,GAAG,EAAG,GAAEQ,KAAK,CAACG,IAAK,IAAG,IAAAE,iBAAM,GAAG;cAAE,CAAC;YAEtE,CAAC;UACH;UAEA,OAAOR,SAAS;QAClB;MAEA;QACE,OAAO,IAAI;IAAC;EAElB,CAAC;EAEDS,uBAAuB,CAACrB,MAA8B,EAAE;IACtD,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU;EACnC;AACF,CAAC;AAAC,eAEaJ,UAAU;AAAA"}
@@ -7,13 +7,11 @@ exports.goBack = goBack;
7
7
  exports.navigate = navigate;
8
8
  exports.reset = reset;
9
9
  exports.setParams = setParams;
10
-
11
10
  function goBack() {
12
11
  return {
13
12
  type: 'GO_BACK'
14
13
  };
15
14
  }
16
-
17
15
  // eslint-disable-next-line no-redeclare
18
16
  function navigate() {
19
17
  if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {
@@ -26,25 +24,21 @@ function navigate() {
26
24
  };
27
25
  } else {
28
26
  const payload = (arguments.length <= 0 ? undefined : arguments[0]) || {};
29
-
30
27
  if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {
31
28
  throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');
32
29
  }
33
-
34
30
  return {
35
31
  type: 'NAVIGATE',
36
32
  payload
37
33
  };
38
34
  }
39
35
  }
40
-
41
36
  function reset(state) {
42
37
  return {
43
38
  type: 'RESET',
44
39
  payload: state
45
40
  };
46
41
  }
47
-
48
42
  function setParams(params) {
49
43
  return {
50
44
  type: 'SET_PARAMS',
@@ -1 +1 @@
1
- {"version":3,"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"sources":["CommonActions.tsx"],"sourcesContent":["import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState<NavigationState>\n | NavigationState\n | (Omit<NavigationState, 'routes'> & {\n routes: Omit<Route<string>, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n"],"mappings":";;;;;;;;;;AAgDO,SAASA,MAAT,GAA0B;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAR,CAAP;AACD;;AAeD;AACO,SAASC,QAAT,GAAwC;EAC7C,IAAI,8DAAmB,QAAvB,EAAiC;IAC/B,OAAO;MAAED,IAAI,EAAE,UAAR;MAAoBE,OAAO,EAAE;QAAEC,IAAI,kDAAN;QAAiBC,MAAM;MAAvB;IAA7B,CAAP;EACD,CAFD,MAEO;IACL,MAAMF,OAAO,GAAG,sDAAW,EAA3B;;IAEA,IAAI,CAACA,OAAO,CAACG,cAAR,CAAuB,KAAvB,CAAD,IAAkC,CAACH,OAAO,CAACG,cAAR,CAAuB,MAAvB,CAAvC,EAAuE;MACrE,MAAM,IAAIC,KAAJ,CACJ,mKADI,CAAN;IAGD;;IAED,OAAO;MAAEN,IAAI,EAAE,UAAR;MAAoBE;IAApB,CAAP;EACD;AACF;;AAEM,SAASK,KAAT,CAAeC,KAAf,EAAsD;EAC3D,OAAO;IAAER,IAAI,EAAE,OAAR;IAAiBE,OAAO,EAAEM;EAA1B,CAAP;AACD;;AAEM,SAASC,SAAT,CAAmBL,MAAnB,EAA2C;EAChD,OAAO;IAAEJ,IAAI,EAAE,YAAR;IAAsBE,OAAO,EAAE;MAAEE;IAAF;EAA/B,CAAP;AACD"}
1
+ {"version":3,"names":["goBack","type","navigate","payload","name","params","hasOwnProperty","Error","reset","state","setParams"],"sourceRoot":"../../src","sources":["CommonActions.tsx"],"mappings":";;;;;;;;;AAgDO,SAASA,MAAM,GAAW;EAC/B,OAAO;IAAEC,IAAI,EAAE;EAAU,CAAC;AAC5B;AAeA;AACO,SAASC,QAAQ,GAAuB;EAC7C,IAAI,yDAAc,KAAK,QAAQ,EAAE;IAC/B,OAAO;MAAED,IAAI,EAAE,UAAU;MAAEE,OAAO,EAAE;QAAEC,IAAI,kDAAS;QAAEC,MAAM;MAAU;IAAE,CAAC;EAC1E,CAAC,MAAM;IACL,MAAMF,OAAO,GAAG,sDAAW,CAAC,CAAC;IAE7B,IAAI,CAACA,OAAO,CAACG,cAAc,CAAC,KAAK,CAAC,IAAI,CAACH,OAAO,CAACG,cAAc,CAAC,MAAM,CAAC,EAAE;MACrE,MAAM,IAAIC,KAAK,CACb,mKAAmK,CACpK;IACH;IAEA,OAAO;MAAEN,IAAI,EAAE,UAAU;MAAEE;IAAQ,CAAC;EACtC;AACF;AAEO,SAASK,KAAK,CAACC,KAA6B,EAAU;EAC3D,OAAO;IAAER,IAAI,EAAE,OAAO;IAAEE,OAAO,EAAEM;EAAM,CAAC;AAC1C;AAEO,SAASC,SAAS,CAACL,MAAc,EAAU;EAChD,OAAO;IAAEJ,IAAI,EAAE,YAAY;IAAEE,OAAO,EAAE;MAAEE;IAAO;EAAE,CAAC;AACpD"}
@@ -5,93 +5,75 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.DrawerActions = void 0;
7
7
  exports.default = DrawerRouter;
8
-
9
8
  var _nonSecure = require("nanoid/non-secure");
10
-
11
9
  var _TabRouter = _interopRequireWildcard(require("./TabRouter"));
12
-
13
10
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
-
15
11
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
-
17
- const DrawerActions = { ..._TabRouter.TabActions,
18
-
12
+ const DrawerActions = {
13
+ ..._TabRouter.TabActions,
19
14
  openDrawer() {
20
15
  return {
21
16
  type: 'OPEN_DRAWER'
22
17
  };
23
18
  },
24
-
25
19
  closeDrawer() {
26
20
  return {
27
21
  type: 'CLOSE_DRAWER'
28
22
  };
29
23
  },
30
-
31
24
  toggleDrawer() {
32
25
  return {
33
26
  type: 'TOGGLE_DRAWER'
34
27
  };
35
28
  }
36
-
37
29
  };
38
30
  exports.DrawerActions = DrawerActions;
39
-
40
31
  function DrawerRouter(_ref) {
41
32
  let {
42
33
  defaultStatus = 'closed',
43
34
  ...rest
44
35
  } = _ref;
45
36
  const router = (0, _TabRouter.default)(rest);
46
-
47
37
  const isDrawerInHistory = state => {
48
38
  var _state$history;
49
-
50
39
  return Boolean((_state$history = state.history) === null || _state$history === void 0 ? void 0 : _state$history.some(it => it.type === 'drawer'));
51
40
  };
52
-
53
41
  const addDrawerToHistory = state => {
54
42
  if (isDrawerInHistory(state)) {
55
43
  return state;
56
44
  }
57
-
58
- return { ...state,
45
+ return {
46
+ ...state,
59
47
  history: [...state.history, {
60
48
  type: 'drawer',
61
49
  status: defaultStatus === 'open' ? 'closed' : 'open'
62
50
  }]
63
51
  };
64
52
  };
65
-
66
53
  const removeDrawerFromHistory = state => {
67
54
  if (!isDrawerInHistory(state)) {
68
55
  return state;
69
56
  }
70
-
71
- return { ...state,
57
+ return {
58
+ ...state,
72
59
  history: state.history.filter(it => it.type !== 'drawer')
73
60
  };
74
61
  };
75
-
76
62
  const openDrawer = state => {
77
63
  if (defaultStatus === 'open') {
78
64
  return removeDrawerFromHistory(state);
79
65
  }
80
-
81
66
  return addDrawerToHistory(state);
82
67
  };
83
-
84
68
  const closeDrawer = state => {
85
69
  if (defaultStatus === 'open') {
86
70
  return addDrawerToHistory(state);
87
71
  }
88
-
89
72
  return removeDrawerFromHistory(state);
90
73
  };
91
-
92
- return { ...router,
74
+ return {
75
+ ...router,
93
76
  type: 'drawer',
94
-
95
77
  getInitialState(_ref2) {
96
78
  let {
97
79
  routeNames,
@@ -103,88 +85,73 @@ function DrawerRouter(_ref) {
103
85
  routeParamList,
104
86
  routeGetIdList
105
87
  });
106
- return { ...state,
88
+ return {
89
+ ...state,
107
90
  default: defaultStatus,
108
91
  stale: false,
109
92
  type: 'drawer',
110
93
  key: `drawer-${(0, _nonSecure.nanoid)()}`
111
94
  };
112
95
  },
113
-
114
96
  getRehydratedState(partialState, _ref3) {
115
97
  let {
116
98
  routeNames,
117
99
  routeParamList,
118
100
  routeGetIdList
119
101
  } = _ref3;
120
-
121
102
  if (partialState.stale === false) {
122
103
  return partialState;
123
104
  }
124
-
125
105
  let state = router.getRehydratedState(partialState, {
126
106
  routeNames,
127
107
  routeParamList,
128
108
  routeGetIdList
129
109
  });
130
-
131
110
  if (isDrawerInHistory(partialState)) {
132
111
  // Re-sync the drawer entry in history to correct it if it was wrong
133
112
  state = removeDrawerFromHistory(state);
134
113
  state = addDrawerToHistory(state);
135
114
  }
136
-
137
- return { ...state,
115
+ return {
116
+ ...state,
138
117
  default: defaultStatus,
139
118
  type: 'drawer',
140
119
  key: `drawer-${(0, _nonSecure.nanoid)()}`
141
120
  };
142
121
  },
143
-
144
122
  getStateForRouteFocus(state, key) {
145
123
  const result = router.getStateForRouteFocus(state, key);
146
124
  return closeDrawer(result);
147
125
  },
148
-
149
126
  getStateForAction(state, action, options) {
150
127
  switch (action.type) {
151
128
  case 'OPEN_DRAWER':
152
129
  return openDrawer(state);
153
-
154
130
  case 'CLOSE_DRAWER':
155
131
  return closeDrawer(state);
156
-
157
132
  case 'TOGGLE_DRAWER':
158
133
  if (isDrawerInHistory(state)) {
159
134
  return removeDrawerFromHistory(state);
160
135
  }
161
-
162
136
  return addDrawerToHistory(state);
163
-
164
137
  case 'JUMP_TO':
165
138
  case 'NAVIGATE':
166
139
  {
167
140
  const result = router.getStateForAction(state, action, options);
168
-
169
141
  if (result != null && result.index !== state.index) {
170
142
  return closeDrawer(result);
171
143
  }
172
-
173
144
  return result;
174
145
  }
175
-
176
146
  case 'GO_BACK':
177
147
  if (isDrawerInHistory(state)) {
178
148
  return removeDrawerFromHistory(state);
179
149
  }
180
-
181
150
  return router.getStateForAction(state, action, options);
182
-
183
151
  default:
184
152
  return router.getStateForAction(state, action, options);
185
153
  }
186
154
  },
187
-
188
155
  actionCreators: DrawerActions
189
156
  };
190
157
  }
@@ -1 +1 @@
1
- {"version":3,"names":["DrawerActions","TabActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","TabRouter","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","nanoid","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sources":["DrawerRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport TabRouter, {\n TabActionHelpers,\n TabActions,\n TabActionType,\n TabNavigationState,\n TabRouterOptions,\n} from './TabRouter';\nimport type {\n CommonNavigationAction,\n ParamListBase,\n PartialState,\n Router,\n} from './types';\nexport type DrawerStatus = 'open' | 'closed';\n\nexport type DrawerActionType =\n | TabActionType\n | {\n type: 'OPEN_DRAWER' | 'CLOSE_DRAWER' | 'TOGGLE_DRAWER';\n source?: string;\n target?: string;\n };\n\nexport type DrawerRouterOptions = TabRouterOptions & {\n defaultStatus?: DrawerStatus;\n};\n\nexport type DrawerNavigationState<ParamList extends ParamListBase> = Omit<\n TabNavigationState<ParamList>,\n 'type' | 'history'\n> & {\n /**\n * Type of the router, in this case, it's drawer.\n */\n type: 'drawer';\n /**\n * Default status of the drawer.\n */\n default: DrawerStatus;\n /**\n * List of previously visited route keys and drawer open status.\n */\n history: (\n | { type: 'route'; key: string }\n | { type: 'drawer'; status: DrawerStatus }\n )[];\n};\n\nexport type DrawerActionHelpers<ParamList extends ParamListBase> =\n TabActionHelpers<ParamList> & {\n /**\n * Open the drawer sidebar.\n */\n openDrawer(): void;\n\n /**\n * Close the drawer sidebar.\n */\n closeDrawer(): void;\n\n /**\n * Open the drawer sidebar if closed, or close if opened.\n */\n toggleDrawer(): void;\n };\n\nexport const DrawerActions = {\n ...TabActions,\n openDrawer(): DrawerActionType {\n return { type: 'OPEN_DRAWER' };\n },\n closeDrawer(): DrawerActionType {\n return { type: 'CLOSE_DRAWER' };\n },\n toggleDrawer(): DrawerActionType {\n return { type: 'TOGGLE_DRAWER' };\n },\n};\n\nexport default function DrawerRouter({\n defaultStatus = 'closed',\n ...rest\n}: DrawerRouterOptions): Router<\n DrawerNavigationState<ParamListBase>,\n DrawerActionType | CommonNavigationAction\n> {\n const router = TabRouter(rest) as unknown as Router<\n DrawerNavigationState<ParamListBase>,\n TabActionType | CommonNavigationAction\n >;\n\n const isDrawerInHistory = (\n state:\n | DrawerNavigationState<ParamListBase>\n | PartialState<DrawerNavigationState<ParamListBase>>\n ) => Boolean(state.history?.some((it) => it.type === 'drawer'));\n\n const addDrawerToHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: [\n ...state.history,\n {\n type: 'drawer',\n status: defaultStatus === 'open' ? 'closed' : 'open',\n },\n ],\n };\n };\n\n const removeDrawerFromHistory = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (!isDrawerInHistory(state)) {\n return state;\n }\n\n return {\n ...state,\n history: state.history.filter((it) => it.type !== 'drawer'),\n };\n };\n\n const openDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n };\n\n const closeDrawer = (\n state: DrawerNavigationState<ParamListBase>\n ): DrawerNavigationState<ParamListBase> => {\n if (defaultStatus === 'open') {\n return addDrawerToHistory(state);\n }\n\n return removeDrawerFromHistory(state);\n };\n\n return {\n ...router,\n\n type: 'drawer',\n\n getInitialState({ routeNames, routeParamList, routeGetIdList }) {\n const state = router.getInitialState({\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n return {\n ...state,\n default: defaultStatus,\n stale: false,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getRehydratedState(\n partialState,\n { routeNames, routeParamList, routeGetIdList }\n ) {\n if (partialState.stale === false) {\n return partialState;\n }\n\n let state = router.getRehydratedState(partialState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n });\n\n if (isDrawerInHistory(partialState)) {\n // Re-sync the drawer entry in history to correct it if it was wrong\n state = removeDrawerFromHistory(state);\n state = addDrawerToHistory(state);\n }\n\n return {\n ...state,\n default: defaultStatus,\n type: 'drawer',\n key: `drawer-${nanoid()}`,\n };\n },\n\n getStateForRouteFocus(state, key) {\n const result = router.getStateForRouteFocus(state, key);\n\n return closeDrawer(result);\n },\n\n getStateForAction(state, action, options) {\n switch (action.type) {\n case 'OPEN_DRAWER':\n return openDrawer(state);\n\n case 'CLOSE_DRAWER':\n return closeDrawer(state);\n\n case 'TOGGLE_DRAWER':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return addDrawerToHistory(state);\n\n case 'JUMP_TO':\n case 'NAVIGATE': {\n const result = router.getStateForAction(state, action, options);\n\n if (result != null && result.index !== state.index) {\n return closeDrawer(result as DrawerNavigationState<ParamListBase>);\n }\n\n return result;\n }\n\n case 'GO_BACK':\n if (isDrawerInHistory(state)) {\n return removeDrawerFromHistory(state);\n }\n\n return router.getStateForAction(state, action, options);\n\n default:\n return router.getStateForAction(state, action, options);\n }\n },\n\n actionCreators: DrawerActions,\n };\n}\n"],"mappings":";;;;;;;;AAAA;;AAEA;;;;;;AAkEO,MAAMA,aAAa,GAAG,EAC3B,GAAGC,qBADwB;;EAE3BC,UAAU,GAAqB;IAC7B,OAAO;MAAEC,IAAI,EAAE;IAAR,CAAP;EACD,CAJ0B;;EAK3BC,WAAW,GAAqB;IAC9B,OAAO;MAAED,IAAI,EAAE;IAAR,CAAP;EACD,CAP0B;;EAQ3BE,YAAY,GAAqB;IAC/B,OAAO;MAAEF,IAAI,EAAE;IAAR,CAAP;EACD;;AAV0B,CAAtB;;;AAaQ,SAASG,YAAT,OAMb;EAAA,IANmC;IACnCC,aAAa,GAAG,QADmB;IAEnC,GAAGC;EAFgC,CAMnC;EACA,MAAMC,MAAM,GAAG,IAAAC,kBAAA,EAAUF,IAAV,CAAf;;EAKA,MAAMG,iBAAiB,GACrBC,KADwB;IAAA;;IAAA,OAIrBC,OAAO,mBAACD,KAAK,CAACE,OAAP,mDAAC,eAAeC,IAAf,CAAqBC,EAAD,IAAQA,EAAE,CAACb,IAAH,KAAY,QAAxC,CAAD,CAJc;EAAA,CAA1B;;EAMA,MAAMc,kBAAkB,GACtBL,KADyB,IAEgB;IACzC,IAAID,iBAAiB,CAACC,KAAD,CAArB,EAA8B;MAC5B,OAAOA,KAAP;IACD;;IAED,OAAO,EACL,GAAGA,KADE;MAELE,OAAO,EAAE,CACP,GAAGF,KAAK,CAACE,OADF,EAEP;QACEX,IAAI,EAAE,QADR;QAEEe,MAAM,EAAEX,aAAa,KAAK,MAAlB,GAA2B,QAA3B,GAAsC;MAFhD,CAFO;IAFJ,CAAP;EAUD,CAjBD;;EAmBA,MAAMY,uBAAuB,GAC3BP,KAD8B,IAEW;IACzC,IAAI,CAACD,iBAAiB,CAACC,KAAD,CAAtB,EAA+B;MAC7B,OAAOA,KAAP;IACD;;IAED,OAAO,EACL,GAAGA,KADE;MAELE,OAAO,EAAEF,KAAK,CAACE,OAAN,CAAcM,MAAd,CAAsBJ,EAAD,IAAQA,EAAE,CAACb,IAAH,KAAY,QAAzC;IAFJ,CAAP;EAID,CAXD;;EAaA,MAAMD,UAAU,GACdU,KADiB,IAEwB;IACzC,IAAIL,aAAa,KAAK,MAAtB,EAA8B;MAC5B,OAAOY,uBAAuB,CAACP,KAAD,CAA9B;IACD;;IAED,OAAOK,kBAAkB,CAACL,KAAD,CAAzB;EACD,CARD;;EAUA,MAAMR,WAAW,GACfQ,KADkB,IAEuB;IACzC,IAAIL,aAAa,KAAK,MAAtB,EAA8B;MAC5B,OAAOU,kBAAkB,CAACL,KAAD,CAAzB;IACD;;IAED,OAAOO,uBAAuB,CAACP,KAAD,CAA9B;EACD,CARD;;EAUA,OAAO,EACL,GAAGH,MADE;IAGLN,IAAI,EAAE,QAHD;;IAKLkB,eAAe,QAAiD;MAAA,IAAhD;QAAEC,UAAF;QAAcC,cAAd;QAA8BC;MAA9B,CAAgD;MAC9D,MAAMZ,KAAK,GAAGH,MAAM,CAACY,eAAP,CAAuB;QACnCC,UADmC;QAEnCC,cAFmC;QAGnCC;MAHmC,CAAvB,CAAd;MAMA,OAAO,EACL,GAAGZ,KADE;QAELa,OAAO,EAAElB,aAFJ;QAGLmB,KAAK,EAAE,KAHF;QAILvB,IAAI,EAAE,QAJD;QAKLwB,GAAG,EAAG,UAAS,IAAAC,iBAAA,GAAS;MALnB,CAAP;IAOD,CAnBI;;IAqBLC,kBAAkB,CAChBC,YADgB,SAGhB;MAAA,IADA;QAAER,UAAF;QAAcC,cAAd;QAA8BC;MAA9B,CACA;;MACA,IAAIM,YAAY,CAACJ,KAAb,KAAuB,KAA3B,EAAkC;QAChC,OAAOI,YAAP;MACD;;MAED,IAAIlB,KAAK,GAAGH,MAAM,CAACoB,kBAAP,CAA0BC,YAA1B,EAAwC;QAClDR,UADkD;QAElDC,cAFkD;QAGlDC;MAHkD,CAAxC,CAAZ;;MAMA,IAAIb,iBAAiB,CAACmB,YAAD,CAArB,EAAqC;QACnC;QACAlB,KAAK,GAAGO,uBAAuB,CAACP,KAAD,CAA/B;QACAA,KAAK,GAAGK,kBAAkB,CAACL,KAAD,CAA1B;MACD;;MAED,OAAO,EACL,GAAGA,KADE;QAELa,OAAO,EAAElB,aAFJ;QAGLJ,IAAI,EAAE,QAHD;QAILwB,GAAG,EAAG,UAAS,IAAAC,iBAAA,GAAS;MAJnB,CAAP;IAMD,CA/CI;;IAiDLG,qBAAqB,CAACnB,KAAD,EAAQe,GAAR,EAAa;MAChC,MAAMK,MAAM,GAAGvB,MAAM,CAACsB,qBAAP,CAA6BnB,KAA7B,EAAoCe,GAApC,CAAf;MAEA,OAAOvB,WAAW,CAAC4B,MAAD,CAAlB;IACD,CArDI;;IAuDLC,iBAAiB,CAACrB,KAAD,EAAQsB,MAAR,EAAgBC,OAAhB,EAAyB;MACxC,QAAQD,MAAM,CAAC/B,IAAf;QACE,KAAK,aAAL;UACE,OAAOD,UAAU,CAACU,KAAD,CAAjB;;QAEF,KAAK,cAAL;UACE,OAAOR,WAAW,CAACQ,KAAD,CAAlB;;QAEF,KAAK,eAAL;UACE,IAAID,iBAAiB,CAACC,KAAD,CAArB,EAA8B;YAC5B,OAAOO,uBAAuB,CAACP,KAAD,CAA9B;UACD;;UAED,OAAOK,kBAAkB,CAACL,KAAD,CAAzB;;QAEF,KAAK,SAAL;QACA,KAAK,UAAL;UAAiB;YACf,MAAMoB,MAAM,GAAGvB,MAAM,CAACwB,iBAAP,CAAyBrB,KAAzB,EAAgCsB,MAAhC,EAAwCC,OAAxC,CAAf;;YAEA,IAAIH,MAAM,IAAI,IAAV,IAAkBA,MAAM,CAACI,KAAP,KAAiBxB,KAAK,CAACwB,KAA7C,EAAoD;cAClD,OAAOhC,WAAW,CAAC4B,MAAD,CAAlB;YACD;;YAED,OAAOA,MAAP;UACD;;QAED,KAAK,SAAL;UACE,IAAIrB,iBAAiB,CAACC,KAAD,CAArB,EAA8B;YAC5B,OAAOO,uBAAuB,CAACP,KAAD,CAA9B;UACD;;UAED,OAAOH,MAAM,CAACwB,iBAAP,CAAyBrB,KAAzB,EAAgCsB,MAAhC,EAAwCC,OAAxC,CAAP;;QAEF;UACE,OAAO1B,MAAM,CAACwB,iBAAP,CAAyBrB,KAAzB,EAAgCsB,MAAhC,EAAwCC,OAAxC,CAAP;MAjCJ;IAmCD,CA3FI;;IA6FLE,cAAc,EAAErC;EA7FX,CAAP;AA+FD"}
1
+ {"version":3,"names":["DrawerActions","TabActions","openDrawer","type","closeDrawer","toggleDrawer","DrawerRouter","defaultStatus","rest","router","TabRouter","isDrawerInHistory","state","Boolean","history","some","it","addDrawerToHistory","status","removeDrawerFromHistory","filter","getInitialState","routeNames","routeParamList","routeGetIdList","default","stale","key","nanoid","getRehydratedState","partialState","getStateForRouteFocus","result","getStateForAction","action","options","index","actionCreators"],"sourceRoot":"../../src","sources":["DrawerRouter.tsx"],"mappings":"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"}