wip fix
This commit is contained in:
parent
96c8607154
commit
94f44dbeb6
File diff suppressed because one or more lines are too long
|
|
@ -192,6 +192,11 @@ export const Root = () => {
|
||||||
|
|
||||||
if (load_urls.length > 0) {
|
if (load_urls.length > 0) {
|
||||||
const pages = await loadUrls(load_urls);
|
const pages = await loadUrls(load_urls);
|
||||||
|
|
||||||
|
if (opt?.on_load) {
|
||||||
|
opt.on_load(pages);
|
||||||
|
}
|
||||||
|
|
||||||
if (Array.isArray(pages)) {
|
if (Array.isArray(pages)) {
|
||||||
for (const page of pages) {
|
for (const page of pages) {
|
||||||
const p = {
|
const p = {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { IRoot } from "../../../utils/types/root";
|
||||||
import { IMeta } from "../../ed/logic/ed-global";
|
import { IMeta } from "../../ed/logic/ed-global";
|
||||||
import { viParts } from "./parts";
|
import { viParts } from "./parts";
|
||||||
|
|
||||||
|
|
@ -39,7 +40,18 @@ export const ViGlobal = {
|
||||||
},
|
},
|
||||||
on_preload: undefined as
|
on_preload: undefined as
|
||||||
| undefined
|
| undefined
|
||||||
| ((arg: { urls: string[]; opt: { pre_render?: boolean } }) => Promise<void>),
|
| ((arg: {
|
||||||
|
urls: string[];
|
||||||
|
opt: {
|
||||||
|
on_load?: (
|
||||||
|
pages: {
|
||||||
|
id: string;
|
||||||
|
url: string;
|
||||||
|
root: IRoot;
|
||||||
|
}[]
|
||||||
|
) => void;
|
||||||
|
};
|
||||||
|
}) => Promise<void>),
|
||||||
};
|
};
|
||||||
|
|
||||||
export type VG = typeof ViGlobal & { render: () => void };
|
export type VG = typeof ViGlobal & { render: () => void };
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ import { nav } from "./render/script/extract-nav";
|
||||||
import { ViRoot } from "./root";
|
import { ViRoot } from "./root";
|
||||||
import { ErrorBox } from "./utils/error-box";
|
import { ErrorBox } from "./utils/error-box";
|
||||||
|
|
||||||
|
type PRELOAD = Exclude<VG["on_preload"], undefined>;
|
||||||
|
type PRELOAD_ARGS = Parameters<PRELOAD>[0];
|
||||||
|
|
||||||
const w = window as any;
|
const w = window as any;
|
||||||
export const Vi: FC<{
|
export const Vi: FC<{
|
||||||
meta: Record<string, IMeta>;
|
meta: Record<string, IMeta>;
|
||||||
|
|
@ -24,10 +27,7 @@ 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: {
|
on_preload?: VG["on_preload"];
|
||||||
urls: string[];
|
|
||||||
opt?: { pre_render?: boolean };
|
|
||||||
}) => Promise<void>;
|
|
||||||
}> = ({
|
}> = ({
|
||||||
meta,
|
meta,
|
||||||
entry,
|
entry,
|
||||||
|
|
@ -83,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[], opt: { pre_render?: boolean }) => {
|
w.preload = (_urls: PRELOAD_ARGS["urls"], opt: PRELOAD_ARGS["opt"]) => {
|
||||||
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) {
|
||||||
|
|
@ -95,7 +95,7 @@ export const Vi: FC<{
|
||||||
vi.on_preload({
|
vi.on_preload({
|
||||||
urls: Array.from(vi.page.navs[page_id]),
|
urls: Array.from(vi.page.navs[page_id]),
|
||||||
opt: {
|
opt: {
|
||||||
pre_render: !!opt?.pre_render,
|
on_load: opt?.on_load,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -133,6 +133,9 @@ export const Vi: FC<{
|
||||||
if (nav) {
|
if (nav) {
|
||||||
on_preload({
|
on_preload({
|
||||||
urls: Array.from(nav),
|
urls: Array.from(nav),
|
||||||
|
opt: {
|
||||||
|
on_load(pages) {},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
|
||||||
|
|
@ -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[], opt: {pre_render?: boolean}) => ReactNode;
|
const preload: (urls: string | string[], opt: {on_load?: 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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue