Files
ttstd-infinite-canvas/web/src/lib/workspace-route-modules.ts

29 lines
1.3 KiB
TypeScript

const workspaceRouteLoaders = {
assets: () => import("@/pages/assets"),
canvas: () => import("@/pages/canvas"),
create: () => import("@/pages/create"),
projects: () => import("@/pages/projects"),
projectDetail: () => import("@/pages/projects/detail"),
wallet: () => import("@/pages/wallet"),
};
export const loadAssetsPage = workspaceRouteLoaders.assets;
export const loadCanvasPage = workspaceRouteLoaders.canvas;
export const loadCanvasProjectPage = () => import("@/pages/canvas/project");
export const loadCreatePage = workspaceRouteLoaders.create;
export const loadProjectDetailPage = workspaceRouteLoaders.projectDetail;
export const loadProjectsPage = workspaceRouteLoaders.projects;
export const loadWalletPage = workspaceRouteLoaders.wallet;
export function preloadWorkspaceRoute(pathnameOrSlug: string) {
// 根路径就是创作页,预加载时仍映射到其内部模块名。
const segments = pathnameOrSlug.replace(/^\//, "").split("/").filter(Boolean);
const slug = segments[0] || "create";
if (slug === "projects" && segments.length > 1) {
void workspaceRouteLoaders.projectDetail();
return;
}
const load = workspaceRouteLoaders[slug as keyof typeof workspaceRouteLoaders];
if (load) void load();
}