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, scope: passprop,
result: null, result: null,
Local: createViLocal(vi, is_layout, meta), Local: createViLocal(vi, is_layout, meta),
PassProp: createViPassProp(vi, meta), PassProp: createViPassProp(vi, is_layout, meta),
}; };
} else { } else {
meta.script.scope = passprop; meta.script.scope = passprop;

View File

@ -1,8 +1,13 @@
import { ReactNode, isValidElement } from "react"; import { ReactNode, isValidElement } from "react";
import { IMeta } from "../../../ed/logic/ed-global"; import { IMeta } from "../../../ed/logic/ed-global";
import { VG } from "../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 }) => { return (arg: Record<string, any> & { children: ReactNode }) => {
if (!meta.item.script) { if (!meta.item.script) {
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); return modifyChild(arg, meta.script?.scope);
}; };
}; };