You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
6.4 KiB
1 line
6.4 KiB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { nanoid } from 'nanoid/non-secure';\nvar BaseRouter = {\n getStateForAction: function getStateForAction(state, action) {\n switch (action.type) {\n case 'SET_PARAMS':\n {\n var index = action.source ? state.routes.findIndex(function (r) {\n return r.key === action.source;\n }) : state.index;\n if (index === -1) {\n return null;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n routes: state.routes.map(function (r, i) {\n return i === index ? _objectSpread(_objectSpread({}, r), {}, {\n params: _objectSpread(_objectSpread({}, r.params), action.payload.params)\n }) : r;\n })\n });\n }\n case 'RESET':\n {\n var nextState = action.payload;\n if (nextState.routes.length === 0 || nextState.routes.some(function (route) {\n return !state.routeNames.includes(route.name);\n })) {\n return null;\n }\n if (nextState.stale === false) {\n if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(function (name) {\n return !state.routeNames.includes(name);\n })) {\n return null;\n }\n return _objectSpread(_objectSpread({}, nextState), {}, {\n routes: nextState.routes.map(function (route) {\n return route.key ? route : _objectSpread(_objectSpread({}, route), {}, {\n key: route.name + \"-\" + nanoid()\n });\n })\n });\n }\n return nextState;\n }\n default:\n return null;\n }\n },\n shouldActionChangeFocus: function shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n }\n};\nexport default BaseRouter;","map":{"version":3,"sources":["BaseRouter.tsx"],"names":["nanoid","BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"mappings":";;;AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAY1C,IAAMC,UAAU,GAAG;EACjBC,iBAAiB,6BACfC,KAAY,EACZC,MAA8B,EACM;IACpC,QAAQA,MAAM,CAACC,IAAI;MACjB,KAAK,YAAY;QAAE;UACjB,IAAMC,KAAK,GAAGF,MAAM,CAACG,MAAM,GACvBJ,KAAK,CAACK,MAAM,CAACC,SAAS,CAAEC,UAAAA,CAAC;YAAA,OAAKA,CAAC,CAACC,GAAG,KAAKP,MAAM,CAACG,MAAM;UAAA,EAAC,GACtDJ,KAAK,CAACG,KAAK;UAEf,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI;UACb;UAEA,uCACKH,KAAK;YACRK,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACI,GAAG,CAAC,UAACF,CAAC,EAAEG,CAAC;cAAA,OAC5BA,CAAC,KAAKP,KAAK,mCACFI,CAAC;gBAAEI,MAAM,kCAAOJ,CAAC,CAACI,MAAM,GAAKV,MAAM,CAACW,OAAO,CAACD,MAAAA;cAAO,KACxDJ,CAAC;YAAA;UAAA;QAGX;MAEA,KAAK,OAAO;QAAE;UACZ,IAAMM,SAAS,GAAGZ,MAAM,CAACW,OAAsC;UAE/D,IACEC,SAAS,CAACR,MAAM,CAACS,MAAM,KAAK,CAAC,IAC7BD,SAAS,CAACR,MAAM,CAACU,IAAI,CAClBC,UAAAA,KAAuB;YAAA,OAAK,CAAChB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC;UAAA,EACpE,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,UAAAA,IAAI;cAAA,OAAK,CAACnB,KAAK,CAACiB,UAAU,CAACC,QAAQ,CAACC,IAAI,CAAC;YAAA,EAC3C,EACD;cACA,OAAO,IAAI;YACb;YAEA,uCACKN,SAAS;cACZR,MAAM,EAAEQ,SAAS,CAACR,MAAM,CAACI,GAAG,CAAEO,UAAAA,KAAK;gBAAA,OACjCA,KAAK,CAACR,GAAG,GAAGQ,KAAK,mCAAQA,KAAK;kBAAER,GAAG,EAAKQ,KAAK,CAACG,IAAK,SAAGtB,MAAM;gBAAG,EAAG;cAAA;YAAA;UAGxE;UAEA,OAAOgB,SAAS;QAClB;MAEA;QACE,OAAO,IAAI;IAAA;EAEjB,CAAC;EAEDQ,uBAAuB,mCAACpB,MAA8B,EAAE;IACtD,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU;EACnC;AACF,CAAC;AAED,eAAeJ,UAAU","sourceRoot":"../../src","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\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, action) {\n switch (action.type) {\n case 'SET_PARAMS':\n {\n const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n if (index === -1) {\n return null;\n }\n return {\n ...state,\n routes: state.routes.map((r, i) => i === index ? {\n ...r,\n params: {\n ...r.params,\n ...action.payload.params\n }\n } : r)\n };\n }\n case 'RESET':\n {\n const nextState = action.payload;\n if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {\n return null;\n }\n if (nextState.stale === false) {\n if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {\n return null;\n }\n return {\n ...nextState,\n routes: nextState.routes.map(route => route.key ? route : {\n ...route,\n key: `${route.name}-${nanoid()}`\n })\n };\n }\n return nextState;\n }\n default:\n return null;\n }\n },\n shouldActionChangeFocus(action) {\n return action.type === 'NAVIGATE';\n }\n};\nexport default BaseRouter;\n//# sourceMappingURL=BaseRouter.js.map"]},"metadata":{},"sourceType":"module"} |