diff --git a/app/web/src/render/ed/logic/tree/build.tsx b/app/web/src/render/ed/logic/tree/build.tsx index 0db0c7b2..80af2109 100644 --- a/app/web/src/render/ed/logic/tree/build.tsx +++ b/app/web/src/render/ed/logic/tree/build.tsx @@ -33,10 +33,16 @@ export const treeRebuild = async (p: PG) => { }) ); - for (const [k, v] of Object.entries(portal.out)) { + for (const [k, portal_out] of Object.entries(portal.out)) { const name = k.replace(/⮕/gi, "").trim(); const portal_in = portal.in[`⬅${name}`]; if (portal_in) { + for (const key of Object.keys(portal_in)) { + delete (portal_in as any)[key]; + } + for (const [k, v] of Object.entries(portal_out)) { + (portal_in as any)[k] = v; + } } } } diff --git a/app/web/src/render/editor/editor.tsx b/app/web/src/render/editor/editor.tsx index 6602c042..12a81847 100644 --- a/app/web/src/render/editor/editor.tsx +++ b/app/web/src/render/editor/editor.tsx @@ -99,19 +99,21 @@ export const Editor: FC<{ site_id: string; page_id: string; session: any }> = ({ } if (p.status === "init") { - (window as any).mok = ((window as any).mok || 0) + 1; - p.ui.loading = ; - p.ui.preload = ; - p.ui.notfound = ( -
NOT FOUND
- ); - p.ui.error = ( -
- PREVIEW ERROR -
- ); - p.status = "loading"; - initEditor(p, site_id); + if (p.ui) { + (window as any).mok = ((window as any).mok || 0) + 1; + p.ui.loading = ; + p.ui.preload = ; + p.ui.notfound = ( +
NOT FOUND
+ ); + p.ui.error = ( +
+ PREVIEW ERROR +
+ ); + p.status = "loading"; + initEditor(p, site_id); + } } routeEditor(p, page_id); diff --git a/app/web/src/render/editor/elements/e-render.tsx b/app/web/src/render/editor/elements/e-render.tsx index 6fee9b70..5ae80cab 100644 --- a/app/web/src/render/editor/elements/e-render.tsx +++ b/app/web/src/render/editor/elements/e-render.tsx @@ -41,6 +41,7 @@ export const ERender: FC<{ item.adv.js.startsWith("newElement") ) { const mitem = meta.mitem; + if (mitem && item.type === "item") { (async () => { let childs: any[] = []; diff --git a/app/web/src/render/editor/logic/tree-prop.tsx b/app/web/src/render/editor/logic/tree-prop.tsx index 0761555f..42789e8e 100644 --- a/app/web/src/render/editor/logic/tree-prop.tsx +++ b/app/web/src/render/editor/logic/tree-prop.tsx @@ -59,12 +59,16 @@ export const treePropEval = ( value = { _jsx: true, Comp: ({ + prop_name, parent_id, _scopeIndex, }: { + prop_name: string; parent_id: string; _scopeIndex?: Record; }) => { + console.log(prop_name); + if (prop.content) { const meta = p.treeMeta[prop.content.id]; if (meta) { diff --git a/app/web/src/render/editor/logic/tree-scope.tsx b/app/web/src/render/editor/logic/tree-scope.tsx index 9b3bd462..b7a6d35e 100644 --- a/app/web/src/render/editor/logic/tree-scope.tsx +++ b/app/web/src/render/editor/logic/tree-scope.tsx @@ -41,11 +41,19 @@ export const treeScopeEval = ( if (v && typeof v === "object") { const t: { _jsx: true; - Comp: FC<{ parent_id: string; _scopeIndex?: Record }>; + Comp: FC<{ + prop_name: string; + parent_id: string; + _scopeIndex?: Record; + }>; } = v as any; if (t._jsx && t.Comp) { finalScope[k] = ( - + ); } } diff --git a/app/web/src/render/editor/logic/ws.ts b/app/web/src/render/editor/logic/ws.ts index c9de14c8..3ff2fabf 100644 --- a/app/web/src/render/editor/logic/ws.ts +++ b/app/web/src/render/editor/logic/ws.ts @@ -101,6 +101,8 @@ export const editorWS = async (p: PG) => { }, 5000); const decoder = new TextDecoder(); ws.addEventListener("message", async (e) => { + if (!e.data || !e.data.arrayBuffer) return; + const raw = decoder.decode( decompress(new Uint8Array(await e.data.arrayBuffer())) ); diff --git a/app/web/src/render/editor/panel/toolbar/center/AddElement.tsx b/app/web/src/render/editor/panel/toolbar/center/AddElement.tsx index 29d96856..86b7e4a9 100644 --- a/app/web/src/render/editor/panel/toolbar/center/AddElement.tsx +++ b/app/web/src/render/editor/panel/toolbar/center/AddElement.tsx @@ -50,7 +50,7 @@ export const AddElement: FC<{}> = ({}) => { id: createId(), name: `New Text`, type: "text", - dim: { w: "full", h: "fit" }, + dim: { w: "full", h: "full" }, layout: { align: "center", dir: "col", gap: 0 }, text: "", html: "", @@ -122,7 +122,7 @@ export const AddElement: FC<{}> = ({}) => { id: createId(), name: `New Item`, type: "item", - dim: { w: "fit", h: "fit" }, + dim: { w: "full", h: "full" }, childs: [], adv: { css: "", diff --git a/app/web/src/render/editor/panel/tree/item/action.tsx b/app/web/src/render/editor/panel/tree/item/action.tsx index ae40be87..ea8c6b20 100644 --- a/app/web/src/render/editor/panel/tree/item/action.tsx +++ b/app/web/src/render/editor/panel/tree/item/action.tsx @@ -89,9 +89,7 @@ export const ETreeItemAction: FC<{ onClick={async () => { if (mitem) { const ijson = mitem.toJSON() as IItem; - mitem.doc?.transact(() => { - mitem.set("childs", new Y.Array()); syncronize(mitem as any, { ...resetJSXProp, name: ijson.name,