UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

107 lines (106 loc) 4.52 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _antd = require("antd"); var _ = require(".."); var _classnames = _interopRequireDefault(require("classnames")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var Group = function Group(props) { var type = props.type, onChange = props.onChange, children = props.children, style = props.style, multiSelect = props.multiSelect, _props$max = props.max, max = _props$max === void 0 ? Infinity : _props$max, _props$min = props.min, min = _props$min === void 0 ? 0 : _props$min, _props$loading = props.loading, loading = _props$loading === void 0 ? false : _props$loading, className = props.className; var isControlled = ('value' in props); var _useState = (0, _react.useState)((isControlled ? props.value : props.defaultValue) || (multiSelect ? [] : '')), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), activeKey = _useState2[0], setActiveKey = _useState2[1]; var onCardClick = function onCardClick(key) { if (multiSelect) { var _activeKey = (0, _toConsumableArray2["default"])(activeKey); var index = _activeKey.indexOf(key); if (index > -1) { // 如果存在就删除 // 判断是否超过限制 if (_activeKey.length > min) { _activeKey.splice(index, 1); onChange && onChange(_activeKey); !isControlled && setActiveKey(_activeKey); } } else if (_activeKey.length < max) { // 不存在就添加 _activeKey.length < max && _activeKey.push(key); onChange && onChange(_activeKey); !isControlled && setActiveKey(_activeKey); } } else { activeKey !== key && onChange && onChange(key); !isControlled && setActiveKey(key); } }; var getActive = function getActive(id) { if (multiSelect) { return activeKey != null && activeKey.indexOf(id) > -1; } else { return activeKey != null && id === activeKey; } }; (0, _react.useEffect)(function () { isControlled && setActiveKey(props.value); }, [isControlled, props.value]); if (!children) { return null; } var renderCard = function renderCard(child) { if (!child) return null; var childProps = child.type === _.IndexCard ? { key: child.props.id, onClick: onCardClick, isActive: getActive(child.props.id), hasHook: multiSelect } : { key: child.props.id }; return _react["default"].cloneElement(child, childProps); }; var renderCards = function renderCards(childs) { return childs.map(function (child) { if (Array.isArray(child)) { return renderCards(child); } return renderCard(child); }); }; return /*#__PURE__*/_react["default"].createElement(_antd.Spin, { spinning: loading }, /*#__PURE__*/_react["default"].createElement(_.HorizontalScroll, { isFlex: type === 'flex', style: style, className: (0, _classnames["default"])(className, 'umui-index-card-group') }, Array.isArray(children) ? renderCards(children) : renderCard(children))); }; Group.displayName = 'Group'; Group.defaultProps = { type: 'default', multiSelect: false, max: Infinity, min: 0, loading: false }; var _default = exports["default"] = Group;