mcfe-react-lib
Version:
Mount/unmount React components flexibly with React 17 or 18 support
43 lines (41 loc) • 1.13 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/reactDomAdapter17.ts
import * as ReactDOM from "react-dom";
var reactDomAdapter17 = {
render: (element, container) => {
ReactDOM.render(element, container);
return null;
},
unmount: (container) => {
ReactDOM.unmountComponentAtNode(container);
}
};
// src/CreateInitialReact17.tsx
var CreateInitialReact17 = (Component) => {
return CreateInitial(Component, reactDomAdapter17);
};
export {
CreateInitialReact17
};
//# sourceMappingURL=CreateInitialReact17.mjs.map