@coreui/react
Version:
UI Components Library for React.js
30 lines (26 loc) • 1.1 kB
JavaScript
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
;