This commit is contained in:
Rizky 2023-12-27 15:18:03 +07:00
parent 68ef147f13
commit 3367d15fa8
7 changed files with 26 additions and 20 deletions

View File

@ -30,17 +30,17 @@ export const prepContentTree = async (
comps,
meta,
on: {
visit_component(item) {
if (item.component) {
if (!item.component.instances) {
item.component.instances = {};
}
}
},
visit(meta) {
visit(meta, item) {
if (meta.item.adv?.js) {
meta.item.script = parseJs(meta.item.adv.js);
}
if (item.component?.id) {
if (!item.component?.instances) {
item.component.instances = {};
meta.item.childs = [];
}
}
},
},
mode: "page",
@ -48,7 +48,7 @@ export const prepContentTree = async (
{ item: root as unknown as IItem }
);
return ctree;
return root;
};
const loadCompForPage = async (ctree: IRoot, sync: SyncConnection) => {

View File

@ -1,7 +1,7 @@
import { IItem, MItem } from "../../../../utils/types/item";
import { FMCompDef, FNCompDef } from "../../../../utils/types/meta-fn";
import { genMeta } from "../../../vi/meta/meta";
import { IMeta, PG, active } from "../ed-global";
import { IMeta, PG } from "../ed-global";
import { assignMitem } from "./assign-mitem";
import { pushTreeNode } from "./build/push-tree";
@ -40,7 +40,9 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => {
on: {
async visit(m) {
if (!is_layout) {
if (m.parent?.instance_id !== m.parent?.id) {
pushTreeNode(p, m, meta, p.page.tree);
}
assignMitem({ m, item, mitem, meta });
}

View File

@ -34,7 +34,7 @@ export const declareScope = async (
? p.comp.list[active.comp_id]?.meta
: p.page.meta;
const entry = active.comp_id
? [p.comp.loaded[active.comp_id].comp]
? [p.comp.loaded[active.comp_id]]
: p.page.entry.map((e) => p.page.meta[e].item);
const paths: IMeta[][] = [];

View File

@ -34,7 +34,7 @@ export const genComp = (p: GenMetaP, arg: GenMetaArg) => {
instantiate({
item,
comp: item_comp,
item_comp: item_comp,
ids: instance,
});
}
@ -47,6 +47,7 @@ export const genComp = (p: GenMetaP, arg: GenMetaArg) => {
instance_id: arg.parent?.instance_id,
},
};
meta.item.childs = [];
if (item.id) {
if (p.set_meta !== false) {
@ -86,7 +87,7 @@ export const genComp = (p: GenMetaP, arg: GenMetaArg) => {
});
if (p.on?.visit) {
p.on.visit(meta);
p.on.visit(meta, item);
}
for (const child of Object.values(item.childs)) {

View File

@ -5,11 +5,11 @@ import { FNComponent } from "../../../../utils/types/meta-fn";
export const instantiate = (arg: {
item: IItem;
comp: IItem;
item_comp: IItem;
ids: Record<string, string>;
}) => {
const { item, comp, ids } = arg;
const newitem = deepClone(comp);
const { item, item_comp, ids } = arg;
const newitem = deepClone(item_comp);
walkChild(newitem, ids);

View File

@ -15,7 +15,6 @@ export const genMeta = (p: GenMetaP, arg: GenMetaArg) => {
const meta: IMeta = {
item: simplifyItemChild(item),
jsx_prop: arg.jsx_prop,
parent: {
id: arg.parent?.item.id || "root",
instance_id: arg.parent?.instance_id,
@ -23,8 +22,12 @@ export const genMeta = (p: GenMetaP, arg: GenMetaArg) => {
},
};
if (arg.jsx_prop) {
meta.jsx_prop = arg.jsx_prop;
}
if (p.on?.visit) {
p.on.visit(meta);
p.on.visit(meta, item);
}
if (item.id) {

View File

@ -10,7 +10,7 @@ export type GenMetaP = {
comps: Record<string, IItem>;
on?: {
visit_component?: (item: IItem) => void;
visit?: (meta: IMeta) => void;
visit?: (meta: IMeta, item: IItem) => void;
};
set_meta?: boolean;
note?: string;