UNPKG

@expressive/react

Version:
35 lines 1.07 kB
// src/jsx-runtime.ts import { METHOD, Model } from "@expressive/mvc"; import Runtime from "react/jsx-runtime"; import { createProvider } from "./context"; import { Fragment } from "react"; function MC({ is, ...props }) { const model = this.use((self) => { self.set(props); if (is) is(self); }); model.set(props); const render = METHOD.get(model.render) || props.render || model.render; const children = render ? render.call(model, props, model) : props.children; return createProvider(model, children, props.fallback || model.fallback, String(model)); } var RENDER = /* @__PURE__ */ new WeakMap(); function compat(type, ...args) { if (typeof type == "function") { if (RENDER.has(type)) type = RENDER.get(type); else if (typeof type == "function") RENDER.set(type, type = type.prototype instanceof Model ? MC.bind(type) : type); } return this(type, ...args); } var jsx = compat.bind(Runtime.jsx); var jsxs = compat.bind(Runtime.jsxs); export { Fragment, compat, jsx, jsxs }; //# sourceMappingURL=jsx-runtime.js.map