shineout
Version:
Shein 前端组件库
81 lines (62 loc) • 2.42 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var inputStyle = {
display: 'none'
};
var FileInput =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(FileInput, _PureComponent);
function FileInput(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "locked", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "input", void 0);
_this.locked = false;
_this.bindElement = _this.bindElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
return _this;
}
var _proto = FileInput.prototype;
_proto.bindElement = function bindElement(el) {
this.input = el;
};
_proto.click = function click() {
var _this2 = this;
if (this.locked) return;
this.locked = true;
this.input.value = '';
this.input.click();
setTimeout(function () {
_this2.locked = false;
}, 1000);
};
_proto.render = function render() {
var _this$props = this.props,
accept = _this$props.accept,
onChange = _this$props.onChange,
multiple = _this$props.multiple,
webkitdirectory = _this$props.webkitdirectory;
var OriginProps = {
webkitdirectory: webkitdirectory
};
return _react.default.createElement("input", (0, _extends2.default)({
ref: this.bindElement,
accept: accept,
multiple: multiple,
onChange: onChange,
style: inputStyle,
type: "file"
}, OriginProps));
};
return FileInput;
}(_react.PureComponent);
var _default = FileInput;
exports.default = _default;