diff --git a/app/web/src/nova/ed/panel/popup/script/code-edit/adv-js.ts b/app/web/src/nova/ed/panel/popup/script/code-edit/adv-js.ts index 2690b739..6637452e 100644 --- a/app/web/src/nova/ed/panel/popup/script/code-edit/adv-js.ts +++ b/app/web/src/nova/ed/panel/popup/script/code-edit/adv-js.ts @@ -5,22 +5,28 @@ import { active, PG } from "../../../../logic/ed-global"; export const codeEditAdvJs = (p: PG, value: string) => { const meta = getMetaById(p, active.item_id); - if (meta) { - const mprop = meta.mitem?.get("adv"); - if (mprop) { - try { - const valueBuilt = codeBuild( - { _: `render (${value})` }, - `[item: ${meta.item.name} - ${meta.item.id}]` - )["_"]; + if (meta && meta.mitem) { + meta.mitem.doc?.transact(() => { + let mprop = meta.mitem?.get("adv"); + + if (!mprop) { + meta.mitem?.set("adv", new Y.Map() as any); + mprop = meta.mitem?.get("adv"); + } + + if (mprop) { + try { + const valueBuilt = codeBuild( + { _: `render (${value})` }, + `[item: ${meta.item.name} - ${meta.item.id}]` + )["_"]; - mprop.doc?.transact(() => { mprop.set("js", value); mprop.set("jsBuilt", valueBuilt); - }); - } catch (e: any) { - return e.message; + } catch (e: any) { + return e.message; + } } - } + }); } };