UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

29 lines (25 loc) 1.02 kB
'use strict'; var React = require('react'); var ReactDOM = require('react-dom'); var PropTypes = require('prop-types'); const getContainer = (container) => { if (container) { return typeof container === 'function' ? container() : container; } return document.body; }; const CConditionalPortal = ({ children, container, portal, }) => { const [_container, setContainer] = React.useState(null); React.useEffect(() => { 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