wip fix
This commit is contained in:
parent
5d1e8b2ee9
commit
4e8f21eb1e
|
|
@ -128,6 +128,7 @@ export type EdMeta = {
|
|||
/** script related meta **/
|
||||
jsx_scope_id?: string;
|
||||
propval?: Record<string, any>;
|
||||
propvis?: Record<string, boolean>;
|
||||
indexed_scope: Record<string, any>;
|
||||
memoize?: Record<
|
||||
string,
|
||||
|
|
|
|||
|
|
@ -131,7 +131,10 @@ export const ScriptMonaco = () => {
|
|||
}
|
||||
}
|
||||
|
||||
if (p.ui.popup.script.type === "prop-master") {
|
||||
if (
|
||||
p.ui.popup.script.type === "prop-master" ||
|
||||
p.ui.popup.script.type === "prop-instance"
|
||||
) {
|
||||
const mprops = mitem?.get("component")?.get("props");
|
||||
if (mprops) {
|
||||
const mprop = mprops.get(p.ui.popup.script.prop_name);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,10 @@ export const EdPopScript = () => {
|
|||
if (!open) {
|
||||
p.ui.popup.script.open = false;
|
||||
|
||||
if (p.ui.popup.script.prop_name) {
|
||||
if (
|
||||
p.ui.popup.script.prop_name &&
|
||||
p.ui.popup.script.type === "prop-master"
|
||||
) {
|
||||
propPopover.name = p.ui.popup.script.prop_name;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ export const EdSidePropInstance: FC<{ meta: EdMeta }> = ({ meta }) => {
|
|||
const local = useLocal({
|
||||
rightClickEvent: null as any,
|
||||
reset: { mprop: null as any, name: "" },
|
||||
showJSX: false,
|
||||
});
|
||||
|
||||
const item = meta?.item as IItem;
|
||||
|
|
@ -31,6 +32,15 @@ export const EdSidePropInstance: FC<{ meta: EdMeta }> = ({ meta }) => {
|
|||
mcprops.forEach((m, key) => {
|
||||
let mprop = mprops.get(key);
|
||||
|
||||
const type = m.get("meta")?.get("type") || "text";
|
||||
if (meta.propvis) {
|
||||
if (meta.propvis[key] === false) return;
|
||||
}
|
||||
|
||||
if (!local.showJSX && type === "content-element") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mprop) {
|
||||
const json = m.toJSON();
|
||||
const map = new Y.Map() as any;
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ export const EdPropInstanceText: FC<{
|
|||
)}
|
||||
<AutoHeightTextarea
|
||||
className="flex-1 outline-none border-l p-1 ml-1 overflow-hidden focus:bg-blue-50"
|
||||
value={local.value}
|
||||
value={local.value || ""}
|
||||
spellCheck={false}
|
||||
onChange={(e) => {
|
||||
local.value = e.currentTarget.value;
|
||||
|
|
|
|||
|
|
@ -105,8 +105,31 @@ export const compPropVal = (
|
|||
}
|
||||
|
||||
result[name] = value;
|
||||
meta.propval = result;
|
||||
}
|
||||
meta.propval = result;
|
||||
|
||||
const propvis: any = {};
|
||||
for (const [name, _prop] of cprops) {
|
||||
const prop = props[name] || _prop;
|
||||
if (prop.visible) {
|
||||
const finalArgs = { ...args, ...result };
|
||||
try {
|
||||
const fn = new Function(
|
||||
...Object.keys(finalArgs),
|
||||
`return ${_prop.visible}`
|
||||
);
|
||||
propvis[name] = fn(...Object.values(finalArgs));
|
||||
} catch (e) {
|
||||
const cname = meta.item.name;
|
||||
console.warn(e);
|
||||
console.warn(
|
||||
`ERROR in Component [${cname}], in prop [${name}]:\n ` +
|
||||
prop.visible
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
meta.propvis = propvis;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ export const jsMount = async (editor: MonacoEditor, monaco: Monaco, p?: PG) => {
|
|||
|
||||
if (type === "prop") {
|
||||
p.ui.popup.script.prop_name = path[1];
|
||||
p.ui.popup.script.type = "prop-instance";
|
||||
p.ui.popup.script.prop_kind = "value";
|
||||
|
||||
if (
|
||||
!prev_comp_id &&
|
||||
|
|
@ -62,6 +64,8 @@ export const jsMount = async (editor: MonacoEditor, monaco: Monaco, p?: PG) => {
|
|||
}
|
||||
|
||||
return false;
|
||||
} else {
|
||||
p.ui.popup.script.type = "item";
|
||||
}
|
||||
|
||||
if (comp_id) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue