one 1.1.473 → 1.1.475
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/dist/cjs/Root.cjs +5 -1
- package/dist/cjs/Root.js +2 -2
- package/dist/cjs/Root.js.map +1 -1
- package/dist/cjs/Root.native.js +5 -2
- package/dist/cjs/Root.native.js.map +2 -2
- package/dist/cjs/createApp.cjs +2 -0
- package/dist/cjs/createApp.js +16 -2
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createApp.native.js +1 -0
- package/dist/cjs/createApp.native.js.map +2 -2
- package/dist/cjs/fork/__tests__/getPathFromState.test.cjs +1440 -0
- package/dist/cjs/fork/__tests__/getPathFromState.test.js +1559 -0
- package/dist/cjs/fork/__tests__/getPathFromState.test.js.map +6 -0
- package/dist/cjs/fork/__tests__/getPathFromState.test.native.js +1726 -0
- package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +6 -0
- package/dist/cjs/fork/__tests__/getStateFromPath.test.cjs +2565 -0
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js +2702 -0
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +6 -0
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js +2861 -0
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +6 -0
- package/dist/cjs/fork/getPathFromState.cjs +2 -1
- package/dist/cjs/fork/getPathFromState.js +1 -1
- package/dist/cjs/fork/getPathFromState.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js +10 -5
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.test.cjs +113 -0
- package/dist/cjs/fork/getPathFromState.test.js +122 -0
- package/dist/cjs/fork/getPathFromState.test.js.map +6 -0
- package/dist/cjs/fork/getPathFromState.test.native.js +135 -0
- package/dist/cjs/fork/getPathFromState.test.native.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath.test.cjs +229 -0
- package/dist/cjs/fork/getStateFromPath.test.js +290 -0
- package/dist/cjs/fork/getStateFromPath.test.js.map +6 -0
- package/dist/cjs/fork/getStateFromPath.test.native.js +374 -0
- package/dist/cjs/fork/getStateFromPath.test.native.js.map +6 -0
- package/dist/cjs/render.cjs +1 -1
- package/dist/cjs/render.js +1 -1
- package/dist/cjs/render.js.map +1 -1
- package/dist/cjs/router/FlagsContext.cjs +27 -0
- package/dist/cjs/router/FlagsContext.js +22 -0
- package/dist/cjs/router/FlagsContext.js.map +6 -0
- package/dist/cjs/router/FlagsContext.native.js +26 -0
- package/dist/cjs/router/FlagsContext.native.js.map +6 -0
- package/dist/cjs/router/getRoutes.cjs +11 -1
- package/dist/cjs/router/getRoutes.js +11 -1
- package/dist/cjs/router/getRoutes.js.map +1 -1
- package/dist/cjs/router/getRoutes.native.js +11 -1
- package/dist/cjs/router/getRoutes.native.js.map +2 -2
- package/dist/cjs/router/matchers.test.cjs +38 -0
- package/dist/cjs/router/matchers.test.js +42 -0
- package/dist/cjs/router/matchers.test.js.map +6 -0
- package/dist/cjs/router/matchers.test.native.js +39 -0
- package/dist/cjs/router/matchers.test.native.js.map +6 -0
- package/dist/cjs/router/router.cjs +3 -35
- package/dist/cjs/router/router.js +2 -26
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +2 -33
- package/dist/cjs/router/router.native.js.map +2 -2
- package/dist/cjs/router/utils/getNavigateAction.cjs +61 -0
- package/dist/cjs/router/utils/getNavigateAction.js +46 -0
- package/dist/cjs/router/utils/getNavigateAction.js.map +6 -0
- package/dist/cjs/router/utils/getNavigateAction.native.js +58 -0
- package/dist/cjs/router/utils/getNavigateAction.native.js.map +6 -0
- package/dist/cjs/router/utils/getNavigateAction.test.cjs +259 -0
- package/dist/cjs/router/utils/getNavigateAction.test.js +295 -0
- package/dist/cjs/router/utils/getNavigateAction.test.js.map +6 -0
- package/dist/cjs/router/utils/getNavigateAction.test.native.js +330 -0
- package/dist/cjs/router/utils/getNavigateAction.test.native.js.map +6 -0
- package/dist/cjs/testing-utils.cjs +63 -0
- package/dist/cjs/testing-utils.js +55 -0
- package/dist/cjs/testing-utils.js.map +6 -0
- package/dist/cjs/testing-utils.native.js +79 -0
- package/dist/cjs/testing-utils.native.js.map +6 -0
- package/dist/cjs/views/Navigator.cjs +8 -1
- package/dist/cjs/views/Navigator.js +25 -11
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +7 -4
- package/dist/cjs/views/Navigator.native.js.map +2 -2
- package/dist/cjs/vite/one.cjs +6 -1
- package/dist/cjs/vite/one.js +6 -1
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +7 -2
- package/dist/cjs/vite/one.native.js.map +2 -2
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +2 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +2 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +2 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +2 -2
- package/dist/esm/Root.js +2 -1
- package/dist/esm/Root.js.map +1 -1
- package/dist/esm/Root.mjs +5 -1
- package/dist/esm/Root.mjs.map +1 -1
- package/dist/esm/Root.native.js +5 -1
- package/dist/esm/Root.native.js.map +1 -1
- package/dist/esm/createApp.js +16 -2
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +2 -0
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createApp.native.js +1 -0
- package/dist/esm/createApp.native.js.map +1 -1
- package/dist/esm/fork/__tests__/getPathFromState.test.js +1561 -0
- package/dist/esm/fork/__tests__/getPathFromState.test.js.map +6 -0
- package/dist/esm/fork/__tests__/getPathFromState.test.mjs +1441 -0
- package/dist/esm/fork/__tests__/getPathFromState.test.mjs.map +1 -0
- package/dist/esm/fork/__tests__/getPathFromState.test.native.js +1580 -0
- package/dist/esm/fork/__tests__/getPathFromState.test.native.js.map +1 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.js +2706 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +6 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.mjs +2566 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.native.js +2636 -0
- package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -0
- package/dist/esm/fork/getPathFromState.js +1 -1
- package/dist/esm/fork/getPathFromState.js.map +1 -1
- package/dist/esm/fork/getPathFromState.mjs +2 -1
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js +9 -5
- package/dist/esm/fork/getPathFromState.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState.test.js +123 -0
- package/dist/esm/fork/getPathFromState.test.js.map +6 -0
- package/dist/esm/fork/getPathFromState.test.mjs +114 -0
- package/dist/esm/fork/getPathFromState.test.mjs.map +1 -0
- package/dist/esm/fork/getPathFromState.test.native.js +122 -0
- package/dist/esm/fork/getPathFromState.test.native.js.map +1 -0
- package/dist/esm/fork/getStateFromPath.test.js +294 -0
- package/dist/esm/fork/getStateFromPath.test.js.map +6 -0
- package/dist/esm/fork/getStateFromPath.test.mjs +230 -0
- package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -0
- package/dist/esm/fork/getStateFromPath.test.native.js +233 -0
- package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -0
- package/dist/esm/render.js +1 -1
- package/dist/esm/render.js.map +1 -1
- package/dist/esm/render.mjs +1 -1
- package/dist/esm/render.mjs.map +1 -1
- package/dist/esm/router/FlagsContext.js +6 -0
- package/dist/esm/router/FlagsContext.js.map +6 -0
- package/dist/esm/router/FlagsContext.mjs +4 -0
- package/dist/esm/router/FlagsContext.mjs.map +1 -0
- package/dist/esm/router/FlagsContext.native.js +4 -0
- package/dist/esm/router/FlagsContext.native.js.map +1 -0
- package/dist/esm/router/getRoutes.js +11 -1
- package/dist/esm/router/getRoutes.js.map +1 -1
- package/dist/esm/router/getRoutes.mjs +11 -1
- package/dist/esm/router/getRoutes.mjs.map +1 -1
- package/dist/esm/router/getRoutes.native.js +11 -1
- package/dist/esm/router/getRoutes.native.js.map +1 -1
- package/dist/esm/router/matchers.test.js +50 -0
- package/dist/esm/router/matchers.test.js.map +6 -0
- package/dist/esm/router/matchers.test.mjs +39 -0
- package/dist/esm/router/matchers.test.mjs.map +1 -0
- package/dist/esm/router/matchers.test.native.js +39 -0
- package/dist/esm/router/matchers.test.native.js.map +1 -0
- package/dist/esm/router/router.js +1 -26
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +1 -33
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +1 -37
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/utils/getNavigateAction.js +32 -0
- package/dist/esm/router/utils/getNavigateAction.js.map +6 -0
- package/dist/esm/router/utils/getNavigateAction.mjs +38 -0
- package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -0
- package/dist/esm/router/utils/getNavigateAction.native.js +42 -0
- package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -0
- package/dist/esm/router/utils/getNavigateAction.test.js +296 -0
- package/dist/esm/router/utils/getNavigateAction.test.js.map +6 -0
- package/dist/esm/router/utils/getNavigateAction.test.mjs +260 -0
- package/dist/esm/router/utils/getNavigateAction.test.mjs.map +1 -0
- package/dist/esm/router/utils/getNavigateAction.test.native.js +273 -0
- package/dist/esm/router/utils/getNavigateAction.test.native.js.map +1 -0
- package/dist/esm/testing-utils.js +33 -0
- package/dist/esm/testing-utils.js.map +6 -0
- package/dist/esm/testing-utils.mjs +27 -0
- package/dist/esm/testing-utils.mjs.map +1 -0
- package/dist/esm/testing-utils.native.js +38 -0
- package/dist/esm/testing-utils.native.js.map +1 -0
- package/dist/esm/views/Navigator.js +29 -11
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +8 -1
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +8 -2
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/vite/one.js +6 -1
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +6 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +9 -2
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +2 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +2 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +2 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +13 -10
- package/src/Root.tsx +12 -2
- package/src/createApp.native.tsx +8 -2
- package/src/createApp.tsx +18 -3
- package/src/fork/__tests__/README.md +8 -0
- package/src/fork/__tests__/getPathFromState.test.tsx +1809 -0
- package/src/fork/__tests__/getStateFromPath.test.tsx +3188 -0
- package/src/fork/getPathFromState.test.ts +146 -0
- package/src/fork/getPathFromState.ts +1 -1
- package/src/fork/getStateFromPath.test.ts +345 -0
- package/src/render.tsx +3 -3
- package/src/router/FlagsContext.ts +4 -0
- package/src/router/getRoutes.ts +14 -2
- package/src/router/matchers.test.ts +120 -0
- package/src/router/router.ts +1 -113
- package/src/router/utils/getNavigateAction.test.ts +334 -0
- package/src/router/utils/getNavigateAction.ts +120 -0
- package/src/testing-utils.ts +56 -0
- package/src/views/Navigator.tsx +34 -10
- package/src/vite/one.ts +5 -0
- package/src/vite/plugins/virtualEntryPlugin.ts +4 -1
- package/src/vite/types.ts +18 -0
- package/types/Root.d.ts +1 -0
- package/types/Root.d.ts.map +1 -1
- package/types/createApp.d.ts +2 -0
- package/types/createApp.d.ts.map +1 -1
- package/types/createApp.native.d.ts +2 -0
- package/types/createApp.native.d.ts.map +1 -1
- package/types/fork/getPathFromState.test.d.ts +2 -0
- package/types/fork/getPathFromState.test.d.ts.map +1 -0
- package/types/fork/getStateFromPath.test.d.ts +2 -0
- package/types/fork/getStateFromPath.test.d.ts.map +1 -0
- package/types/router/FlagsContext.d.ts +3 -0
- package/types/router/FlagsContext.d.ts.map +1 -0
- package/types/router/getRoutes.d.ts.map +1 -1
- package/types/router/matchers.test.d.ts +2 -0
- package/types/router/matchers.test.d.ts.map +1 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/router/utils/getNavigateAction.d.ts +17 -0
- package/types/router/utils/getNavigateAction.d.ts.map +1 -0
- package/types/router/utils/getNavigateAction.test.d.ts +2 -0
- package/types/router/utils/getNavigateAction.test.d.ts.map +1 -0
- package/types/testing-utils.d.ts +26 -0
- package/types/testing-utils.d.ts.map +1 -0
- package/types/views/Navigator.d.ts +1 -1
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts +2 -0
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +16 -0
- package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,42 @@
|
|
1
|
+
import { nanoid } from "nanoid";
|
2
|
+
import { matchDynamicName } from "../matchers.native.js";
|
3
|
+
import { setLastAction } from "../lastAction.native.js";
|
4
|
+
function getNavigateAction(actionState, navigationState) {
|
5
|
+
for (var type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "NAVIGATE", actionStateRoute; actionState && navigationState;) {
|
6
|
+
var _actionStateRoute_params,
|
7
|
+
_stateRoute_params,
|
8
|
+
stateRoute = navigationState.routes[navigationState.index];
|
9
|
+
actionStateRoute = actionState.routes[actionState.routes.length - 1];
|
10
|
+
var childState = actionStateRoute.state,
|
11
|
+
nextNavigationState = stateRoute.state,
|
12
|
+
dynamicName = matchDynamicName(actionStateRoute.name),
|
13
|
+
didActionAndCurrentStateDiverge = actionStateRoute.name !== stateRoute.name ||
|
14
|
+
// !deepEqual(actionStateRoute.params, stateRoute.params) ||
|
15
|
+
!childState || !nextNavigationState || dynamicName && ((_actionStateRoute_params = actionStateRoute.params) === null || _actionStateRoute_params === void 0 ? void 0 : _actionStateRoute_params[dynamicName]) !== ((_stateRoute_params = stateRoute.params) === null || _stateRoute_params === void 0 ? void 0 : _stateRoute_params[dynamicName]);
|
16
|
+
if (didActionAndCurrentStateDiverge) break;
|
17
|
+
actionState = childState, navigationState = nextNavigationState;
|
18
|
+
}
|
19
|
+
for (var rootPayload = {
|
20
|
+
params: {}
|
21
|
+
}, payload = rootPayload, params = payload.params; actionStateRoute;) {
|
22
|
+
var _actionStateRoute_state, _actionStateRoute_state1, _payload;
|
23
|
+
Object.assign(params, {
|
24
|
+
...actionStateRoute.params
|
25
|
+
}), payload.screen = actionStateRoute.name, payload.params = {
|
26
|
+
...actionStateRoute.params
|
27
|
+
}, actionStateRoute = (_actionStateRoute_state1 = actionStateRoute.state) === null || _actionStateRoute_state1 === void 0 ? void 0 : _actionStateRoute_state1.routes[((_actionStateRoute_state = actionStateRoute.state) === null || _actionStateRoute_state === void 0 ? void 0 : _actionStateRoute_state.routes.length) - 1];
|
28
|
+
var _params;
|
29
|
+
(_params = (_payload = payload).params) !== null && _params !== void 0 || (_payload.params = {}), payload = payload.params, params = payload;
|
30
|
+
}
|
31
|
+
return type === "PUSH" && (setLastAction(), type = "NAVIGATE", navigationState.type === "stack" && (rootPayload.key = `${rootPayload.name}-${nanoid()}`)), type === "REPLACE" && navigationState.type === "tab" && (type = "JUMP_TO"), {
|
32
|
+
type,
|
33
|
+
target: navigationState.key,
|
34
|
+
payload: {
|
35
|
+
key: rootPayload.key,
|
36
|
+
name: rootPayload.screen,
|
37
|
+
params: rootPayload.params
|
38
|
+
}
|
39
|
+
};
|
40
|
+
}
|
41
|
+
export { getNavigateAction };
|
42
|
+
//# sourceMappingURL=getNavigateAction.native.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["nanoid","matchDynamicName","setLastAction","getNavigateAction","actionState","navigationState","type","arguments","length","actionStateRoute","_actionStateRoute_params","_stateRoute_params","stateRoute","routes","index","childState","state","nextNavigationState","dynamicName","name","didActionAndCurrentStateDiverge","params","rootPayload","payload","_actionStateRoute_state","_actionStateRoute_state1","_payload","Object","assign","screen","_params","key","target"],"sources":["../../../../src/router/utils/getNavigateAction.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AAGvB,SAASC,gBAAA,QAAwB;AACjC,SAASC,aAAA,QAAqB;AAKvB,SAASC,kBAEdC,WAAA,EACAC,eAAA,EACA;EAiBA,KAAI,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,kBAAAE,gBAAA,EAAAL,WAAA,IAAAC,eAAA;IAGJ,IAAAK,wBAAsB;MAAAC,kBAAiB;MAAAC,UAAA,GAAAP,eAAA,CAAAQ,MAAA,CAAAR,eAAA,CAAAS,KAAA;IACrCL,gBAAM,GAAaL,WAAA,CAAAS,MAAgB,CAAAT,WAAO,CAAAS,MAAA,CAAAL,MAAqB;IAE/D,IAAAO,UAAA,GAAAN,gBAA+B,CAAAO,KAAO;MAAAC,mBAAmB,GAAAL,UAAU,CAAAI,KAAA;MAAAE,WAAA,GAAAjB,gBAAA,CAAAQ,gBAAA,CAAAU,IAAA;MAAAC,+BAAA,GAAAX,gBAAA,CAAAU,IAAA,KAAAP,UAAA,CAAAO,IAAA;MAAA;MAEnE,CAAAJ,UAAM,KAAAE,mBAAa,IAAiBC,WAC9B,MAAAR,wBAAiC,GAEjCD,gBAAc,CAAAY,MAAA,UAAiB,IAAAX,wBAAqB,uBAAAA,wBAAA,CAAAQ,WAAA,SAAAP,kBAAA,GAAAC,UAAA,CAAAS,MAAA,cAAAV,kBAAA,uBAAAA,kBAAA,CAAAO,WAAA;IAS1D,IANEE,+BAA0B,EAEzB;IAKDhB,WAAA,GAAAW,UAAA,EAAAV,eAAA,GAAAY,mBAAA;EAGF;EAEF,SAAAK,WAAA;MAMAD,MAAM;IACN,GAAAE,OAAI,GAAAD,WAAU,EAAAD,MACV,GAAAE,OAAS,CAAAF,MAAQ,EAAAZ,gBAAA;IAGrB,IAAAe,uBAAO,EAAAC,wBAAA,EAAAC,QAAA;IACLC,MAAA,CAAOC,MAAA,CAAOP,MAAA,EAAQ;MAYxB,GAAIZ,gBAAS,CAAAY;IA+BX,IAAAE,OAAA,CAAAM,MAAA,GAAApB,gBAAA,CAAAU,IAAA,EAAAI,OAAA,CAAAF,MAAA;MACA,GAAAZ,gBAAQ,CAAAY;IACR,GAAAZ,gBAAS,IAAAgB,wBAAA,GAAAhB,gBAAA,CAAAO,KAAA,cAAAS,wBAAA,uBAAAA,wBAAA,CAAAZ,MAAA,GAAAW,uBAAA,GAAAf,gBAAA,CAAAO,KAAA,cAAAQ,uBAAA,uBAAAA,uBAAA,CAAAX,MAAA,CAAAL,MAAA;IAAA,IACPsB,OAAK;IAAY,CAAAA,OACX,IAAAJ,QAAY,GAAAH,OAAA,EAAAF,MAAA,cAAAS,OAAA,gBAAAJ,QAAA,CAAAL,MAAA,QAAAE,OAAA,GAAAA,OAAA,CAAAF,MAAA,EAAAA,MAAA,GAAAE,OAAA;EAAA;EACE,OACtBjB,IAAA,gBAAAJ,aAAA,IAAAI,IAAA,eAAAD,eAAA,CAAAC,IAAA,iBAAAgB,WAAA,CAAAS,GAAA,MAAAT,WAAA,CAAAH,IAAA,IAAAnB,MAAA,QAAAM,IAAA,kBAAAD,eAAA,CAAAC,IAAA,eAAAA,IAAA;IACFA,IAAA;IACF0B,MAAA,EAAA3B,eAAA,CAAA0B,GAAA","ignoreList":[]}
|
@@ -0,0 +1,296 @@
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
2
|
+
import { getNavigateAction } from "./getNavigateAction";
|
3
|
+
describe("getNavigateAction", () => {
|
4
|
+
describe("NAVIGATE", () => {
|
5
|
+
it("works", () => {
|
6
|
+
const action = getNavigateAction({
|
7
|
+
routes: [
|
8
|
+
{
|
9
|
+
name: "page-2"
|
10
|
+
}
|
11
|
+
]
|
12
|
+
}, {
|
13
|
+
stale: !1,
|
14
|
+
type: "stack",
|
15
|
+
key: "stack-pWRo04",
|
16
|
+
index: 0,
|
17
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
18
|
+
routes: [
|
19
|
+
{
|
20
|
+
name: "page-1",
|
21
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
22
|
+
}
|
23
|
+
],
|
24
|
+
preloadedRoutes: []
|
25
|
+
});
|
26
|
+
expect(action).toStrictEqual({
|
27
|
+
type: "NAVIGATE",
|
28
|
+
target: "stack-pWRo04",
|
29
|
+
payload: { key: void 0, name: "page-2", params: {} }
|
30
|
+
});
|
31
|
+
}), it("handles params", () => {
|
32
|
+
const action = getNavigateAction({
|
33
|
+
routes: [
|
34
|
+
{
|
35
|
+
name: "page-1",
|
36
|
+
params: {
|
37
|
+
foo: "foo",
|
38
|
+
bar: "bar"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}, {
|
43
|
+
stale: !1,
|
44
|
+
type: "stack",
|
45
|
+
key: "stack-pWRo04",
|
46
|
+
index: 0,
|
47
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
48
|
+
routes: [
|
49
|
+
{
|
50
|
+
name: "page-1",
|
51
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
52
|
+
}
|
53
|
+
],
|
54
|
+
preloadedRoutes: []
|
55
|
+
});
|
56
|
+
expect(action).toStrictEqual({
|
57
|
+
type: "NAVIGATE",
|
58
|
+
target: "stack-pWRo04",
|
59
|
+
payload: {
|
60
|
+
key: void 0,
|
61
|
+
name: "page-1",
|
62
|
+
params: {
|
63
|
+
foo: "foo",
|
64
|
+
bar: "bar"
|
65
|
+
}
|
66
|
+
}
|
67
|
+
});
|
68
|
+
}), it("handles navigating into nested navigator", () => {
|
69
|
+
const action = getNavigateAction({
|
70
|
+
routes: [
|
71
|
+
{
|
72
|
+
name: "foo",
|
73
|
+
state: {
|
74
|
+
routes: [
|
75
|
+
{
|
76
|
+
name: "bar",
|
77
|
+
state: {
|
78
|
+
routes: [
|
79
|
+
{
|
80
|
+
name: "baz"
|
81
|
+
}
|
82
|
+
]
|
83
|
+
}
|
84
|
+
}
|
85
|
+
]
|
86
|
+
}
|
87
|
+
}
|
88
|
+
]
|
89
|
+
}, {
|
90
|
+
stale: !1,
|
91
|
+
type: "stack",
|
92
|
+
key: "stack-5qQ9ln4FB9",
|
93
|
+
index: 0,
|
94
|
+
routeNames: ["index", "foo"],
|
95
|
+
routes: [
|
96
|
+
{
|
97
|
+
name: "index",
|
98
|
+
key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
|
99
|
+
}
|
100
|
+
],
|
101
|
+
preloadedRoutes: []
|
102
|
+
});
|
103
|
+
expect(action).toStrictEqual({
|
104
|
+
type: "NAVIGATE",
|
105
|
+
target: "stack-5qQ9ln4FB9",
|
106
|
+
payload: {
|
107
|
+
key: void 0,
|
108
|
+
name: "foo",
|
109
|
+
params: {
|
110
|
+
screen: "bar",
|
111
|
+
params: {
|
112
|
+
screen: "baz",
|
113
|
+
params: {}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
});
|
118
|
+
}), it("handles navigating into nested navigator with route params", () => {
|
119
|
+
const action = getNavigateAction({
|
120
|
+
routes: [
|
121
|
+
{
|
122
|
+
name: "[level1]",
|
123
|
+
params: {
|
124
|
+
level1: "foo"
|
125
|
+
},
|
126
|
+
state: {
|
127
|
+
routes: [
|
128
|
+
{
|
129
|
+
name: "[level2]",
|
130
|
+
params: {
|
131
|
+
level1: "foo",
|
132
|
+
level2: "bar"
|
133
|
+
},
|
134
|
+
state: {
|
135
|
+
routes: [
|
136
|
+
{
|
137
|
+
name: "[level3]",
|
138
|
+
params: {
|
139
|
+
level1: "foo",
|
140
|
+
level2: "bar",
|
141
|
+
level3: "baz"
|
142
|
+
}
|
143
|
+
}
|
144
|
+
]
|
145
|
+
}
|
146
|
+
}
|
147
|
+
]
|
148
|
+
}
|
149
|
+
}
|
150
|
+
]
|
151
|
+
}, {
|
152
|
+
stale: !1,
|
153
|
+
type: "stack",
|
154
|
+
key: "stack-5qQ9ln4FB9",
|
155
|
+
index: 0,
|
156
|
+
routeNames: ["index", "[level1]"],
|
157
|
+
routes: [
|
158
|
+
{
|
159
|
+
name: "index",
|
160
|
+
key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
|
161
|
+
}
|
162
|
+
],
|
163
|
+
preloadedRoutes: []
|
164
|
+
});
|
165
|
+
expect(action).toStrictEqual({
|
166
|
+
type: "NAVIGATE",
|
167
|
+
target: "stack-5qQ9ln4FB9",
|
168
|
+
payload: {
|
169
|
+
key: void 0,
|
170
|
+
name: "[level1]",
|
171
|
+
params: {
|
172
|
+
level1: "foo",
|
173
|
+
level2: "bar",
|
174
|
+
// not actually necessary, but it's how the current implementation works
|
175
|
+
screen: "[level2]",
|
176
|
+
params: {
|
177
|
+
level1: "foo",
|
178
|
+
level2: "bar",
|
179
|
+
level3: "baz",
|
180
|
+
// not actually necessary, but it's how the current implementation works
|
181
|
+
screen: "[level3]",
|
182
|
+
params: {
|
183
|
+
level1: "foo",
|
184
|
+
level2: "bar",
|
185
|
+
level3: "baz"
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
});
|
191
|
+
}), it("correctly finds out where the states diverge and return an action valid payload", () => {
|
192
|
+
const action = getNavigateAction({
|
193
|
+
routes: [
|
194
|
+
{
|
195
|
+
name: "foo",
|
196
|
+
state: {
|
197
|
+
routes: [
|
198
|
+
{
|
199
|
+
name: "bar",
|
200
|
+
state: {
|
201
|
+
routes: [
|
202
|
+
{
|
203
|
+
name: "baz-2"
|
204
|
+
}
|
205
|
+
]
|
206
|
+
}
|
207
|
+
}
|
208
|
+
]
|
209
|
+
}
|
210
|
+
}
|
211
|
+
]
|
212
|
+
}, {
|
213
|
+
stale: !1,
|
214
|
+
type: "stack",
|
215
|
+
key: "stack-aCzOliK0",
|
216
|
+
routeNames: ["index", "foo"],
|
217
|
+
index: 0,
|
218
|
+
routes: [
|
219
|
+
{
|
220
|
+
name: "foo",
|
221
|
+
key: "foo-teuUBQHk",
|
222
|
+
state: {
|
223
|
+
stale: !1,
|
224
|
+
type: "stack",
|
225
|
+
key: "stack-XZ3RJRBg",
|
226
|
+
routeNames: ["bar"],
|
227
|
+
index: 0,
|
228
|
+
routes: [
|
229
|
+
{
|
230
|
+
name: "bar",
|
231
|
+
key: "bar-FDtH59Dj",
|
232
|
+
state: {
|
233
|
+
stale: !1,
|
234
|
+
type: "stack",
|
235
|
+
key: "stack-s3o7RyPD",
|
236
|
+
routeNames: ["baz-1", "baz-2"],
|
237
|
+
index: 0,
|
238
|
+
routes: [
|
239
|
+
{
|
240
|
+
name: "baz-1",
|
241
|
+
key: "baz-1-K2zLhRSZ"
|
242
|
+
}
|
243
|
+
]
|
244
|
+
}
|
245
|
+
}
|
246
|
+
]
|
247
|
+
}
|
248
|
+
}
|
249
|
+
],
|
250
|
+
preloadedRoutes: []
|
251
|
+
});
|
252
|
+
expect(action).toStrictEqual({
|
253
|
+
type: "NAVIGATE",
|
254
|
+
target: "stack-s3o7RyPD",
|
255
|
+
payload: {
|
256
|
+
key: void 0,
|
257
|
+
name: "baz-2",
|
258
|
+
params: {}
|
259
|
+
}
|
260
|
+
});
|
261
|
+
});
|
262
|
+
}), describe("PUSH", () => {
|
263
|
+
it("returns a NAVIGATE action with a unique key", () => {
|
264
|
+
const action = getNavigateAction({
|
265
|
+
routes: [
|
266
|
+
{
|
267
|
+
name: "page-2"
|
268
|
+
}
|
269
|
+
]
|
270
|
+
}, {
|
271
|
+
stale: !1,
|
272
|
+
type: "stack",
|
273
|
+
key: "stack-pWRo04",
|
274
|
+
index: 0,
|
275
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
276
|
+
routes: [
|
277
|
+
{
|
278
|
+
name: "page-1",
|
279
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
280
|
+
}
|
281
|
+
],
|
282
|
+
preloadedRoutes: []
|
283
|
+
}, "PUSH");
|
284
|
+
expect(action).toStrictEqual({
|
285
|
+
type: "NAVIGATE",
|
286
|
+
target: "stack-pWRo04",
|
287
|
+
payload: {
|
288
|
+
key: action.payload.key,
|
289
|
+
name: "page-2",
|
290
|
+
params: {}
|
291
|
+
}
|
292
|
+
});
|
293
|
+
});
|
294
|
+
});
|
295
|
+
});
|
296
|
+
//# sourceMappingURL=getNavigateAction.test.js.map
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"sources": ["../../../../src/router/utils/getNavigateAction.test.ts"],
|
4
|
+
"mappings": "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",
|
5
|
+
"names": []
|
6
|
+
}
|
@@ -0,0 +1,260 @@
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
2
|
+
import { getNavigateAction } from "./getNavigateAction.mjs";
|
3
|
+
describe("getNavigateAction", () => {
|
4
|
+
describe("NAVIGATE", () => {
|
5
|
+
it("works", () => {
|
6
|
+
const action = getNavigateAction({
|
7
|
+
routes: [{
|
8
|
+
name: "page-2"
|
9
|
+
}]
|
10
|
+
}, {
|
11
|
+
stale: !1,
|
12
|
+
type: "stack",
|
13
|
+
key: "stack-pWRo04",
|
14
|
+
index: 0,
|
15
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
16
|
+
routes: [{
|
17
|
+
name: "page-1",
|
18
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
19
|
+
}],
|
20
|
+
preloadedRoutes: []
|
21
|
+
});
|
22
|
+
expect(action).toStrictEqual({
|
23
|
+
type: "NAVIGATE",
|
24
|
+
target: "stack-pWRo04",
|
25
|
+
payload: {
|
26
|
+
key: void 0,
|
27
|
+
name: "page-2",
|
28
|
+
params: {}
|
29
|
+
}
|
30
|
+
});
|
31
|
+
}), it("handles params", () => {
|
32
|
+
const action = getNavigateAction({
|
33
|
+
routes: [{
|
34
|
+
name: "page-1",
|
35
|
+
params: {
|
36
|
+
foo: "foo",
|
37
|
+
bar: "bar"
|
38
|
+
}
|
39
|
+
}]
|
40
|
+
}, {
|
41
|
+
stale: !1,
|
42
|
+
type: "stack",
|
43
|
+
key: "stack-pWRo04",
|
44
|
+
index: 0,
|
45
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
46
|
+
routes: [{
|
47
|
+
name: "page-1",
|
48
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
49
|
+
}],
|
50
|
+
preloadedRoutes: []
|
51
|
+
});
|
52
|
+
expect(action).toStrictEqual({
|
53
|
+
type: "NAVIGATE",
|
54
|
+
target: "stack-pWRo04",
|
55
|
+
payload: {
|
56
|
+
key: void 0,
|
57
|
+
name: "page-1",
|
58
|
+
params: {
|
59
|
+
foo: "foo",
|
60
|
+
bar: "bar"
|
61
|
+
}
|
62
|
+
}
|
63
|
+
});
|
64
|
+
}), it("handles navigating into nested navigator", () => {
|
65
|
+
const action = getNavigateAction({
|
66
|
+
routes: [{
|
67
|
+
name: "foo",
|
68
|
+
state: {
|
69
|
+
routes: [{
|
70
|
+
name: "bar",
|
71
|
+
state: {
|
72
|
+
routes: [{
|
73
|
+
name: "baz"
|
74
|
+
}]
|
75
|
+
}
|
76
|
+
}]
|
77
|
+
}
|
78
|
+
}]
|
79
|
+
}, {
|
80
|
+
stale: !1,
|
81
|
+
type: "stack",
|
82
|
+
key: "stack-5qQ9ln4FB9",
|
83
|
+
index: 0,
|
84
|
+
routeNames: ["index", "foo"],
|
85
|
+
routes: [{
|
86
|
+
name: "index",
|
87
|
+
key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
|
88
|
+
}],
|
89
|
+
preloadedRoutes: []
|
90
|
+
});
|
91
|
+
expect(action).toStrictEqual({
|
92
|
+
type: "NAVIGATE",
|
93
|
+
target: "stack-5qQ9ln4FB9",
|
94
|
+
payload: {
|
95
|
+
key: void 0,
|
96
|
+
name: "foo",
|
97
|
+
params: {
|
98
|
+
screen: "bar",
|
99
|
+
params: {
|
100
|
+
screen: "baz",
|
101
|
+
params: {}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
});
|
106
|
+
}), it("handles navigating into nested navigator with route params", () => {
|
107
|
+
const action = getNavigateAction({
|
108
|
+
routes: [{
|
109
|
+
name: "[level1]",
|
110
|
+
params: {
|
111
|
+
level1: "foo"
|
112
|
+
},
|
113
|
+
state: {
|
114
|
+
routes: [{
|
115
|
+
name: "[level2]",
|
116
|
+
params: {
|
117
|
+
level1: "foo",
|
118
|
+
level2: "bar"
|
119
|
+
},
|
120
|
+
state: {
|
121
|
+
routes: [{
|
122
|
+
name: "[level3]",
|
123
|
+
params: {
|
124
|
+
level1: "foo",
|
125
|
+
level2: "bar",
|
126
|
+
level3: "baz"
|
127
|
+
}
|
128
|
+
}]
|
129
|
+
}
|
130
|
+
}]
|
131
|
+
}
|
132
|
+
}]
|
133
|
+
}, {
|
134
|
+
stale: !1,
|
135
|
+
type: "stack",
|
136
|
+
key: "stack-5qQ9ln4FB9",
|
137
|
+
index: 0,
|
138
|
+
routeNames: ["index", "[level1]"],
|
139
|
+
routes: [{
|
140
|
+
name: "index",
|
141
|
+
key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
|
142
|
+
}],
|
143
|
+
preloadedRoutes: []
|
144
|
+
});
|
145
|
+
expect(action).toStrictEqual({
|
146
|
+
type: "NAVIGATE",
|
147
|
+
target: "stack-5qQ9ln4FB9",
|
148
|
+
payload: {
|
149
|
+
key: void 0,
|
150
|
+
name: "[level1]",
|
151
|
+
params: {
|
152
|
+
level1: "foo",
|
153
|
+
level2: "bar",
|
154
|
+
// not actually necessary, but it's how the current implementation works
|
155
|
+
screen: "[level2]",
|
156
|
+
params: {
|
157
|
+
level1: "foo",
|
158
|
+
level2: "bar",
|
159
|
+
level3: "baz",
|
160
|
+
// not actually necessary, but it's how the current implementation works
|
161
|
+
screen: "[level3]",
|
162
|
+
params: {
|
163
|
+
level1: "foo",
|
164
|
+
level2: "bar",
|
165
|
+
level3: "baz"
|
166
|
+
}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
}
|
170
|
+
});
|
171
|
+
}), it("correctly finds out where the states diverge and return an action valid payload", () => {
|
172
|
+
const action = getNavigateAction({
|
173
|
+
routes: [{
|
174
|
+
name: "foo",
|
175
|
+
state: {
|
176
|
+
routes: [{
|
177
|
+
name: "bar",
|
178
|
+
state: {
|
179
|
+
routes: [{
|
180
|
+
name: "baz-2"
|
181
|
+
}]
|
182
|
+
}
|
183
|
+
}]
|
184
|
+
}
|
185
|
+
}]
|
186
|
+
}, {
|
187
|
+
stale: !1,
|
188
|
+
type: "stack",
|
189
|
+
key: "stack-aCzOliK0",
|
190
|
+
routeNames: ["index", "foo"],
|
191
|
+
index: 0,
|
192
|
+
routes: [{
|
193
|
+
name: "foo",
|
194
|
+
key: "foo-teuUBQHk",
|
195
|
+
state: {
|
196
|
+
stale: !1,
|
197
|
+
type: "stack",
|
198
|
+
key: "stack-XZ3RJRBg",
|
199
|
+
routeNames: ["bar"],
|
200
|
+
index: 0,
|
201
|
+
routes: [{
|
202
|
+
name: "bar",
|
203
|
+
key: "bar-FDtH59Dj",
|
204
|
+
state: {
|
205
|
+
stale: !1,
|
206
|
+
type: "stack",
|
207
|
+
key: "stack-s3o7RyPD",
|
208
|
+
routeNames: ["baz-1", "baz-2"],
|
209
|
+
index: 0,
|
210
|
+
routes: [{
|
211
|
+
name: "baz-1",
|
212
|
+
key: "baz-1-K2zLhRSZ"
|
213
|
+
}]
|
214
|
+
}
|
215
|
+
}]
|
216
|
+
}
|
217
|
+
}],
|
218
|
+
preloadedRoutes: []
|
219
|
+
});
|
220
|
+
expect(action).toStrictEqual({
|
221
|
+
type: "NAVIGATE",
|
222
|
+
target: "stack-s3o7RyPD",
|
223
|
+
payload: {
|
224
|
+
key: void 0,
|
225
|
+
name: "baz-2",
|
226
|
+
params: {}
|
227
|
+
}
|
228
|
+
});
|
229
|
+
});
|
230
|
+
}), describe("PUSH", () => {
|
231
|
+
it("returns a NAVIGATE action with a unique key", () => {
|
232
|
+
const action = getNavigateAction({
|
233
|
+
routes: [{
|
234
|
+
name: "page-2"
|
235
|
+
}]
|
236
|
+
}, {
|
237
|
+
stale: !1,
|
238
|
+
type: "stack",
|
239
|
+
key: "stack-pWRo04",
|
240
|
+
index: 0,
|
241
|
+
routeNames: ["_sitemap", "index", "page-1", "page-2"],
|
242
|
+
routes: [{
|
243
|
+
name: "page-1",
|
244
|
+
key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
|
245
|
+
}],
|
246
|
+
preloadedRoutes: []
|
247
|
+
}, "PUSH");
|
248
|
+
expect(action).toStrictEqual({
|
249
|
+
type: "NAVIGATE",
|
250
|
+
target: "stack-pWRo04",
|
251
|
+
payload: {
|
252
|
+
key: action.payload.key,
|
253
|
+
name: "page-2",
|
254
|
+
params: {}
|
255
|
+
}
|
256
|
+
});
|
257
|
+
});
|
258
|
+
});
|
259
|
+
});
|
260
|
+
//# sourceMappingURL=getNavigateAction.test.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["describe","it","expect","getNavigateAction","action","routes","name","stale","type","key","index","routeNames","preloadedRoutes","toStrictEqual","target","payload","params","foo","bar","state","screen","level1","level2","level3"],"sources":["../../../../src/router/utils/getNavigateAction.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|