@expressive/react
Version:
Use classes to define state in React!
35 lines • 1.07 kB
JavaScript
// 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