1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | exports.__esModule = true;
|
6 | exports.default = void 0;
|
7 |
|
8 | var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
9 |
|
10 | var _react = _interopRequireDefault(require("react"));
|
11 |
|
12 | var _reactDom = _interopRequireDefault(require("react-dom"));
|
13 |
|
14 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
15 |
|
16 | var _utils = require("./utils");
|
17 |
|
18 | var propTypes = {
|
19 | children: _propTypes.default.node.isRequired,
|
20 | node: _propTypes.default.any
|
21 | };
|
22 |
|
23 | var Portal = function (_React$Component) {
|
24 | (0, _inheritsLoose2.default)(Portal, _React$Component);
|
25 |
|
26 | function Portal() {
|
27 | return _React$Component.apply(this, arguments) || this;
|
28 | }
|
29 |
|
30 | var _proto = Portal.prototype;
|
31 |
|
32 | _proto.componentWillUnmount = function componentWillUnmount() {
|
33 | if (this.defaultNode) {
|
34 | document.body.removeChild(this.defaultNode);
|
35 | }
|
36 |
|
37 | this.defaultNode = null;
|
38 | };
|
39 |
|
40 | _proto.render = function render() {
|
41 | if (!_utils.canUseDOM) {
|
42 | return null;
|
43 | }
|
44 |
|
45 | if (!this.props.node && !this.defaultNode) {
|
46 | this.defaultNode = document.createElement('div');
|
47 | document.body.appendChild(this.defaultNode);
|
48 | }
|
49 |
|
50 | return _reactDom.default.createPortal(this.props.children, this.props.node || this.defaultNode);
|
51 | };
|
52 |
|
53 | return Portal;
|
54 | }(_react.default.Component);
|
55 |
|
56 | Portal.propTypes = propTypes;
|
57 | var _default = Portal;
|
58 | exports.default = _default; |
\ | No newline at end of file |