mcfe-react-lib
Version:
Mount/unmount React components flexibly with React 17 or 18 support
44 lines (42 loc) • 1.17 kB
JavaScript
// src/createInitial.tsx
import React from "react";
var CreateInitial = (Component, adapter) => {
const reactDomAdapter = adapter;
let root = null;
let container = null;
return {
_root: null,
mount: function(selector) {
container = document.querySelector(selector);
if (!container)
throw new Error("Mount target not found");
root = reactDomAdapter.render(/* @__PURE__ */ React.createElement(Component, null), container);
this._root = root;
},
unmount: function() {
if (container)
reactDomAdapter.unmount(container, root);
this._root = null;
}
};
};
// src/adapters/reactDomAdapter18.ts
import * as ReactDOMClient from "react-dom/client";
var reactDomAdapter18 = {
render: (element, container) => {
const root = ReactDOMClient.createRoot(container);
root.render(element);
return root;
},
unmount: (container, root) => {
root?.unmount?.();
}
};
// src/CreateInitialReact18.tsx
var CreateInitialReact18 = (Component) => {
return CreateInitial(Component, reactDomAdapter18);
};
export {
CreateInitialReact18
};
//# sourceMappingURL=CreateInitialReact18.mjs.map