text: import _extends from "@babel/runtime/helpers/esm/extends";
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  import * as React from 'react';
  import Portal from "rc-util/es/PortalWrapper";
  import Dialog from './Dialog'; // fix issue #10656
  
  /*
   * getContainer remarks
   * Custom container should not be return, because in the Portal component, it will remove the
   * return container element here, if the custom container is the only child of it's component,
   * like issue #10656, It will has a conflict with removeChild method in react-dom.
   * So here should add a child (div element) to custom container.
   * */
  
  var DialogWrap = function DialogWrap(props) {
    var visible = props.visible,
        getContainer = props.getContainer,
        forceRender = props.forceRender,
        _props$destroyOnClose = props.destroyOnClose,
        destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,
        _afterClose = props.afterClose;
  
    var _React$useState = React.useState(visible),
        _React$useState2 = _slicedToArray(_React$useState, 2),
        animatedVisible = _React$useState2[0],
        setAnimatedVisible = _React$useState2[1];
  
    React.useEffect(function () {
      if (visible) {
        setAnimatedVisible(true);
      }
    }, [visible]); // 渲染在当前 dom 里；
  
    if (getContainer === false) {
      return /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {
        getOpenCount: function getOpenCount() {
          return 2;
        } // 不对 body 做任何操作。。
  
      }));
    } // Destroy on close will remove wrapped div
  
  
    if (!forceRender && destroyOnClose && !animatedVisible) {
      return null;
    }
  
    return /*#__PURE__*/React.createElement(Portal, {
      visible: visible,
      forceRender: forceRender,
      getContainer: getContainer
    }, function (childProps) {
      return /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {
        destroyOnClose: destroyOnClose,
        afterClose: function afterClose() {
          _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();
          setAnimatedVisible(false);
        }
      }, childProps));
    });
  };
  
  DialogWrap.displayName = 'Dialog';
  export default DialogWrap;