UNPKG

mcfe-react-lib

Version:

Mount/unmount React components flexibly with React 17 or 18 support

44 lines (42 loc) 1.17 kB
// 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