diff --git a/app/web/src/nova/ed/logic/ed-route.ts b/app/web/src/nova/ed/logic/ed-route.ts index d99d6141..81ec7848 100644 --- a/app/web/src/nova/ed/logic/ed-route.ts +++ b/app/web/src/nova/ed/logic/ed-route.ts @@ -94,7 +94,7 @@ export const reloadPage = async (p: PG, page_id: string, note: string) => { Buffer.from(compress(diff_local)) ); p.ui.syncing = false; - p.render(); + // p.render(); } }; diff --git a/app/web/src/nova/ed/logic/tree/assign-mitem.ts b/app/web/src/nova/ed/logic/tree/assign-mitem.ts index bb57d518..afe7ffd4 100644 --- a/app/web/src/nova/ed/logic/tree/assign-mitem.ts +++ b/app/web/src/nova/ed/logic/tree/assign-mitem.ts @@ -18,6 +18,7 @@ export const assignMitem = (arg: { }) => { const { p, m, root, mitem, meta } = arg; + console.log(m.item.name, m.item.id); if (m.jsx_prop && m.parent?.instance_id) { const instance_meta = meta[m.parent?.instance_id]; if (instance_meta) { @@ -59,32 +60,25 @@ export const assignMitem = (arg: { } } - // if (m.item.component?.props) { - // for (const [prop_name, v] of Object.entries( - // m.item.component.props - // )) { - // const mprop = m.mitem - // ?.get("component") - // ?.get("props") - // ?.get(prop_name); + if (m.item.component?.props) { + for (const [prop_name, v] of Object.entries(m.item.component.props)) { + const mprop = m.mitem?.get("component")?.get("props")?.get(prop_name); - // if (v.content) { - // if (mprop) { - // const pmeta = meta[v.content.id]; - // if (pmeta) { - // pmeta.mitem = mprop.get("content"); - // } - // } else { - // const mprops = m.mitem?.get("component")?.get("props"); - // if (mprops) { - // arg.new_prop_jsx(m, mprops, prop_name, v); - // } - // } - // } - // } - // } - // } - // }); + if (v.content) { + if (mprop) { + const pmeta = meta[v.content.id]; + if (pmeta) { + pmeta.mitem = mprop.get("content"); + } + } else { + const mprops = m.mitem?.get("component")?.get("props"); + if (mprops) { + arg.new_prop_jsx(m, mprops, prop_name, v); + } + } + } + } + } } } }; diff --git a/app/web/src/nova/ed/logic/tree/build.tsx b/app/web/src/nova/ed/logic/tree/build.tsx index e1630c2e..d0b47f91 100644 --- a/app/web/src/nova/ed/logic/tree/build.tsx +++ b/app/web/src/nova/ed/logic/tree/build.tsx @@ -49,7 +49,6 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { if (!is_layout) { if (m.parent?.instance_id !== m.parent?.id || m.jsx_prop) { pushTreeNode(p, m, meta, p.page.tree); - } else { } assignMitem({ @@ -59,14 +58,13 @@ export const treeRebuild = async (p: PG, arg?: { note?: string }) => { mitem, meta, new_prop_jsx(meta, mprops, prop_name, prop_val) { - transact.list.push(() => { - const map = new Y.Map(); - - if (prop_val.content) prop_val.content.id = createId(); - - syncronize(map, prop_val); - mprops.set(prop_name, map as any); - }); + console.log(meta, mprops, prop_name, prop_val); + // transact.list.push(() => { + // const map = new Y.Map(); + // if (prop_val.content) prop_val.content.id = createId(); + // syncronize(map, prop_val); + // mprops.set(prop_name, map as any); + // }); }, }); } 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 index 5930099f3..39f9c7b7 100644 --- a/app/web/src/nova/ed/logic/tree/build/push-tree.tsx +++ b/app/web/src/nova/ed/logic/tree/build/push-tree.tsx @@ -1,5 +1,5 @@ import { NodeModel } from "@minoru/react-dnd-treeview"; -import { IMeta, PG, active } from "../../ed-global"; +import { IMeta, PG } from "../../ed-global"; export const pushTreeNode = ( p: PG, @@ -43,7 +43,7 @@ export const pushTreeNode = ( tree.push({ id: meta.item.id, parent: meta.parent?.instance_id || "root", - text: meta.item.name, + text: meta.jsx_prop.name, data: meta, }); } else { diff --git a/app/web/src/nova/ed/panel/popup/script/monaco.tsx b/app/web/src/nova/ed/panel/popup/script/monaco.tsx index 0b029c31..55ee1080 100644 --- a/app/web/src/nova/ed/panel/popup/script/monaco.tsx +++ b/app/web/src/nova/ed/panel/popup/script/monaco.tsx @@ -109,7 +109,9 @@ export const EdScriptMonaco: FC<{}> = () => { const model = editor.getModel(); if (!model) { const nmodel = monaco.editor.createModel( - val, + imports && imports.length > 0 + ? `${imports}\n/** IMPORT MODULE **/\n${val}` + : val, "typescript", monaco.Uri.parse("file:///active.tsx") ); diff --git a/app/web/src/nova/ed/panel/popup/script/scope/scope.tsx b/app/web/src/nova/ed/panel/popup/script/scope/scope.tsx index 7e50ffdd..09ebe8df 100644 --- a/app/web/src/nova/ed/panel/popup/script/scope/scope.tsx +++ b/app/web/src/nova/ed/panel/popup/script/scope/scope.tsx @@ -93,7 +93,6 @@ const extract_import_map = ( added.add(m.item.id); const ex = extractExport(p, m); - for (const [k, v] of Object.entries(ex)) { let src = ""; if (v.type === "local") { @@ -105,6 +104,7 @@ export const ${k}: typeof _local & { render: ()=>void } = _local; src = `export const ${k} = ${v.val}`; } if (src) { + addScope( p, monaco, @@ -180,7 +180,6 @@ const map_childs = ( ); jprop = comp_map[meta.item.component.id]; - //todo: comp prop src: import from page scope for (const path of jprop.paths) { for (const m of path) { if (!jprop.exports[m.item.id]) { diff --git a/app/web/src/nova/ed/panel/side/prop-master/tree-item.tsx b/app/web/src/nova/ed/panel/side/prop-master/tree-item.tsx index 5f4911f9..ebc2850b 100644 --- a/app/web/src/nova/ed/panel/side/prop-master/tree-item.tsx +++ b/app/web/src/nova/ed/panel/side/prop-master/tree-item.tsx @@ -23,6 +23,10 @@ export const EdPropCompTreeItem: FC<{ if (node.id === "root") { return <>>; } + + let type = "TXT"; + if (node.data?.prop.meta?.type === "option") type = "OPT"; + else if (node.data?.prop.meta?.type === "content-element") type = "JSX"; return (