UNPKG

dora-ui

Version:

A React.js Mobile UI Library

73 lines (54 loc) 2.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _reactDom = _interopRequireDefault(require("react-dom")); var _utils = require("../utils"); var Portal = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Portal, _React$Component); function Portal(props) { var _this; (0, _classCallCheck2.default)(this, Portal); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Portal).call(this, props)); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "defaultNode", void 0); if (!props.node && _utils.isBrowser) { _this.defaultNode = document.createElement('div'); document.body.appendChild(_this.defaultNode); } return _this; } (0, _createClass2.default)(Portal, [{ key: "componentWillUnmount", value: function componentWillUnmount() { if (this.defaultNode) { document.body.removeChild(this.defaultNode); this.defaultNode = undefined; } } }, { key: "render", value: function render() { if (!_utils.isBrowser) return null; var _this$props = this.props, children = _this$props.children, node = _this$props.node; var container = node || this.defaultNode; return _reactDom.default.createPortal(children, container); } }]); return Portal; }(_react.default.Component); var _default = Portal; exports.default = _default;