react-confirm
Version:
Small library which makes your Dialog component callable
42 lines (33 loc) • 1.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDomTreeMounter = createDomTreeMounter;
var _react = _interopRequireDefault(require("react"));
var _client = require("react-dom/client");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function createDomTreeMounter(defaultMountNode) {
var confirms = {};
var callbacks = {};
function mount(Component, props, mountNode) {
var key = Math.floor(Math.random() * (1 << 30)).toString(16);
var wrapper = (mountNode || defaultMountNode || document.body).appendChild(document.createElement('div'));
confirms[key] = wrapper;
var root = (0, _client.createRoot)(wrapper);
root.render( /*#__PURE__*/_react["default"].createElement(Component, props));
callbacks.mounted && callbacks.mounted();
return key;
}
function unmount(key) {
var wrapper = confirms[key];
delete confirms[key];
if (wrapper && wrapper.parentNode) {
wrapper.parentNode.removeChild(wrapper);
}
}
return {
mount: mount,
unmount: unmount,
options: {}
};
}
;