This commit is contained in:
Rizky 2024-03-13 09:29:54 +07:00
parent 5d292c3bb7
commit 0ee95e5589
3 changed files with 55 additions and 38 deletions

File diff suppressed because one or more lines are too long

View File

@ -34,7 +34,7 @@ export const viEvalScript = (
scope: passprop,
result: null,
Local: createViLocal(vi, is_layout, meta),
PassProp: createViPassProp(vi, meta),
PassProp: createViPassProp(vi, is_layout, meta),
};
} else {
meta.script.scope = passprop;

View File

@ -1,8 +1,13 @@
import { ReactNode, isValidElement } from "react";
import { IMeta } from "../../../ed/logic/ed-global";
import { VG } from "../global";
import { ViChild } from "../render";
export const createViPassProp = (vi: { meta: VG["meta"] }, meta: IMeta) => {
export const createViPassProp = (
vi: { meta: VG["meta"] },
is_layout: boolean,
meta: IMeta
) => {
return (arg: Record<string, any> & { children: ReactNode }) => {
if (!meta.item.script) {
meta.item.script = {};
@ -22,6 +27,18 @@ export const createViPassProp = (vi: { meta: VG["meta"] }, meta: IMeta) => {
}
}
if (
!Array.isArray(arg.children) &&
!isValidElement(arg.children) &&
typeof arg.children === "object"
) {
const child_id = (arg.children as any).id;
if (child_id) {
const meta = vi.meta[child_id];
return <ViChild is_layout={is_layout} meta={meta} />;
}
}
return modifyChild(arg, meta.script?.scope);
};
};