2021-10-04 22:37:23 +00:00
|
|
|
import React from "react";
|
|
|
|
import styles from "./Facepile.module.css";
|
2021-11-10 23:44:08 +00:00
|
|
|
import classNames from "classnames";
|
2021-12-08 01:59:55 +00:00
|
|
|
import { Avatar } from "./Avatar";
|
2021-10-04 22:37:23 +00:00
|
|
|
|
2021-12-08 01:59:55 +00:00
|
|
|
export function Facepile({ className, participants, ...rest }) {
|
2021-10-04 22:37:23 +00:00
|
|
|
return (
|
|
|
|
<div
|
2021-12-08 01:59:55 +00:00
|
|
|
className={classNames(styles.facepile, className)}
|
2021-10-04 22:37:23 +00:00
|
|
|
title={participants.map((member) => member.name).join(", ")}
|
2021-12-08 01:59:55 +00:00
|
|
|
{...rest}
|
2021-10-04 22:37:23 +00:00
|
|
|
>
|
2021-12-08 01:59:55 +00:00
|
|
|
{participants.slice(0, 3).map((member, i) => (
|
|
|
|
<Avatar
|
2021-10-22 17:46:34 +00:00
|
|
|
key={member.userId}
|
2021-12-17 19:01:40 +00:00
|
|
|
size="xs"
|
2021-12-08 01:59:55 +00:00
|
|
|
fallback={member.name.slice(0, 1).toUpperCase()}
|
2021-10-04 22:37:23 +00:00
|
|
|
className={styles.avatar}
|
2021-12-08 01:59:55 +00:00
|
|
|
style={{ left: i * 22 }}
|
|
|
|
/>
|
2021-10-04 22:37:23 +00:00
|
|
|
))}
|
2021-11-10 23:44:08 +00:00
|
|
|
{participants.length > 3 && (
|
2021-12-08 01:59:55 +00:00
|
|
|
<Avatar
|
2021-11-10 23:44:08 +00:00
|
|
|
key="additional"
|
2021-12-17 19:01:40 +00:00
|
|
|
size="xs"
|
2021-12-08 01:59:55 +00:00
|
|
|
fallback={`+${participants.length - 3}`}
|
|
|
|
className={styles.avatar}
|
|
|
|
style={{ left: 3 * 22 }}
|
|
|
|
/>
|
2021-11-10 23:44:08 +00:00
|
|
|
)}
|
2021-10-04 22:37:23 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|