UNPKG

@atlaskit/portal

Version:

A wrapper for rendering components in React portals.

22 lines 922 B
import { portalParentClassName, portalParentSelector } from '../constants'; import { getBody } from './get-body'; const getPortalParent = () => { const parentElement = document.querySelector(portalParentSelector); if (!parentElement) { var _getBody; const parent = document.createElement('div'); parent.className = 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 = getBody()) === null || _getBody === void 0 ? void 0 : _getBody.appendChild(parent); return parent; } return parentElement; }; export const removePortalContainer = container => { const parent = getPortalParent(); if (parent.contains(container)) { parent.removeChild(container); } };