This commit is contained in:
Rizky 2024-03-16 22:53:05 +07:00
parent b9a112b9b2
commit 96c8607154
6 changed files with 17 additions and 11 deletions

File diff suppressed because one or more lines are too long

View File

@ -94,12 +94,11 @@ export const EdPopSite = () => {
}
}}
>
<div className={cx("absolute inset-[5%] bg-white flex")}>
<div className="relative flex flex-1">
{local.status === "loading" && (
<Loading note="listing-site" backdrop={false} />
)}
<div className={cx("absolute inset-[5%] bg-white flex")}>
<div className="relative flex flex-1">
{(local.status === "ready" || local.group.length > 0) && (
<SitePicker
group={local.group}

View File

@ -178,7 +178,8 @@ export const Root = () => {
: undefined
}
script={{ init_local_effect: base.init_local_effect }}
on_preload={async ({ urls }) => {
on_preload={async ({ urls, opt }) => {
console.log(urls, opt);
const load_urls: string[] = [];
if (base.cache.urls) {
for (const url of urls) {

View File

@ -39,7 +39,7 @@ export const ViGlobal = {
},
on_preload: undefined as
| undefined
| ((arg: { urls: string[] }) => Promise<void>),
| ((arg: { urls: string[]; opt: { pre_render?: boolean } }) => Promise<void>),
};
export type VG = typeof ViGlobal & { render: () => void };

View File

@ -24,7 +24,10 @@ export const Vi: FC<{
visit?: VG["visit"];
render_stat?: "enabled" | "disabled";
on_status_changed?: (status: VG["status"]) => void;
on_preload?: (arg: { urls: string[] }) => Promise<void>;
on_preload?: (arg: {
urls: string[];
opt?: { pre_render?: boolean };
}) => Promise<void>;
}> = ({
meta,
entry,
@ -80,7 +83,7 @@ export const Vi: FC<{
};
w.isMobile = mode === "mobile";
w.isDesktop = mode === "desktop";
w.preload = (_urls: string | string[]) => {
w.preload = (_urls: string | string[], opt: { pre_render?: boolean }) => {
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) {
@ -91,6 +94,9 @@ export const Vi: FC<{
if (vi.on_preload) {
vi.on_preload({
urls: Array.from(vi.page.navs[page_id]),
opt: {
pre_render: !!opt?.pre_render,
},
});
}
}, 100);

View File

@ -15,7 +15,7 @@ export const baseTypings = `
const isMobile: boolean;
const isDesktop: boolean;
const siteurl: (path:string) => string;
const preload: (urls: string | string[]) => ReactNode;
const preload: (urls: string | string[], opt: {pre_render?: boolean}) => ReactNode;
const apiHeaders: Record<string, any>;
const navigate: (url: string) => void;
const params: any;