"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _react = _interopRequireWildcard(require("react"));

var _noop = _interopRequireDefault(require("lodash/noop"));

var _AjaxUploader = _interopRequireDefault(require("./AjaxUploader"));

var _IframeUploader = _interopRequireDefault(require("./IframeUploader"));

var Upload = /*#__PURE__*/function (_Component) {
  (0, _inherits2["default"])(Upload, _Component);

  var _super = (0, _createSuper2["default"])(Upload);

  function Upload() {
    var _this;

    (0, _classCallCheck2["default"])(this, Upload);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      Component: null
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "saveUploader", function (node) {
      _this.uploader = node;
    });
    return _this;
  }

  (0, _createClass2["default"])(Upload, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      if (this.props.supportServerRender) {
        /* eslint react/no-did-mount-set-state:0 */
        this.setState({
          Component: this.getComponent()
        }, this.props.onReady);
      }
    }
  }, {
    key: "getComponent",
    value: function getComponent() {
      return typeof File !== 'undefined' ? _AjaxUploader["default"] : _IframeUploader["default"];
    }
  }, {
    key: "abort",
    value: function abort(file) {
      this.uploader.abort(file);
    }
  }, {
    key: "render",
    value: function render() {
      if (this.props.supportServerRender) {
        var _ComponentUploader = this.state.Component;

        if (_ComponentUploader) {
          return /*#__PURE__*/_react["default"].createElement(_ComponentUploader, (0, _extends2["default"])({}, this.props, {
            ref: this.saveUploader
          }));
        }

        return null;
      }

      var ComponentUploader = this.getComponent();
      return /*#__PURE__*/_react["default"].createElement(ComponentUploader, (0, _extends2["default"])({}, this.props, {
        ref: this.saveUploader
      }));
    }
  }]);
  return Upload;
}(_react.Component);

(0, _defineProperty2["default"])(Upload, "defaultProps", {
  component: 'span',
  prefixCls: 'rc-upload',
  data: {},
  headers: {},
  name: 'file',
  multipart: false,
  onReady: _noop["default"],
  onStart: _noop["default"],
  onError: _noop["default"],
  onSuccess: _noop["default"],
  supportServerRender: false,
  multiple: false,
  beforeUpload: null,
  customRequest: null,
  withCredentials: false
});
var _default = Upload;
exports["default"] = _default;
//# sourceMappingURL=Upload.js.map
