1 | import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
2 | import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
3 | import classNames from 'classnames';
|
4 | import toArray from "rc-util/es/Children/toArray";
|
5 | import * as React from 'react';
|
6 | import { ConfigContext } from '../config-provider';
|
7 | import Popover from '../popover';
|
8 | import { cloneElement } from '../_util/reactNode';
|
9 | import Avatar from './avatar';
|
10 | import { SizeContextProvider } from './SizeContext';
|
11 | import useStyle from './style';
|
12 | var Group = function Group(props) {
|
13 | var _React$useContext = React.useContext(ConfigContext),
|
14 | getPrefixCls = _React$useContext.getPrefixCls,
|
15 | direction = _React$useContext.direction;
|
16 | var customizePrefixCls = props.prefixCls,
|
17 | _props$className = props.className,
|
18 | className = _props$className === void 0 ? '' : _props$className,
|
19 | maxCount = props.maxCount,
|
20 | maxStyle = props.maxStyle,
|
21 | size = props.size;
|
22 | var prefixCls = getPrefixCls('avatar', customizePrefixCls);
|
23 | var groupPrefixCls = prefixCls + "-group";
|
24 | var _useStyle = useStyle(prefixCls),
|
25 | _useStyle2 = _slicedToArray(_useStyle, 2),
|
26 | wrapSSR = _useStyle2[0],
|
27 | hashId = _useStyle2[1];
|
28 | var cls = classNames(groupPrefixCls, _defineProperty({}, groupPrefixCls + "-rtl", direction === 'rtl'), className, hashId);
|
29 | var children = props.children,
|
30 | _props$maxPopoverPlac = props.maxPopoverPlacement,
|
31 | maxPopoverPlacement = _props$maxPopoverPlac === void 0 ? 'top' : _props$maxPopoverPlac,
|
32 | _props$maxPopoverTrig = props.maxPopoverTrigger,
|
33 | maxPopoverTrigger = _props$maxPopoverTrig === void 0 ? 'hover' : _props$maxPopoverTrig;
|
34 | var childrenWithProps = toArray(children).map(function (child, index) {
|
35 | return cloneElement(child, {
|
36 | key: "avatar-key-" + index
|
37 | });
|
38 | });
|
39 | var numOfChildren = childrenWithProps.length;
|
40 | if (maxCount && maxCount < numOfChildren) {
|
41 | var childrenShow = childrenWithProps.slice(0, maxCount);
|
42 | var childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);
|
43 | childrenShow.push( React.createElement(Popover, {
|
44 | key: "avatar-popover-key",
|
45 | content: childrenHidden,
|
46 | trigger: maxPopoverTrigger,
|
47 | placement: maxPopoverPlacement,
|
48 | overlayClassName: groupPrefixCls + "-popover"
|
49 | }, React.createElement(Avatar, {
|
50 | style: maxStyle
|
51 | }, "+" + (numOfChildren - maxCount))));
|
52 | return wrapSSR( React.createElement(SizeContextProvider, {
|
53 | size: size
|
54 | }, React.createElement("div", {
|
55 | className: cls,
|
56 | style: props.style
|
57 | }, childrenShow)));
|
58 | }
|
59 | return wrapSSR( React.createElement(SizeContextProvider, {
|
60 | size: size
|
61 | }, React.createElement("div", {
|
62 | className: cls,
|
63 | style: props.style
|
64 | }, childrenWithProps)));
|
65 | };
|
66 | export default Group; |
\ | No newline at end of file |