UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

43 lines (42 loc) 2.67 kB
import { nanoid } from "nanoid/non-secure"; import { setLastAction } from "../lastAction.native.js"; import { matchDynamicName } from "../matchers.native.js"; function getNavigateAction(actionState, navigationState) { for (var type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "NAVIGATE", actionStateRoute; actionState && navigationState;) { var _actionStateRoute_params, _stateRoute_params, stateRoute = navigationState.routes[navigationState.index]; actionStateRoute = actionState.routes[actionState.routes.length - 1]; var childState = actionStateRoute.state, nextNavigationState = stateRoute.state, dynamicMatch = matchDynamicName(actionStateRoute.name), didActionAndCurrentStateDiverge = actionStateRoute.name !== stateRoute.name || // !deepEqual(actionStateRoute.params, stateRoute.params) || !childState || !nextNavigationState || dynamicMatch && ((_actionStateRoute_params = actionStateRoute.params) === null || _actionStateRoute_params === void 0 ? void 0 : _actionStateRoute_params[dynamicMatch.name]) !== ((_stateRoute_params = stateRoute.params) === null || _stateRoute_params === void 0 ? void 0 : _stateRoute_params[dynamicMatch.name]); if (didActionAndCurrentStateDiverge) break; actionState = childState, navigationState = nextNavigationState; } for (var rootPayload = { params: {} }, payload = rootPayload, params = payload.params; actionStateRoute;) { var _actionStateRoute_state, _actionStateRoute_state1, _payload; Object.assign(params, { ...actionStateRoute.params }), payload.screen = actionStateRoute.name, payload.params = { ...actionStateRoute.params }, 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]; var _params; (_params = (_payload = payload).params) !== null && _params !== void 0 || (_payload.params = {}), payload = payload.params, params = payload; } return type === "PUSH" && (setLastAction(), type = "NAVIGATE", navigationState.type === "stack" && (rootPayload.key = `${rootPayload.name}-${nanoid()}`)), type === "REPLACE" && navigationState.type === "tab" && (type = "JUMP_TO"), { type, target: navigationState.key, payload: { key: rootPayload.key, name: rootPayload.screen, params: rootPayload.params } }; } export { getNavigateAction }; //# sourceMappingURL=getNavigateAction.native.js.map