UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

59 lines 2.55 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import classNames from 'classnames'; import toArray from "rc-util/es/Children/toArray"; import * as React from 'react'; import { ConfigContext } from '../config-provider'; import Popover from '../popover'; import { cloneElement } from '../_util/reactNode'; import Avatar from './avatar'; import { SizeContextProvider } from './SizeContext'; var Group = function Group(props) { var _React$useContext = React.useContext(ConfigContext), getPrefixCls = _React$useContext.getPrefixCls, direction = _React$useContext.direction; var customizePrefixCls = props.prefixCls, _props$className = props.className, className = _props$className === void 0 ? '' : _props$className, maxCount = props.maxCount, maxStyle = props.maxStyle, size = props.size; var prefixCls = getPrefixCls('avatar-group', customizePrefixCls); var cls = classNames(prefixCls, _defineProperty({}, "".concat(prefixCls, "-rtl"), direction === 'rtl'), className); var children = props.children, _props$maxPopoverPlac = props.maxPopoverPlacement, maxPopoverPlacement = _props$maxPopoverPlac === void 0 ? 'top' : _props$maxPopoverPlac, _props$maxPopoverTrig = props.maxPopoverTrigger, maxPopoverTrigger = _props$maxPopoverTrig === void 0 ? 'hover' : _props$maxPopoverTrig; var childrenWithProps = toArray(children).map(function (child, index) { return cloneElement(child, { key: "avatar-key-".concat(index) }); }); var numOfChildren = childrenWithProps.length; if (maxCount && maxCount < numOfChildren) { var childrenShow = childrenWithProps.slice(0, maxCount); var childrenHidden = childrenWithProps.slice(maxCount, numOfChildren); childrenShow.push( /*#__PURE__*/React.createElement(Popover, { key: "avatar-popover-key", content: childrenHidden, trigger: maxPopoverTrigger, placement: maxPopoverPlacement, overlayClassName: "".concat(prefixCls, "-popover") }, /*#__PURE__*/React.createElement(Avatar, { style: maxStyle }, "+".concat(numOfChildren - maxCount)))); return /*#__PURE__*/React.createElement(SizeContextProvider, { size: size }, /*#__PURE__*/React.createElement("div", { className: cls, style: props.style }, childrenShow)); } return /*#__PURE__*/React.createElement(SizeContextProvider, { size: size }, /*#__PURE__*/React.createElement("div", { className: cls, style: props.style }, childrenWithProps)); }; export default Group;