import { getDmParticipantPreview } from "@/features/channels/lib/dmParticipantDisplay"; import { UserProfilePopover } from "@/features/profile/ui/UserProfilePopover"; import { UserAvatar } from "@/shared/ui/UserAvatar"; export type DirectMessageIntroParticipant = { avatarUrl: string | null; displayName: string; pubkey: string; }; export function DirectMessageIntroAvatarStack({ participants, }: { participants: DirectMessageIntroParticipant[]; }) { const { hiddenCount, visibleParticipants } = getDmParticipantPreview(participants); const stackItemCount = visibleParticipants.length + (hiddenCount > 0 ? 1 : 0); return (
{visibleParticipants.map((participant, index) => ( 0 ? "-ml-5" : ""} data-testid="message-dm-intro-avatar-stack-participant" style={{ zIndex: index + 1, ...(index < stackItemCount - 1 && { mask: "radial-gradient(circle 34px at calc(100% + 10px) 50%, transparent 99%, #fff 100%)", WebkitMask: "radial-gradient(circle 34px at calc(100% + 10px) 50%, transparent 99%, #fff 100%)", }), }} > ))} {hiddenCount > 0 ? (
0 ? "-ml-5" : ""} data-testid="message-dm-intro-avatar-stack-more" style={{ zIndex: stackItemCount }} > +{hiddenCount}
) : null}
); }