"use client"
import { accounts, mails } from "./data"
import * as React from "react"
import {
AlertCircle, Archive, ArchiveX, Clock, File, Forward, Inbox, Mail as MailIcon,
MessagesSquare, MoreVertical, Reply, ReplyAll, Search, Send, ShoppingCart,
Trash2, Users2, LucideIcon
} from "lucide-react"
import { useMail } from "./use-mail"
import { cn } from "@/lib/utils"
import { format, formatDistanceToNow, addDays, addHours, nextSaturday } from "date-fns"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
import { Calendar } from "@/components/ui/calendar"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from "@/components/ui/resizable"
import { ScrollArea } from "@/components/ui/scroll-area"
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select"
import { Separator } from "@/components/ui/separator"
import { Switch } from "@/components/ui/switch"
import {
Tabs,
TabsContent,
TabsList,
TabsTrigger,
} from "@/components/ui/tabs"
import { Textarea } from "@/components/ui/textarea"
import {
Tooltip,
TooltipContent,
TooltipTrigger,
TooltipProvider,
} from "@/components/ui/tooltip"
interface Account {
label: string
email: string
icon: React.ReactNode
}
interface Mail {
id: string
name: string
email: string
subject: string
text: string
date: string
read: boolean
labels: string[]
}
interface NavLink {
title: string
label?: string
icon: LucideIcon
variant: "default" | "ghost"
}
interface MailProps {
accounts: Account[]
mails: Mail[]
defaultLayout?: number[]
defaultCollapsed?: boolean
navCollapsedSize: number
}
function MailComponent({
accounts,
mails,
defaultLayout = [20, 32, 48],
defaultCollapsed = false,
navCollapsedSize,
}: MailProps) {
const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)
const [mail, setMail] = useMail()
const navLinks: NavLink[] = [
{ title: "Inbox", label: "128", icon: Inbox, variant: "default" },
{ title: "Drafts", label: "9", icon: File, variant: "ghost" },
{ title: "Sent", label: "", icon: Send, variant: "ghost" },
{ title: "Junk", label: "23", icon: ArchiveX, variant: "ghost" },
{ title: "Trash", label: "", icon: Trash2, variant: "ghost" },
{ title: "Archive", label: "", icon: Archive, variant: "ghost" },
{ title: "Social", label: "972", icon: Users2, variant: "ghost" },
{ title: "Updates", label: "342", icon: AlertCircle, variant: "ghost" },
{ title: "Forums", label: "128", icon: MessagesSquare, variant: "ghost" },
{ title: "Shopping", label: "8", icon: ShoppingCart, variant: "ghost" },
{ title: "Promotions", label: "21", icon: Archive, variant: "ghost" }
]
return (
Inbox