UNPKG

@coreui/react

Version:

UI Components Library for React.js

28 lines (25 loc) 1.07 kB
import React, { useState, useEffect } from 'react'; import { createPortal } from 'react-dom'; import PropTypes from '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 = useState(null), _container = _b[0], setContainer = _b[1]; useEffect(function () { portal && setContainer(getContainer(container) || document.body); }, [container, portal]); return typeof window !== 'undefined' && portal && _container ? (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'; export { CConditionalPortal }; //# sourceMappingURL=CConditionalPortal.js.map