diff --git a/app/srv/ws/sync/actions/code_edit.ts b/app/srv/ws/sync/actions/code_edit.ts index 485ac1f0..5cdf0b84 100644 --- a/app/srv/ws/sync/actions/code_edit.ts +++ b/app/srv/ws/sync/actions/code_edit.ts @@ -41,39 +41,41 @@ export const code_edit: SAction["code"]["edit"] = async function ( if (mitem) { if (arg.type === "adv") { - const mode = arg.mode; - let adv = mitem.get("adv"); - if (!adv) { - mitem.set("adv", new Y.Map() as any); - adv = mitem.get("adv"); - } + const res = await transform(`render(${src})`, { + jsx: "transform", + format: "cjs", + loader: "tsx", + minify: true, + sourcemap: "inline", + }); + doc?.transact(() => { + const mode = arg.mode; + let adv = mitem.get("adv"); + if (!adv) { + mitem.set("adv", new Y.Map() as any); + adv = mitem.get("adv"); + } - if (adv) { - try { - const res = await transform(`render(${src})`, { - jsx: "transform", - format: "cjs", - loader: "tsx", - minify: true, - sourcemap: "inline", - }); - - doc?.transact(() => { + if (adv) { + try { if (adv) { adv.set(mode, src); if (mode === "js") { adv.set("jsBuilt", res.code); } } - }); - } catch (e) { - g.log.error(e); - } + } catch (e) { + g.log.error(e); + } - if (mode === "js") { - return parseJs(adv.get("js")) || false; + if (mode === "js") { + const res = parseJs(adv.get("js")) || false; + if (res) { + mitem.set("script", res); + } + } } - } + }); } else { const mprop = mitem .get("component") diff --git a/app/srv/ws/sync/editor/prep-page.ts b/app/srv/ws/sync/editor/prep-page.ts index d7bbd583..ceb8b39e 100644 --- a/app/srv/ws/sync/editor/prep-page.ts +++ b/app/srv/ws/sync/editor/prep-page.ts @@ -31,8 +31,8 @@ export const prepContentTree = async ( meta, on: { visit(meta, item) { - if (meta.item.adv?.js) { - meta.item.script = parseJs(meta.item.adv.js); + if (item.adv?.js) { + item.script = parseJs(item.adv.js); } if (item.component?.id) { diff --git a/app/web/src/nova/ed/panel/popup/script/scope/map-exim.tsx b/app/web/src/nova/ed/panel/popup/script/scope/map-exim.tsx index 0ee69777..c664b374 100644 --- a/app/web/src/nova/ed/panel/popup/script/scope/map-exim.tsx +++ b/app/web/src/nova/ed/panel/popup/script/scope/map-exim.tsx @@ -21,6 +21,8 @@ export const scopeMapExportImport = (p: PG, meta: IMeta, parents: IMeta[]) => { } } + console.log(def); + if (def) { const ex = extractExportImport(p, m, imports); if (next_parent) { 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 b9513181..64dd5e5f 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 @@ -47,7 +47,6 @@ export const declareScope = async ( for (const [filename, src] of Object.entries(v)) { if (!added.has(filename)) { added.add(filename); - addScope(p, monaco, filename, src); } } diff --git a/app/web/src/nova/ed/panel/popup/script/snippet.tsx b/app/web/src/nova/ed/panel/popup/script/snippet.tsx index e566b550..9dd83e8f 100644 --- a/app/web/src/nova/ed/panel/popup/script/snippet.tsx +++ b/app/web/src/nova/ed/panel/popup/script/snippet.tsx @@ -46,7 +46,7 @@ effect={async (local) => { onClick={() => { p.script.do_edit( `\ - + `, false ); diff --git a/app/web/src/utils/types/item.ts b/app/web/src/utils/types/item.ts index 1f5b1b08..679c8063 100644 --- a/app/web/src/utils/types/item.ts +++ b/app/web/src/utils/types/item.ts @@ -10,7 +10,6 @@ export type IItem = { linktag?: FNLinkTag; mobile?: IItem; adv?: FNAdv; - script?: ReturnType; type: "item"; component?: FNComponent; childs: (IItem | IText)[]; diff --git a/app/web/src/utils/types/meta.ts b/app/web/src/utils/types/meta.ts index 67730b65..ba9372e2 100644 --- a/app/web/src/utils/types/meta.ts +++ b/app/web/src/utils/types/meta.ts @@ -1,3 +1,4 @@ +import { parseJs } from "../../../../srv/ws/sync/editor/parser/parse-js"; import { FMAdv, FMBackground, @@ -32,6 +33,7 @@ export type BasicItem = { font?: FNFont; dim?: FNDimension; border?: FNBorder; + script?: ReturnType; }; export type MBasicItem = { @@ -41,7 +43,7 @@ export type MBasicItem = { component?: FMComponent; dim?: FMDimension; layout?: FMLayout; - linktag?: FMLinkTag; adv?: FMAdv; border?: FMBorder; + script?: ReturnType; };