UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

62 lines (46 loc) 1.64 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var React = _interopRequireWildcard(require("react")); var _reactDom = _interopRequireDefault(require("react-dom")); var Portal = function Portal(_ref) { var renderInto = _ref.renderInto, children = _ref.children; var _React$useState = React.useState(function () { if (typeof window !== "undefined") { return document.createElement("div"); } return null; }), _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 1), el = _React$useState2[0]; var _React$useState3 = React.useState(function () { if (typeof window !== "undefined") { return renderInto && document.getElementById(renderInto) ? document.getElementById(renderInto) : document.body; } return null; }), _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 1), node = _React$useState4[0]; React.useLayoutEffect(function () { if (node && el) { node.appendChild(el); } return function () { if (node && el) { node.removeChild(el); } }; }, [el, node]); if (typeof window !== "undefined" && el !== null) { return /*#__PURE__*/_reactDom.default.createPortal(children, el); } return null; }; var _default = Portal; exports.default = _default;