diff --git a/app/web/src/nova/ed/logic/tree/build.tsx b/app/web/src/nova/ed/logic/tree/build.tsx index 06f08d5b..1557ae9b 100644 --- a/app/web/src/nova/ed/logic/tree/build.tsx +++ b/app/web/src/nova/ed/logic/tree/build.tsx @@ -1,7 +1,7 @@ -import { deepClone } from "web-utils"; import { IItem, MItem } from "../../../../utils/types/item"; import { genMeta } from "../../../view/logic/meta/meta"; import { PG, active } from "../ed-global"; +import { pushTreeNode } from "./build/push-tree"; export const treeRebuild = async (p: PG, arg?: { note?: string }) => { const is_layout = @@ -27,6 +27,7 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { mroot?.get("childs")?.forEach((m) => mitems.push(m)); const meta = {}; + p.page.tree = []; for (const mitem of mitems) { const item = mitem.toJSON() as IItem; if (item) { @@ -37,9 +38,7 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { on: !is_layout ? { visit(meta) { - if (meta.jsx_prop) { - console.log(meta.parent); - } + pushTreeNode(p, meta); }, } : undefined, diff --git a/app/web/src/nova/ed/logic/tree/build/push-tree.tsx b/app/web/src/nova/ed/logic/tree/build/push-tree.tsx new file mode 100644 index 00000000..05fa1f95 --- /dev/null +++ b/app/web/src/nova/ed/logic/tree/build/push-tree.tsx @@ -0,0 +1,19 @@ +import { IMeta, PG } from "../../ed-global"; + +export const pushTreeNode = (p: PG, meta: IMeta) => { + if (!meta.parent?.comp_id) { + p.page.tree.push({ + id: meta.item.id, + parent: meta.parent?.id || "root", + text: meta.item.name, + data: meta, + }); + } else if (meta.jsx_prop) { + p.page.tree.push({ + id: meta.item.id, + parent: meta.parent?.instance_id || "root", + text: meta.item.name, + data: meta, + }); + } +}; diff --git a/app/web/src/nova/ed/panel/tree/node/item/name.tsx b/app/web/src/nova/ed/panel/tree/node/item/name.tsx index 70e11f12..bcb0b9ba 100644 --- a/app/web/src/nova/ed/panel/tree/node/item/name.tsx +++ b/app/web/src/nova/ed/panel/tree/node/item/name.tsx @@ -23,7 +23,7 @@ export const EdTreeName = ({ const mitem = node.data?.mitem; if (!item || !mitem) return <>>; - const is_jsx_prop = !!node.data?.jsx_prop_name; + const is_jsx_prop = !!node.data?.jsx_prop; const isRenaming = p.ui.tree.rename_id === item.id; return ( @@ -116,22 +116,5 @@ const Name: FC<{ name: string; is_jsx_prop: boolean }> = ({ ); } - // if (typeof name === "string" && name.startsWith("jsx=")) { - // return ( - //