"use client" import { useState } from "react" import { Star, Reply, Forward, MoreVertical, Printer, Trash2, Mail, Ban, ShieldAlert, Fish, Flag, SlidersHorizontal, Languages, Download, Code2, MessageCircleWarning, ChevronDown, TriangleAlert, } from "lucide-react" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip" import { cn } from "@/lib/utils" import { avatarColor, cleanSenderName, senderInitial } from "@/lib/sender-display" import { MailDateText } from "@/components/gmail/mail-date-text" import { ContactHoverCard } from "@/components/gmail/contact-hover-card" import { EmailViewDetailsPopover } from "@/components/gmail/email-view/email-view-details-popover" import type { MessageHeaderDetails } from "@/lib/mail-message-header-details" import { MAIL_ICON_BTN, MAIL_MENU_SURFACE_WIDE_CLASS, MAIL_TOOLTIP_CONTENT_CLASS, } from "@/lib/mail-chrome-classes" const MESSAGE_MORE_MENU_CLASS = MAIL_MENU_SURFACE_WIDE_CLASS const MENU_ICON_CLASS = "size-[18px] shrink-0 text-muted-foreground" export interface EmailViewMessageToolbarProps { sender: string senderEmail: string headerDetails: MessageHeaderDetails dateIso: string isSpam: boolean isLast: boolean starred: boolean onToggleStar?: () => void onCollapse?: () => void onPrintConversation?: () => void onReply?: () => void onForward?: () => void detailsOpen?: boolean onDetailsOpenChange?: (open: boolean) => void messageId: string } export function EmailViewMessageToolbar({ sender, senderEmail, headerDetails, dateIso, isSpam, isLast, starred, onToggleStar, onCollapse, onPrintConversation, onReply, onForward, detailsOpen, onDetailsOpenChange, messageId, }: EmailViewMessageToolbarProps) { const name = cleanSenderName(sender) const [internalDetailsOpen, setInternalDetailsOpen] = useState(false) const detailsIsOpen = detailsOpen ?? internalDetailsOpen const setDetailsIsOpen = onDetailsOpenChange ?? setInternalDetailsOpen return ( <>