choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
105 lines (88 loc) • 2.82 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _createSuper from "@babel/runtime/helpers/createSuper";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import React, { Component } from 'react';
import noop from 'lodash/noop';
import AjaxUpload from './AjaxUploader';
import IframeUpload from './IframeUploader';
var Upload = /*#__PURE__*/function (_Component) {
_inherits(Upload, _Component);
var _super = _createSuper(Upload);
function Upload() {
var _this;
_classCallCheck(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));
_defineProperty(_assertThisInitialized(_this), "state", {
Component: null
});
_defineProperty(_assertThisInitialized(_this), "saveUploader", function (node) {
_this.uploader = node;
});
return _this;
}
_createClass(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' ? AjaxUpload : IframeUpload;
}
}, {
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.createElement(_ComponentUploader, _extends({}, this.props, {
ref: this.saveUploader
}));
}
return null;
}
var ComponentUploader = this.getComponent();
return /*#__PURE__*/React.createElement(ComponentUploader, _extends({}, this.props, {
ref: this.saveUploader
}));
}
}]);
return Upload;
}(Component);
_defineProperty(Upload, "defaultProps", {
component: 'span',
prefixCls: 'rc-upload',
data: {},
headers: {},
name: 'file',
multipart: false,
onReady: noop,
onStart: noop,
onError: noop,
onSuccess: noop,
supportServerRender: false,
multiple: false,
beforeUpload: null,
customRequest: null,
withCredentials: false
});
export default Upload;
//# sourceMappingURL=Upload.js.map