"use client"; import { useTranslations } from "next-intl"; import { Users, Pencil, Trash2, UserMinus, Mail } from "lucide-react"; import { Avatar } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import type { ContactCard } from "@/lib/jmap/types"; import { getContactDisplayName, getContactPrimaryEmail } from "@/stores/contact-store"; interface ContactGroupDetailProps { group: ContactCard; members: ContactCard[]; onEdit: () => void; onDelete: () => void; onRemoveMember: (memberId: string) => void; onSelectMember: (id: string) => void; /** Compose an email to every member with the recipients placed in `field`. */ onComposeGroup?: (field: "to" | "cc" | "bcc") => void; isMobile?: boolean; className?: string; } export function ContactGroupDetail({ group, members, onEdit, onDelete, onRemoveMember, onSelectMember, onComposeGroup, isMobile, className, }: ContactGroupDetailProps) { const t = useTranslations("contacts"); const groupName = getContactDisplayName(group); const hasEmailMembers = members.some((m) => getContactPrimaryEmail(m).trim()); return (
{t("groups.member_count", { count: members.length })}
{t("groups.no_members")}
) : (