"use client"; import { formatDate } from "@/lib/utils"; import { Email } from "@/lib/jmap/types"; import { cn } from "@/lib/utils"; import { Avatar } from "@/components/ui/avatar"; import { Paperclip, Star, Circle } from "lucide-react"; interface ThreadEmailItemProps { email: Email; selected?: boolean; isLast?: boolean; onClick?: () => void; onContextMenu?: (e: React.MouseEvent, email: Email) => void; } export function ThreadEmailItem({ email, selected, isLast = false, onClick, onContextMenu, }: ThreadEmailItemProps) { const isUnread = !email.keywords?.$seen; const isStarred = email.keywords?.$flagged; const sender = email.from?.[0]; const handleContextMenu = (e: React.MouseEvent) => { onContextMenu?.(e, email); }; return (
{/* Unread indicator */} {isUnread && (
)} {/* Small Avatar */} {/* Content */}
{/* Single line: Sender, indicators, preview, date */}
{sender?.name || sender?.email?.split('@')[0] || "Unknown"} {/* Indicators */}
{isStarred && ( )} {email.hasAttachment && ( )}
{/* Preview snippet */} {email.preview || "No preview"} {/* Date */} {formatDate(email.receivedAt)}
); }