polaris-glints
Version:
Glints forked polaris react
37 lines (27 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var reactDom = require('react-dom');
var nanoid = require('nanoid');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function Portal({
children,
idPrefix = '',
onPortalCreated = noop
}) {
const container = document.getElementById('glints-portal-container');
if (!container) {
throw new Error('No element with id `glints-portal-container` found, please add it outside where the root app is rendered');
}
const uniqueId = `portal-${nanoid.nanoid()}`;
const portalId = idPrefix !== '' ? `${idPrefix}-${uniqueId}` : uniqueId;
React.useEffect(() => {
onPortalCreated();
}, [onPortalCreated]);
return container ? /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React__default["default"].createElement("div", {
"data-portal-id": portalId
}, children), container) : null;
}
function noop() {}
exports.Portal = Portal;