ziko-wrapper
Version:
integrate zikojs elements within other ui framework like vue react solidjs svelte astro ...
24 lines (21 loc) • 662 B
JavaScript
import van from "vanjs-core";
import { UIElement } from "ziko"
const __Tags__ = van.tags;
const __Add__ = van.add;
van.tags = new Proxy(__Tags__, {
get(target, tagName, receiver) {
const originalTagFn = Reflect.get(target, tagName, receiver)
return (...args) => {
for(let i=0; i<args.length; i++) if(args[i] instanceof UIElement) args[i] = args[i].element
const element = originalTagFn(...args)
return element
}
}
});
van.add = (dom, ...children) =>{
children = children.map(child=>{
if(child instanceof UIElement) return child.element;
return child;
})
return __Add__(dom, ...children)
}