one
Version:
One is a new React Framework that makes Vite serve both native and web.
47 lines (46 loc) • 2.81 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: !0 });
}, __copyProps = (to, from, except, desc) => {
if (from && typeof from == "object" || typeof from == "function")
for (let key of __getOwnPropNames(from))
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
var getNavigateAction_exports = {};
__export(getNavigateAction_exports, {
getNavigateAction: () => getNavigateAction
});
module.exports = __toCommonJS(getNavigateAction_exports);
var import_non_secure = require("nanoid/non-secure"), import_lastAction = require("../lastAction"), import_matchers = require("../matchers");
function getNavigateAction(actionState, navigationState, type = "NAVIGATE") {
let actionStateRoute;
for (; actionState && navigationState; ) {
const stateRoute = navigationState.routes[navigationState.index];
actionStateRoute = actionState.routes[actionState.routes.length - 1];
const childState = actionStateRoute.state, nextNavigationState = stateRoute.state, dynamicMatch = (0, import_matchers.matchDynamicName)(actionStateRoute.name);
if (actionStateRoute.name !== stateRoute.name || // !deepEqual(actionStateRoute.params, stateRoute.params) ||
!childState || !nextNavigationState || dynamicMatch && actionStateRoute.params?.[dynamicMatch.name] !== stateRoute.params?.[dynamicMatch.name])
break;
actionState = childState, navigationState = nextNavigationState;
}
const rootPayload = { params: {} };
let payload = rootPayload, params = payload.params;
for (; actionStateRoute; )
Object.assign(params, { ...actionStateRoute.params }), payload.screen = actionStateRoute.name, payload.params = { ...actionStateRoute.params }, actionStateRoute = actionStateRoute.state?.routes[actionStateRoute.state?.routes.length - 1], payload.params ??= {}, payload = payload.params, params = payload;
return type === "PUSH" && ((0, import_lastAction.setLastAction)(), type = "NAVIGATE", navigationState.type === "stack" && (rootPayload.key = `${rootPayload.name}-${(0, import_non_secure.nanoid)()}`)), type === "REPLACE" && navigationState.type === "tab" && (type = "JUMP_TO"), {
type,
target: navigationState.key,
payload: {
key: rootPayload.key,
name: rootPayload.screen,
params: rootPayload.params
}
};
}
//# sourceMappingURL=getNavigateAction.js.map