fix
This commit is contained in:
parent
a36873a808
commit
21b0220f5b
|
|
@ -35,13 +35,14 @@ export const EdPropInstanceOptions: FC<{
|
||||||
loading: true,
|
loading: true,
|
||||||
isOpen: false,
|
isOpen: false,
|
||||||
val: "",
|
val: "",
|
||||||
|
metaFnInit: false,
|
||||||
metaFn: null as null | (() => Promise<MetaOption[]>),
|
metaFn: null as null | (() => Promise<MetaOption[]>),
|
||||||
checkbox: {
|
checkbox: {
|
||||||
width: 0,
|
width: 0,
|
||||||
},
|
},
|
||||||
options: [] as MetaOption[],
|
options: [] as MetaOption[],
|
||||||
optDeps: [] as any[],
|
optDeps: [] as any[],
|
||||||
resetOnDeps: false,
|
resetOnDeps: false as boolean | (() => any[]),
|
||||||
});
|
});
|
||||||
const p = useGlobal(EDGlobal, "EDITOR");
|
const p = useGlobal(EDGlobal, "EDITOR");
|
||||||
|
|
||||||
|
|
@ -112,7 +113,7 @@ export const EdPropInstanceOptions: FC<{
|
||||||
""
|
""
|
||||||
).trim();
|
).trim();
|
||||||
|
|
||||||
const final = `
|
const final_src = `
|
||||||
try {
|
try {
|
||||||
const resOpt = ${src.endsWith(";") ? src : `${src};`}
|
const resOpt = ${src.endsWith(";") ? src : `${src};`}
|
||||||
|
|
||||||
|
|
@ -121,13 +122,13 @@ export const EdPropInstanceOptions: FC<{
|
||||||
if (typeof resOpt === 'object' && Array.isArray(resOpt.deps) && typeof resOpt.fn === 'function') {
|
if (typeof resOpt === 'object' && Array.isArray(resOpt.deps) && typeof resOpt.fn === 'function') {
|
||||||
local.metaFn = resOpt.fn;
|
local.metaFn = resOpt.fn;
|
||||||
local.optDeps = resOpt.deps;
|
local.optDeps = resOpt.deps;
|
||||||
local.optResetOnDeps = resOpt.reset;
|
local.resetOnDeps = resOpt.reset;
|
||||||
} else {
|
} else {
|
||||||
local.options = resOpt;
|
local.options = resOpt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch(e) { console.error(e); }`;
|
} catch(e) { console.error(e); }`;
|
||||||
fn = new Function(...Object.keys(arg), "local", final);
|
fn = new Function(...Object.keys(arg), "local", final_src);
|
||||||
fn(...Object.values(arg), local);
|
fn(...Object.values(arg), local);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
|
@ -136,6 +137,7 @@ export const EdPropInstanceOptions: FC<{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (local.metaFn) {
|
if (local.metaFn) {
|
||||||
local.loading = true;
|
local.loading = true;
|
||||||
|
|
@ -146,18 +148,22 @@ export const EdPropInstanceOptions: FC<{
|
||||||
local.options = e;
|
local.options = e;
|
||||||
|
|
||||||
if (local.resetOnDeps) {
|
if (local.resetOnDeps) {
|
||||||
const val = meta.item.component?.props?.[name]?.value;
|
if (!local.metaFnInit) {
|
||||||
const valBuilt = meta.item.component?.props?.[name]?.valueBuilt;
|
local.metaFnInit = true;
|
||||||
if (val && valBuilt) {
|
} else {
|
||||||
|
|
||||||
|
let reset = '[]';
|
||||||
|
if (typeof local.resetOnDeps === 'function') {
|
||||||
|
reset = JSON.stringify(local.resetOnDeps());
|
||||||
|
}
|
||||||
mprop.doc?.transact(() => {
|
mprop.doc?.transact(() => {
|
||||||
mprop.set("value", val);
|
mprop.set("value", reset);
|
||||||
mprop.set("valueBuilt", valBuilt);
|
mprop.set("valueBuilt", reset);
|
||||||
});
|
});
|
||||||
|
|
||||||
treeRebuild(p);
|
treeRebuild(p);
|
||||||
p.render();
|
p.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
local.render();
|
local.render();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue