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 = () => {
} }
}} }}
> >
{local.status === "loading" && (
<Loading note="listing-site" backdrop={false} />
)}
<div className={cx("absolute inset-[5%] bg-white flex")}> <div className={cx("absolute inset-[5%] bg-white flex")}>
<div className="relative flex flex-1"> <div className="relative flex flex-1">
{local.status === "loading" && (
<Loading note="listing-site" backdrop={false} />
)}
{(local.status === "ready" || local.group.length > 0) && ( {(local.status === "ready" || local.group.length > 0) && (
<SitePicker <SitePicker
group={local.group} group={local.group}

View File

@ -178,7 +178,8 @@ export const Root = () => {
: undefined : undefined
} }
script={{ init_local_effect: base.init_local_effect }} 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[] = []; const load_urls: string[] = [];
if (base.cache.urls) { if (base.cache.urls) {
for (const url of urls) { for (const url of urls) {

View File

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

View File

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

View File

@ -15,7 +15,7 @@ export const baseTypings = `
const isMobile: boolean; const isMobile: boolean;
const isDesktop: boolean; const isDesktop: boolean;
const siteurl: (path:string) => string; 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 apiHeaders: Record<string, any>;
const navigate: (url: string) => void; const navigate: (url: string) => void;
const params: any; const params: any;