diff --git a/app/web/src/nova/ed/logic/comp/load.tsx b/app/web/src/nova/ed/logic/comp/load.tsx index 1fbc290d..692a7094 100644 --- a/app/web/src/nova/ed/logic/comp/load.tsx +++ b/app/web/src/nova/ed/logic/comp/load.tsx @@ -42,6 +42,9 @@ export const loadCompSnapshot = async ( comp_id: string, snapshot: Uint8Array ) => { + if (p.comp.list[comp_id] && p.comp.list[comp_id].doc) { + return; + } const doc = new Y.Doc() as DComp; Y.applyUpdate(doc as any, decompress(snapshot)); const mitem = doc.getMap("map").get("root"); @@ -85,7 +88,11 @@ export const loadCompSnapshot = async ( comp_id, Buffer.from(compress(diff_local)) ); - const updated = await updateComponentMeta(p, doc, comp_id); + const updated = await updateComponentMeta( + p, + p.comp.list[comp_id].doc, + comp_id + ); if (updated) { p.comp.list[comp_id].meta = updated.meta; p.comp.list[comp_id].tree = updated.tree; diff --git a/app/web/src/nova/ed/logic/ed-sync.tsx b/app/web/src/nova/ed/logic/ed-sync.tsx index fdf092b6..bcc99d4f 100644 --- a/app/web/src/nova/ed/logic/ed-sync.tsx +++ b/app/web/src/nova/ed/logic/ed-sync.tsx @@ -184,6 +184,7 @@ export const edInitSync = (p: PG) => { p.comp.list[data.id].meta = updated.meta; p.comp.list[data.id].tree = updated.tree; } + await treeRebuild(p, { note: "sv_remote" }); } p.render(); diff --git a/app/web/src/nova/ed/panel/main/main-per-item.tsx b/app/web/src/nova/ed/panel/main/main-per-item.tsx index 96d1d59c..c401cc69 100644 --- a/app/web/src/nova/ed/panel/main/main-per-item.tsx +++ b/app/web/src/nova/ed/panel/main/main-per-item.tsx @@ -41,13 +41,11 @@ export const mainPerItemVisit = ( }; parts.props.ref = (el) => { - if ( - el && - text_edit.caret && - (text_edit.id === meta.item.id || text_edit.id === meta.item.originalId) - ) { - setCaret(el, text_edit.caret); - text_edit.caret = null; + if (el && text_edit.caret) { + if (text_edit.id === meta.item.id) { + setCaret(el, text_edit.caret); + text_edit.caret = null; + } } }; @@ -71,8 +69,8 @@ export const mainPerItemVisit = ( clearTimeout(text_edit.timeout); text_edit.timeout = setTimeout(() => { + text_edit.id = meta.item.id; text_edit.caret = getCaret(el); - text_edit.id = meta.item.originalId || meta.item.id; if (active.comp_id && meta.parent?.comp_id === active.comp_id) { const comp = p.comp.list[active.comp_id]; 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 75934ed3..db45b4b1 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 @@ -98,7 +98,7 @@ export const EdTreeName = ({ ) : (
-
{node.id} - {item.originalId}
+ {/*
{node.id} - {item.originalId}
*/}
)} diff --git a/app/web/src/nova/vi/render/render.tsx b/app/web/src/nova/vi/render/render.tsx index 12d34d9f..20ce760a 100644 --- a/app/web/src/nova/vi/render/render.tsx +++ b/app/web/src/nova/vi/render/render.tsx @@ -10,7 +10,6 @@ export const ViRender: FC<{ meta: IMeta; children?: ReactNode; }> = ({ meta, children }) => { - const vi = useGlobal(ViGlobal, "VI"); if (!meta) return null; if (meta.item.adv?.js || meta.item.component?.id) { @@ -27,7 +26,7 @@ export const ViChild: FC<{ const vi = useGlobal(ViGlobal, "VI"); const parts = viParts(meta); if (vi.visit) vi.visit(meta, parts); - + let renderChild = undefined; if (parts.shouldRenderChild) { diff --git a/app/web/src/nova/vi/render/script.tsx b/app/web/src/nova/vi/render/script.tsx index cb7285c8..ad544b41 100644 --- a/app/web/src/nova/vi/render/script.tsx +++ b/app/web/src/nova/vi/render/script.tsx @@ -18,12 +18,11 @@ export const ViScript: FC<{ meta: IMeta; children: ReactNode }> = ({ const scope_meta = getScopeMeta({ meta: vi.meta }, meta); const scope = getScopeValue(scope_meta); - if (meta.item.component?.id) { viEvalProps(vi, meta, scope); } - if (meta.item.adv?.jsBuilt) { + if (meta.item.adv?.js) { viEvalScript(vi, meta, scope); if (meta.script) return meta.script.result;