shineout
Version:
Shein 前端组件库
88 lines (68 loc) • 2.84 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
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 _Checkbox = _interopRequireDefault(require("../Checkbox/Checkbox"));
var _Radio = _interopRequireDefault(require("../Radio/Radio"));
var _styles = require("./styles");
var _classname = require("../utils/classname");
var BoxOption =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(BoxOption, _PureComponent);
function BoxOption(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "locked", void 0);
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
return _this;
}
var _proto = BoxOption.prototype;
_proto.handleClick = function handleClick() {
var _this2 = this;
var _this$props = this.props,
data = _this$props.data,
onClick = _this$props.onClick,
isActive = _this$props.isActive,
disabled = _this$props.disabled;
if (this.locked || disabled) return;
this.locked = true;
onClick(!isActive, data);
setTimeout(function () {
_this2.locked = false;
}, 200);
};
_proto.render = function render() {
var _this$props2 = this.props,
data = _this$props2.data,
isActive = _this$props2.isActive,
renderItem = _this$props2.renderItem,
columns = _this$props2.columns,
multiple = _this$props2.multiple,
disabled = _this$props2.disabled;
var className = (0, _styles.selectClass)((0, _classname.getDirectionClass)('option'));
var width = columns < 0 ? undefined : 1 / columns * 100 + "%";
var Input = multiple ? _Checkbox.default : _Radio.default;
var result = renderItem(data);
var title = typeof result === 'string' ? result : undefined;
return _react.default.createElement(Input, {
disabled: disabled,
style: {
width: width
},
checked: isActive,
className: className,
onChange: this.handleClick
}, _react.default.createElement("span", {
title: title
}, result));
};
return BoxOption;
}(_react.PureComponent);
var _default = BoxOption;
exports.default = _default;