diff --git a/app/srv/ws/sync/actions/code_edit.ts b/app/srv/ws/sync/actions/code_edit.ts
index 521762ff..485ac1f0 100644
--- a/app/srv/ws/sync/actions/code_edit.ts
+++ b/app/srv/ws/sync/actions/code_edit.ts
@@ -38,6 +38,7 @@ export const code_edit: SAction["code"]["edit"] = async function (
if (root) {
const mitem = findId(root, item_id);
+
if (mitem) {
if (arg.type === "adv") {
const mode = arg.mode;
@@ -78,6 +79,7 @@ export const code_edit: SAction["code"]["edit"] = async function (
.get("component")
?.get("props")
?.get(arg.prop_name);
+
if (mprop) {
try {
const res = await transform(`return ${src}`, {
@@ -137,7 +139,6 @@ export const code_edit: SAction["code"]["edit"] = async function (
}
}
}
-
return false;
};
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 e0341d0c..9148cdb9 100644
--- a/app/web/src/nova/ed/panel/popup/script/monaco.tsx
+++ b/app/web/src/nova/ed/panel/popup/script/monaco.tsx
@@ -211,7 +211,7 @@ export const EdScriptMonaco: FC<{}> = () => {
});
} else if (p.ui.popup.script.type === "prop-instance") {
scope = await p.sync.code.edit({
- type: "adv",
+ type: "prop-instance",
mode: type,
prop_name: p.ui.popup.script.prop_name,
item_id: active.item_id,
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 2802fcdb..bd7db2c6 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
@@ -65,14 +65,6 @@ const map_childs = (
for (const m of childs) {
const meta = metas[m.id];
if (meta) {
- if (
- meta.item.type === "item" &&
- meta.item.component?.id &&
- meta.item.component?.id !== active.comp_id
- ) {
- continue;
- }
-
let cur: null | IMeta[] = null;
for (const path of paths) {
if (path[path.length - 1] === parent) {
@@ -88,8 +80,16 @@ const map_childs = (
}
if (cur) {
- if (Array.isArray(meta.item.childs)) {
- map_childs(metas, meta.item.childs, paths, cur, meta);
+ if (
+ meta.item.type === "item" &&
+ meta.item.component?.id &&
+ meta.item.component?.id !== active.comp_id
+ ) {
+ continue;
+ } else {
+ if (Array.isArray(meta.item.childs)) {
+ map_childs(metas, meta.item.childs, paths, cur, meta);
+ }
}
}
}
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 3fe767ca..e566b550 100644
--- a/app/web/src/nova/ed/panel/popup/script/snippet.tsx
+++ b/app/web/src/nova/ed/panel/popup/script/snippet.tsx
@@ -46,9 +46,7 @@ effect={async (local) => {
onClick={() => {
p.script.do_edit(
`\
-
-{children}
-
+
`,
false
);
@@ -63,9 +61,9 @@ effect={async (local) => {
`\
{(local.list || []).map((item, idx) => (
-
-{children}
-
+
+
+
))}
`,
diff --git a/app/web/src/nova/ed/panel/popup/script/workbench.tsx b/app/web/src/nova/ed/panel/popup/script/workbench.tsx
index 0300437c..5d71f94e 100644
--- a/app/web/src/nova/ed/panel/popup/script/workbench.tsx
+++ b/app/web/src/nova/ed/panel/popup/script/workbench.tsx
@@ -68,6 +68,9 @@ const CompTitleInstance = () => {
const props = item.component.props;
return (
+
+ INSTANCE
+
{item.name}
{p.ui.popup.script.prop_name}
@@ -91,6 +94,9 @@ const CompTitleMaster = () => {
const props = item.component.props;
return (
+
+ MASTER
+
{item.name}
{p.ui.popup.script.prop_name}
diff --git a/app/web/src/nova/ed/panel/side/prop-instance.tsx b/app/web/src/nova/ed/panel/side/prop-instance.tsx
index cd583cf2..43af5a2d 100644
--- a/app/web/src/nova/ed/panel/side/prop-instance.tsx
+++ b/app/web/src/nova/ed/panel/side/prop-instance.tsx
@@ -1,4 +1,4 @@
-import { FC } from "react";
+import { FC, MouseEvent } from "react";
import { useGlobal, useLocal } from "web-utils";
import { IItem } from "../../../../utils/types/item";
import { FMCompDef } from "../../../../utils/types/meta-fn";
@@ -8,12 +8,13 @@ import { EdPropInstanceCode } from "./prop-instance/prop-code";
import { EdPropInstanceOptions } from "./prop-instance/prop-option";
import { reset } from "./prop-instance/prop-reset";
import { EdPropInstanceText } from "./prop-instance/prop-text";
+import { createEditScript } from "./prop-instance/edit-script";
export const EdSidePropInstance: FC<{ meta: IMeta }> = ({ meta }) => {
const p = useGlobal(EDGlobal, "EDITOR");
const local = useLocal({
rightClickEvent: null as any,
- reset: { mprop: null as any, name: "" },
+ pick: { mprop: null as any, name: "" },
showJSX: false,
});
@@ -125,12 +126,20 @@ export const EdSidePropInstance: FC<{ meta: IMeta }> = ({ meta }) => {