"use client" import * as React from "react" import { AlertCircle, Archive, ArchiveX, File, Inbox, MessagesSquare, Search, Send, ShoppingCart, Trash2, Users2, } from "lucide-react" import { cn } from "@/lib/utils" import { Input } from "@/components/ui/input" import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "@/components/ui/resizable" import { Separator } from "@/components/ui/separator" import { Tabs, TabsContent, TabsList, TabsTrigger, } from "@/components/ui/tabs" import { TooltipProvider } from "@/components/ui/tooltip" import { AccountSwitcher } from "@/mail/components/account-switcher" import { MailDisplay } from "@/mail/components/mail-display" import { MailList } from "@/mail/components/mail-list" import { Nav } from "@/mail/components/nav" import { type Mail } from "@/mail/data" import { useMail } from "@/mail/use-mail" interface MailProps { accounts: { label: string email: string icon: React.ReactNode }[] mails: Mail[] defaultLayout: number[] | undefined defaultCollapsed?: boolean navCollapsedSize: number } export function Mail({ accounts, mails, defaultLayout = [20, 32, 48], defaultCollapsed = false, navCollapsedSize, }: MailProps) { const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed) const [mail] = useMail() return ( { document.cookie = `react-resizable-panels:layout:mail=${JSON.stringify( sizes )}` }} className="h-full max-h-[800px] items-stretch" > { setIsCollapsed(true) document.cookie = `react-resizable-panels:collapsed=${JSON.stringify( true )}` }} onResize={() => { setIsCollapsed(false) document.cookie = `react-resizable-panels:collapsed=${JSON.stringify( false )}` }} className={cn( isCollapsed && "min-w-[50px] transition-all duration-300 ease-in-out" )} >