shineout
Version:
Shein 前端组件库
64 lines (56 loc) • 2.01 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import React, { PureComponent } from 'react';
import { uploadClass } from './styles';
import Progress from '../Progress';
import Spin from '../Spin';
import icons from '../icons';
import { ERROR, UPLOADING } from './request';
import { getDirectionClass } from '../utils/classname';
var SPIN = React.createElement("span", {
style: {
display: 'inline-block',
marginRight: 8
}
}, React.createElement(Spin, {
size: 10,
name: "ring"
}));
var File =
/*#__PURE__*/
function (_PureComponent) {
_inheritsLoose(File, _PureComponent);
function File(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
_this.handleRemove = _this.handleRemove.bind(_assertThisInitialized(_assertThisInitialized(_this)));
return _this;
}
var _proto = File.prototype;
_proto.handleRemove = function handleRemove() {
this.props.onRemove(this.props.id);
};
_proto.render = function render() {
var _this$props = this.props,
message = _this$props.message,
name = _this$props.name,
status = _this$props.status,
process = _this$props.process;
var className = uploadClass('view-file', status === ERROR && 'error');
return React.createElement("div", {
className: className
}, React.createElement("div", {
className: uploadClass(getDirectionClass('text'))
}, status === UPLOADING && SPIN, " ", name, " ", message && React.createElement("span", null, "(", message, ") ")), React.createElement("a", {
className: uploadClass('delete'),
onClick: this.handleRemove
}, icons.Close), status !== ERROR && React.createElement(Progress, {
className: uploadClass('progress'),
background: process >= 0 ? '#e9ecef' : 'transparent',
value: process,
strokeWidth: 2
}));
};
return File;
}(PureComponent);
export default File;