UNPKG

ziko-wrapper

Version:

integrate zikojs elements within other ui framework like vue react solidjs svelte astro ...

34 lines (32 loc) 903 B
import { UIElement } from "ziko"; import { createRoot } from "react-dom/client"; import { isValidElement, createElement } from "react"; const zikofy = (Component, props) => { const container = document.createElement("div"); const root = createRoot(container); const element = isValidElement(Component) ? Component : createElement(Component, props); const ui = new UIElement() .style({ display: "contents", }) .setAttr({ dataWrapper: "react", }); root.render(element); const observer = new MutationObserver(() => { if (container.firstChild) { observer.disconnect(); Object.defineProperty(ui, "element", { get() { return this.__ele__.firstChild; }, configurable: false, }); } }); observer.observe(container, { childList: true }); return ui; }; export{ zikofy }