@activecollab/components
Version:
ActiveCollab Components
19 lines • 702 B
JavaScript
import { useEffect, useState } from "react";
import ReactDOM from "react-dom";
const getContainer = container => {
return typeof container === "function" ? container() : container;
};
export const Portal = _ref => {
let children = _ref.children,
_ref$container = _ref.container,
container = _ref$container === void 0 ? document.body : _ref$container;
const _useState = useState(null),
mountNode = _useState[0],
setMountNode = _useState[1];
useEffect(() => {
setMountNode(getContainer(container));
}, [container]);
return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;
};
Portal.displayName = "Portal";
//# sourceMappingURL=Portal.js.map