@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
24 lines (23 loc) • 754 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MountableComponent = void 0;
const client_1 = require("react-dom/client");
class MountableComponent {
constructor(element) {
var _a;
if (MountableComponent.ROOT.has(element.id)) {
(_a = MountableComponent.ROOT.get(element.id)) === null || _a === void 0 ? void 0 : _a.unmount();
}
this.root = (0, client_1.createRoot)(element);
MountableComponent.ROOT.set(element.id, this.root);
}
render(node) {
this.unmount();
this.root.render(node);
}
unmount() {
this.root.render(undefined);
}
}
exports.MountableComponent = MountableComponent;
MountableComponent.ROOT = new Map();