UNPKG

shineout

Version:

Shein 前端组件库

99 lines (75 loc) 3.09 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); 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 = _interopRequireDefault(require("react")); var _uid = require("../utils/uid"); var _default = function _default(Origin) { var _class, _temp; return _temp = _class = /*#__PURE__*/ function (_React$Component) { (0, _inheritsLoose2.default)(Group, _React$Component); function Group(props) { var _this; _this = _React$Component.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "groupKey", void 0); _this.state = { data: [] }; _this.groupByData = _this.groupByData.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.groupKey = (0, _uid.getUidStr)(); return _this; } var _proto = Group.prototype; _proto.componentDidMount = function componentDidMount() { this.groupByData(); }; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { if (prevProps.data !== this.props.data) this.groupByData(); }; _proto.groupByData = function groupByData() { var _this2 = this; var _this$props = this.props, groupBy = _this$props.groupBy, data = _this$props.data; if (typeof groupBy !== 'function') { this.setState({ data: data }); return; } var groupData = {}; data.forEach(function (d, i) { var _ref; var g = groupBy(d, i, data); if (!groupData[g]) groupData[g || ''] = g ? [(_ref = {}, _ref[_this2.groupKey] = g, _ref)] : []; groupData[g].push(d); }); this.setState({ data: Object.keys(groupData).reduce(function (p, v) { return v ? p.concat(groupData[v]) : groupData[v].concat(p); }, []) }); }; _proto.render = function render() { var _this$props2 = this.props, groupBy = _this$props2.groupBy, data = _this$props2.data, props = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["groupBy", "data"]); return _react.default.createElement(Origin, (0, _extends2.default)({}, props, { data: this.state.data, groupKey: this.groupKey })); }; return Group; }(_react.default.Component), (0, _defineProperty2.default)(_class, "defaultProps", { data: [] }), _temp; }; exports.default = _default;