"use client" import { Button } from "@/components/ui/button" 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 { cn } from "@/lib/utils" import { AlertCircle, Archive, ArchiveX, File, Inbox, MessagesSquare, Moon, Search, Send, ShoppingCart, Sun, Trash2, Users2, } from "lucide-react" import * as React from "react" import type { Mail } from "../data" import { AccountSwitcher } from "./account-switcher" import { MailList } from "./mail-list" import { Nav } from "./nav" interface MailProps { accounts: { label: string email: string icon: React.ReactNode }[] mails: Mail[] defaultLayout: number[] | undefined defaultCollapsed?: boolean navCollapsedSize: number } export function MailComponent({ accounts, mails, defaultLayout = [20, 80], defaultCollapsed = false, navCollapsedSize, }: MailProps) { const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed) const [isDark, setIsDark] = React.useState(false) React.useEffect(() => { const theme = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light") setIsDark(theme === "dark") }, []) const toggleDarkMode = () => { const newIsDark = !isDark setIsDark(newIsDark) if (newIsDark) { document.documentElement.classList.add("dark") localStorage.setItem("theme", "dark") } else { document.documentElement.classList.remove("dark") localStorage.setItem("theme", "light") } } 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( "bg-sidebar transition-all duration-300 ease-in-out flex flex-col", isCollapsed && "min-w-[50px]", )} >
{isCollapsed && }