one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 3.29 kB
Source Map (JSON)
{"version":3,"file":"getNavigateAction.js","names":[],"sources":["esm/router/utils/getNavigateAction.js"],"sourcesContent":["import { nanoid } from \"nanoid/non-secure\";\nimport { setLastAction } from \"../lastAction\";\nimport { matchDynamicName } from \"../matchers\";\nfunction getNavigateAction(actionState, navigationState, type = \"NAVIGATE\") {\n let actionStateRoute;\n while (actionState && navigationState) {\n const stateRoute = navigationState.routes[navigationState.index];\n actionStateRoute = actionState.routes[actionState.index ?? actionState.routes.length - 1];\n const childState = actionStateRoute.state;\n const nextNavigationState = stateRoute.state;\n const dynamicMatch = matchDynamicName(actionStateRoute.name);\n const didActionAndCurrentStateDiverge = actionStateRoute.name !== stateRoute.name || // !deepEqual(actionStateRoute.params, stateRoute.params) ||\n !childState || !nextNavigationState || dynamicMatch && actionStateRoute.params?.[dynamicMatch.name] !== stateRoute.params?.[dynamicMatch.name];\n if (didActionAndCurrentStateDiverge) {\n break;\n }\n actionState = childState;\n navigationState = nextNavigationState;\n }\n const rootPayload = { params: {} };\n let payload = rootPayload;\n let params = payload.params;\n while (actionStateRoute) {\n Object.assign(params, { ...actionStateRoute.params });\n payload.screen = actionStateRoute.name;\n payload.params = { ...actionStateRoute.params };\n actionStateRoute = actionStateRoute.state?.routes[actionStateRoute.state.index ?? actionStateRoute.state.routes.length - 1];\n payload.params ??= {};\n payload = payload.params;\n params = payload;\n }\n if (type === \"PUSH\") {\n setLastAction();\n type = \"NAVIGATE\";\n if (navigationState.type === \"stack\") {\n rootPayload.key = `${rootPayload.name}-${nanoid()}`;\n }\n }\n if (type === \"REPLACE\" && navigationState.type === \"tab\") {\n type = \"JUMP_TO\";\n }\n return {\n type,\n target: navigationState.key,\n payload: {\n key: rootPayload.key,\n name: rootPayload.screen,\n params: rootPayload.params\n }\n };\n}\nexport {\n getNavigateAction\n};\n//# sourceMappingURL=getNavigateAction.js.map\n"],"mappings":";;;;;AAGA,SAAS,kBAAkB,aAAa,iBAAiB,OAAO,YAAY;CAC1E,IAAI;CACJ,OAAO,eAAe,iBAAiB;EACrC,MAAM,aAAa,gBAAgB,OAAO,gBAAgB;EAC1D,mBAAmB,YAAY,OAAO,YAAY,SAAS,YAAY,OAAO,SAAS;EACvF,MAAM,aAAa,iBAAiB;EACpC,MAAM,sBAAsB,WAAW;EACvC,MAAM,eAAe,iBAAiB,iBAAiB,IAAI;EAC3D,MAAM,kCAAkC,iBAAiB,SAAS,WAAW,QAC7E,CAAC,cAAc,CAAC,uBAAuB,gBAAgB,iBAAiB,SAAS,aAAa,UAAU,WAAW,SAAS,aAAa;EACzI,IAAI,iCAAiC;GACnC;EACF;EACA,cAAc;EACd,kBAAkB;CACpB;CACA,MAAM,cAAc,EAAE,QAAQ,CAAC,EAAE;CACjC,IAAI,UAAU;CACd,IAAI,SAAS,QAAQ;CACrB,OAAO,kBAAkB;EACvB,OAAO,OAAO,QAAQ,EAAE,GAAG,iBAAiB,OAAO,CAAC;EACpD,QAAQ,SAAS,iBAAiB;EAClC,QAAQ,SAAS,EAAE,GAAG,iBAAiB,OAAO;EAC9C,mBAAmB,iBAAiB,OAAO,OAAO,iBAAiB,MAAM,SAAS,iBAAiB,MAAM,OAAO,SAAS;EACzH,QAAQ,WAAW,CAAC;EACpB,UAAU,QAAQ;EAClB,SAAS;CACX;CACA,IAAI,SAAS,QAAQ;EACnB,cAAc;EACd,OAAO;EACP,IAAI,gBAAgB,SAAS,SAAS;GACpC,YAAY,MAAM,GAAG,YAAY,KAAK,GAAG,OAAO;EAClD;CACF;CACA,IAAI,SAAS,aAAa,gBAAgB,SAAS,OAAO;EACxD,OAAO;CACT;CACA,OAAO;EACL;EACA,QAAQ,gBAAgB;EACxB,SAAS;GACP,KAAK,YAAY;GACjB,MAAM,YAAY;GAClB,QAAQ,YAAY;EACtB;CACF;AACF"}