fix prep-page

This commit is contained in:
Rizky 2024-01-25 09:39:32 +07:00
parent 1748c55641
commit 207281726a
1 changed files with 46 additions and 44 deletions

View File

@ -51,53 +51,55 @@ export const loadCompForPage = async (ctree: IRoot, sync: SyncConnection) => {
const result = new Set<string>();
const loading = {} as Record<string, Promise<void>>;
const should_save = {} as Record<string, IItem>;
for (const child of ctree.childs) {
await initLoadComp(
{ comps: mcomps, meta, mode: "page" },
child as unknown as IItem,
{
visit(meta, item, shared) {
if (item.adv?.js) {
let script = undefined;
script = parseJs(item.adv.js);
if (
!item.script ||
Object.keys(script || {}).length !==
Object.keys(item.script || {}).length
) {
shared.should_save = true;
item.script = script;
}
}
},
async done(shared) {
if (shared.should_save && shared.root.component?.id) {
should_save[shared.root.component.id] = shared.root;
}
},
load: async (comp_ids) => {
for (const id of comp_ids) {
if (!docs.comp[id]) {
if (typeof loading[id] === "undefined") {
loading[id] = new Promise<void>(async (resolve) => {
await loadComponent(id, sync);
resolve();
});
if (ctree && ctree.childs) {
for (const child of ctree.childs) {
await initLoadComp(
{ comps: mcomps, meta, mode: "page" },
child as unknown as IItem,
{
visit(meta, item, shared) {
if (item.adv?.js) {
let script = undefined;
script = parseJs(item.adv.js);
if (
!item.script ||
Object.keys(script || {}).length !==
Object.keys(item.script || {}).length
) {
shared.should_save = true;
item.script = script;
}
await loading[id];
} else {
userSyncComponent(sync, id);
}
},
async done(shared) {
if (shared.should_save && shared.root.component?.id) {
should_save[shared.root.component.id] = shared.root;
}
},
load: async (comp_ids) => {
for (const id of comp_ids) {
if (!docs.comp[id]) {
if (typeof loading[id] === "undefined") {
loading[id] = new Promise<void>(async (resolve) => {
await loadComponent(id, sync);
resolve();
});
}
await loading[id];
} else {
userSyncComponent(sync, id);
}
result.add(id);
mcomps[id] = docs.comp[id].doc
.getMap("map")
.get("root")
?.toJSON() as IItem;
}
},
}
);
result.add(id);
mcomps[id] = docs.comp[id].doc
.getMap("map")
.get("root")
?.toJSON() as IItem;
}
},
}
);
}
}
if (Object.keys(should_save).length > 0) {