UNPKG

@coreui/react

Version:

UI Components Library for React.js

30 lines (26 loc) 1.1 kB
'use strict'; var React = require('react'); var ReactDOM = require('react-dom'); var PropTypes = require('prop-types'); var getContainer = function (container) { if (container) { return typeof container === 'function' ? container() : container; } return document.body; }; var CConditionalPortal = function (_a) { var children = _a.children, container = _a.container, portal = _a.portal; var _b = React.useState(null), _container = _b[0], setContainer = _b[1]; React.useEffect(function () { portal && setContainer(getContainer(container) || document.body); }, [container, portal]); return typeof window !== 'undefined' && portal && _container ? (ReactDOM.createPortal(children, _container)) : (React.createElement(React.Fragment, null, children)); }; CConditionalPortal.propTypes = { children: PropTypes.node, container: PropTypes.any, // HTMLElement portal: PropTypes.bool.isRequired, }; CConditionalPortal.displayName = 'CConditionalPortal'; exports.CConditionalPortal = CConditionalPortal; //# sourceMappingURL=CConditionalPortal.js.map