This commit is contained in:
Rizky 2024-01-29 07:31:52 +07:00
parent 2737342ba7
commit 9d3614abc8
5 changed files with 14 additions and 2 deletions

View File

@ -65,6 +65,13 @@ export const edInitSync = (p: PG) => {
const res = page.route.lookup(pathname); const res = page.route.lookup(pathname);
if (res) { if (res) {
params.page_id = res.id; params.page_id = res.id;
if (res.params) {
for (const [k, v] of Object.entries(res.params)) {
if (!["site_id", "page_id"].includes(k)) {
params[k] = v;
}
}
}
} }
} }
} else if (location.pathname.startsWith("/ed")) { } else if (location.pathname.startsWith("/ed")) {

View File

@ -30,6 +30,7 @@ export const viEvalProps = (
api: vi.site.api, api: vi.site.api,
...viScriptArg(vi), ...viScriptArg(vi),
...passprop, ...passprop,
params
}; };
meta.item.script.props = {}; meta.item.script.props = {};

View File

@ -56,6 +56,7 @@ export const viEvalScript = (
render: (jsx: ReactNode) => { render: (jsx: ReactNode) => {
script.result = <Suspense>{jsx}</Suspense>; script.result = <Suspense>{jsx}</Suspense>;
}, },
params,
...viScriptArg(vi), ...viScriptArg(vi),
...exports, ...exports,
...passprop, ...passprop,

View File

@ -48,8 +48,9 @@ export const Vi: FC<{
w.isMobile = mode === "mobile"; w.isMobile = mode === "mobile";
w.isDesktop = mode === "desktop"; w.isDesktop = mode === "desktop";
w.preload = (urls: string[]) => { w.preload = (_urls: string | string[]) => {
if (!vi.page.navs[page_id]) vi.page.navs[page_id] = new Set(); if (!vi.page.navs[page_id]) vi.page.navs[page_id] = new Set();
const urls = typeof _urls === "string" ? [_urls] : _urls;
for (const url of urls) { for (const url of urls) {
vi.page.navs[page_id].add(url); vi.page.navs[page_id].add(url);
} }
@ -61,6 +62,8 @@ export const Vi: FC<{
}); });
} }
}, 100); }, 100);
return "";
}; };
vi.layout = layout; vi.layout = layout;

View File

@ -14,7 +14,7 @@ export const baseTypings = `
const isLayout: boolean; const isLayout: boolean;
const isMobile: boolean; const isMobile: boolean;
const isDesktop: boolean; const isDesktop: boolean;
const preload: (urls: string[]) => void; const preload: (urls: string[]) => ReactNode;
const apiHeaders: Record<string, any>; const apiHeaders: Record<string, any>;
const navigate: (url: string) => void; const navigate: (url: string) => void;
const params: any; const params: any;