import { useT } from "@agent-native/core/client/i18n"; import { postNavigate, isInAgentEmbed, } from "@agent-native/core/client/navigation"; import type { EmailMessage } from "@shared/types"; import { IconExternalLink } from "@tabler/icons-react"; import { useMemo } from "react"; import { useSearchParams } from "react-router"; import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { useThreadMessages } from "@/hooks/use-emails"; import messages from "@/i18n/en-US"; import { sanitizeHtml } from "@/lib/sanitize-html"; import { formatEmailDate, formatEmailDateFull, cn } from "@/lib/utils"; export function meta() { return [{ title: messages.mail.routeTitles.emailThread }]; } // ─── Message Card ──────────────────────────────────────────────────────────── function MessageCard({ message }: { message: EmailMessage }) { const fromName = message.from.name || message.from.email; const toList = message.to.map((a) => a.name || a.email).join(", "); const safeHtml = useMemo( () => (message.bodyHtml ? sanitizeHtml(message.bodyHtml) : null), [message.bodyHtml], ); return (
{message.body}
)}