wip fix passprop

This commit is contained in:
Rizky 2024-03-18 01:02:55 +07:00
parent bb3aff33b1
commit e5e41bbcf9
2 changed files with 4 additions and 6 deletions

View File

@ -127,7 +127,7 @@ ${d}`),f.pop(),`{${k}}`}case"number":return isFinite(u)?String(u):t?t(u):"null";
${o0(e,t.mode)}
${Vw(e,t.mode)}
${I0(e,t.mode)}
`,(t?.hover||t?.active)&&a0({item:e,hover:t?.hover,active:t?.active}),Pw(e,t.mode)])}catch(A){console.log(A)}return cx([])};var g0=K(se()),Hs=(e,t,A,i)=>{let n=t.item,r;n.component?.style&&(r={style:n.component.style,className:DB(n.component.style,{mode:e.mode})});let o={className:DB(n,{mode:e.mode}),inherit:r},s={},a=t.item.childs,c;return t.item.type==="text"?(c=null,o.dangerouslySetInnerHTML={__html:t.item.html||""}):c=Array.isArray(a)&&a?.map(I=>{if(!I)return null;let{id:l}=I,g=A?e.layout?.meta[l]:e.meta[l];return g?(0,g0.jsx)(jA,{meta:g,is_layout:A,passprop:i},l):null}),o.children=c,t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete o.children,delete o.dangerouslySetInnerHTML),{props:o,text_props:s}};var p0=K(ze());var Jc=K(ze());var vc=K(ze());var Ms=K(ze());var f0=K(FB()),kB=K(se()),B0=(e,t,A,i)=>n=>{A.item.script||(A.item.script={}),A.item.script.passprop||(A.item.script.passprop={});let r={};if(A.item.script.passprop){let s=!1;for(let[a,c]of Object.entries(n))["children","key"].includes(a)||(s=!0,r[a]=c,A.item.script.passprop[a]={end:0,start:0,value:c})}let o={...i,...r};if(!Array.isArray(n.children)&&(0,Ms.isValidElement)(n.children)&&typeof n.children=="object"){let s=(0,f0.default)(n.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(s)){let a=!0;for(let c of s)!(0,Ms.isValidElement)(c)&&typeof c=="object"||(a=!1);if(a)return s.map(c=>{let I=e.meta[c.id];return I?(0,kB.jsx)(jA,{is_layout:t,meta:I,passprop:o},c.id):null})}}if(!Array.isArray(n.children)&&!(0,Ms.isValidElement)(n.children)&&typeof n.children=="object"){let s=n.children.id;if(s){let a=e.meta[s];return(0,kB.jsx)(jA,{is_layout:t,meta:a})}}return SB(n,A.script?.scope)},SB=(e,t)=>{let A={};if(Array.isArray(e)?A.children=e:A=e,Array.isArray(A.children)){let i=[];for(let n of A.children)i.push(u0(n,A,t));return i}return u0(A.children,A,t)},u0=(e,t,A)=>{if((0,Ms.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,passprop:{...A,...i}}}}return e};var d0=(e,t,A)=>i=>{let{children:n}=i,r=e.script?.init_local_effect,o=t?e.layout?.meta:e.meta,a=(0,vc.useRef)(i.value).current;return a.render=A.render,Rc(e,A,A.script?.scope),i.hook&&i.hook(a),(0,vc.useEffect)(()=>{let c=A.item.id;if(A.parent?.instance_id&&o){let l=o[A.parent?.instance_id];if(l&&l.instances){for(let[g,u]of Object.entries(l.instances[A.parent.instance_id]))if(u===A.item.id){c=g;break}}}return!r[c]&&(typeof r=="object"&&(r[c]=!0),(async()=>i.effect&&await i.effect(a))()),()=>{}},[location.pathname]),SB(n,{...A.script?.scope,[i.name]:a})};var UB=K(se()),C0=(e,t,A,i)=>{let n=Hs(e,t,A,i);e.visit&&e.visit(t,n),t.script?t.script.scope=i:t.script={scope:i,result:null,Local:d0(e,A,t),PassProp:B0(e,A,t,i)};let r=t.script,o=window.exports,s={useEffect:Jc.useEffect,children:n.props.children,props:n.props,Local:r.Local,db:e.site.db,api:e.site.api,PassProp:r?.PassProp,ErrorBox:UA,newElement:()=>{},render:l=>{r.result=(0,UB.jsx)(Jc.Suspense,{children:l})},params,...Mr(e),...o,...i};if(typeof i=="object"){for(let[l,g]of Object.entries(i))if(typeof g=="object"&&g&&g._jsx){let u=g;s[l]=(0,UB.jsx)(uH,{fn:u.fn,passprop:i,meta:t})}}!Ce.isEditor&&t.item.adv?.js&&Ic(e,t.item.adv.js);let a=t.item.adv?.jsBuilt||"",c=xB(a,NB)||"";new Function(...Object.keys(s),`// ${t.item.name}: ${t.item.id}
`,(t?.hover||t?.active)&&a0({item:e,hover:t?.hover,active:t?.active}),Pw(e,t.mode)])}catch(A){console.log(A)}return cx([])};var g0=K(se()),Hs=(e,t,A,i)=>{let n=t.item,r;n.component?.style&&(r={style:n.component.style,className:DB(n.component.style,{mode:e.mode})});let o={className:DB(n,{mode:e.mode}),inherit:r},s={},a=t.item.childs,c;return t.item.type==="text"?(c=null,o.dangerouslySetInnerHTML={__html:t.item.html||""}):c=Array.isArray(a)&&a?.map(I=>{if(!I)return null;let{id:l}=I,g=A?e.layout?.meta[l]:e.meta[l];return g?(0,g0.jsx)(jA,{meta:g,is_layout:A,passprop:i},l):null}),o.children=c,t.item.adv?.js&&!t.item.adv.js.includes("children")&&(delete o.children,delete o.dangerouslySetInnerHTML),{props:o,text_props:s}};var p0=K(ze());var Jc=K(ze());var vc=K(ze());var f0=K(FB()),Ms=K(ze());var kB=K(se()),B0=(e,t,A,i)=>n=>{A.item.script||(A.item.script={}),A.item.script.passprop||(A.item.script.passprop={});let r={};if(A.item.script.passprop){let s=!1;for(let[a,c]of Object.entries(n))["children","key"].includes(a)||(s=!0,r[a]=c,A.item.script.passprop[a]={end:0,start:0,value:c})}let o={...i,...r};if(!Array.isArray(n.children)&&(0,Ms.isValidElement)(n.children)&&typeof n.children=="object"){let s=(0,f0.default)(n.children,"props.meta.item.component.props.child.content.childs");if(Array.isArray(s)){let a=!0;for(let c of s)!(0,Ms.isValidElement)(c)&&typeof c=="object"||(a=!1);if(a)return s.map(c=>{let I=e.meta[c.id];return I?(0,kB.jsx)(jA,{is_layout:t,meta:I,passprop:o},c.id):null})}}if(!Array.isArray(n.children)&&!(0,Ms.isValidElement)(n.children)&&typeof n.children=="object"){let s=n.children.id;if(s){let a=e.meta[s];return(0,kB.jsx)(jA,{is_layout:t,meta:a,passprop:o})}}return SB(n,A.script?.scope)},SB=(e,t)=>{let A={};if(Array.isArray(e)?A.children=e:A=e,Array.isArray(A.children)){let i=[];for(let n of A.children)i.push(u0(n,A,t));return i}return u0(A.children,A,t)},u0=(e,t,A)=>{if((0,Ms.isValidElement)(e)){let i={...t};return delete i.children,{...e,props:{...e.props,passprop:{...A,...i}}}}return e};var d0=(e,t,A)=>i=>{let{children:n}=i,r=e.script?.init_local_effect,o=t?e.layout?.meta:e.meta,a=(0,vc.useRef)(i.value).current;return a.render=A.render,Rc(e,A,A.script?.scope),i.hook&&i.hook(a),(0,vc.useEffect)(()=>{let c=A.item.id;if(A.parent?.instance_id&&o){let l=o[A.parent?.instance_id];if(l&&l.instances){for(let[g,u]of Object.entries(l.instances[A.parent.instance_id]))if(u===A.item.id){c=g;break}}}return!r[c]&&(typeof r=="object"&&(r[c]=!0),(async()=>i.effect&&await i.effect(a))()),()=>{}},[location.pathname]),SB(n,{...A.script?.scope,[i.name]:a})};var UB=K(se()),C0=(e,t,A,i)=>{let n=Hs(e,t,A,i);e.visit&&e.visit(t,n),t.script?t.script.scope=i:t.script={scope:i,result:null,Local:d0(e,A,t),PassProp:B0(e,A,t,i)};let r=t.script,o=window.exports,s={useEffect:Jc.useEffect,children:n.props.children,props:n.props,Local:r.Local,db:e.site.db,api:e.site.api,PassProp:r?.PassProp,ErrorBox:UA,newElement:()=>{},render:l=>{r.result=(0,UB.jsx)(Jc.Suspense,{children:l})},params,...Mr(e),...o,...i};if(typeof i=="object"){for(let[l,g]of Object.entries(i))if(typeof g=="object"&&g&&g._jsx){let u=g;s[l]=(0,UB.jsx)(uH,{fn:u.fn,passprop:i,meta:t})}}!Ce.isEditor&&t.item.adv?.js&&Ic(e,t.item.adv.js);let a=t.item.adv?.jsBuilt||"",c=xB(a,NB)||"";new Function(...Object.keys(s),`// ${t.item.name}: ${t.item.id}
${c}
`)(...Object.values(s)),Rc(e,t,i)},uH=({fn:e,meta:t,passprop:A})=>e({passprop:A,meta:t}),NB={"stroke-width":"strokeWidth","fill-rule":"fillRule","clip-rule":"clipRule","stroke-linejoin":"strokeLinejoin","stroke-linecap":"strokeLinecap","clip-path":"clipPath"},xB=(e,t)=>{let A=e;for(let[i,n]of Object.entries(t))A=A.replaceAll(i,n);return A};var h0=K(se()),Q0=(e,t,A,i)=>{if(t.item.component?.id){t.item.script||(t.item.script={});let r={...window.exports,db:e.site.db,api:e.site.api,...Mr(e),...i,params};t.item.script.props={};let o=new Set;if(t.item.component.props)for(let[s,a]of Object.entries(t.item.component.props))try{if(a.meta?.type==="content-element"){let u={_jsx:!0,fn:f=>{let C=a.content?.id;if(C){let F=A?e.layout?.meta[C]:e.meta[C];if(!F)return null;let d=t.instances;if(!f.meta.item.originalId||!d||!d[t.item.id])return null;let Q=f.meta.item.originalId;if(F.mitem&&(a.jsxCalledBy&&(!a.jsxCalledBy.includes(Q)||a.jsxCalledBy.length!==2)||!a.jsxCalledBy)){let y=t.mitem?.get("component")?.get("props")?.get(s);if(y){let k=y.get("jsxCalledBy");!k||typeof k!="object"?y.set("jsxCalledBy",[t.item.id,Q]):(!k.includes(Q)||k.length!==2||k[0]!==t.item.id||k[1]!==Q)&&y.set("jsxCalledBy",[t.item.id,Q])}}return(0,h0.jsx)(jA,{meta:F,passprop:f.passprop,is_layout:A})}return null}};r[s]=u,i&&(i[s]=u);continue}a.value&&Ic(e,a.value);let c=a.valueBuilt||"",I=xB(c,NB)||"",l=new Function(...Object.keys(r),`// [${t.item.name}] ${s}: ${t.item.id}
return ${I}

View File

@ -1,10 +1,8 @@
import get from "lodash.get";
import { ReactNode, isValidElement } from "react";
import { IMeta } from "../../../ed/logic/ed-global";
import { VG } from "../global";
import { ViRender } from "../render";
import get from "lodash.get";
import { GenMetaArg } from "../../utils/types";
import { genMeta } from "../../meta/meta";
export const createViPassProp = (
vi: { meta: VG["meta"] },
@ -80,9 +78,9 @@ export const createViPassProp = (
const child_id = (arg.children as any).id;
if (child_id) {
const meta = vi.meta[child_id];
return <ViRender is_layout={is_layout} meta={meta} />;
return <ViRender is_layout={is_layout} meta={meta} passprop={_pass} />;
}
}
}
return modifyChild(arg, meta.script?.scope);
};