UNPKG

@atlaskit/portal

Version:

A wrapper for rendering components in React portals.

27 lines (26 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.appendPortalContainerIfNotAppended = void 0; var _constants = require("../constants"); var _getBody2 = require("./get-body"); var getPortalParent = function getPortalParent() { var parentElement = document.querySelector(_constants.portalParentSelector); if (!parentElement) { var _getBody; var parent = document.createElement('div'); parent.className = _constants.portalParentClassName; // we are setting display to flex because we want each portal to create a new stacking context // See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context parent.style.display = 'flex'; (_getBody = (0, _getBody2.getBody)()) === null || _getBody === void 0 || _getBody.appendChild(parent); return parent; } return parentElement; }; var appendPortalContainerIfNotAppended = exports.appendPortalContainerIfNotAppended = function appendPortalContainerIfNotAppended(container) { if (!container.parentElement) { getPortalParent().appendChild(container); } };