UNPKG

shineout

Version:

Shein 前端组件库

87 lines (66 loc) 2.63 kB
"use strict"; 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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _react = _interopRequireWildcard(require("react")); var _defaultProps = require("../utils/defaultProps"); var DefaultProps = (0, _objectSpread2.default)({}, _defaultProps.defaultProps, { data: {}, renderItem: 'content' }); var Item = /*#__PURE__*/ function (_React$PureComponent) { (0, _inheritsLoose2.default)(Item, _React$PureComponent); function Item(props) { var _this; _this = _React$PureComponent.call(this, props) || this; _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = Item.prototype; _proto.handleClick = function handleClick() { if (!this.props.onClick) return; this.props.onClick(this.props.data); }; _proto.render = function render() { var _this$props = this.props, data = _this$props.data, itemClassName = _this$props.itemClassName, renderItem = _this$props.renderItem, width = _this$props.width, columns = _this$props.columns; var aWidth = width && columns ? (width - 2) / columns : undefined; var props = { disabled: data.disabled, onClick: this.handleClick, className: itemClassName, target: data.target, style: aWidth ? { display: 'inline-block', width: aWidth } : null }; if (data.url) props.href = data.url; var content; if ((0, _react.isValidElement)(data)) { content = data; } else { // @ts-ignore content = typeof renderItem === 'string' ? data[renderItem] : renderItem(data); } if ((0, _react.isValidElement)(content)) { return (0, _react.cloneElement)(content, Object.assign(props, content.props)); } return _react.default.createElement("a", props, content); }; return Item; }(_react.default.PureComponent); (0, _defineProperty2.default)(Item, "defaultProps", DefaultProps); var _default = Item; exports.default = _default;