"use client"; import Link from "next/link"; import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell, } from "@unsend/ui/src/table"; import { Badge } from "@unsend/ui/src/badge"; import { api } from "~/trpc/react"; import { Mail, MailCheck, MailOpen, MailSearch, MailWarning, MailX, } from "lucide-react"; import { formatDistanceToNow } from "date-fns"; import { EmailStatus } from "@prisma/client"; import { EmailStatusBadge } from "./email-status-badge"; import { useState } from "react"; import EmailDetails from "./email-details"; import { useRouter } from "next/navigation"; import { useSearchParams } from "next/navigation"; // Adjust the import based on your project setup import dynamic from "next/dynamic"; import { useUrlState } from "~/hooks/useUrlState"; import { Button } from "@unsend/ui/src/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@unsend/ui/src/select"; /* Stupid hydrating error. And I so stupid to understand the stupid NextJS docs. Because they stupid change it everyday */ const DynamicSheetWithNoSSR = dynamic( () => import("@unsend/ui/src/sheet").then((mod) => mod.Sheet), { ssr: false } ); const DynamicSheetContentWithNoSSR = dynamic( () => import("@unsend/ui/src/sheet").then((mod) => mod.SheetContent), { ssr: false } ); export default function EmailsList() { const [selectedEmail, setSelectedEmail] = useUrlState("emailId"); const [page, setPage] = useUrlState("page", "1"); const [status, setStatus] = useUrlState("status"); const pageNumber = Number(page); const emailsQuery = api.email.emails.useQuery({ page: pageNumber, status: status?.toUpperCase() as EmailStatus, }); const handleSelectEmail = (emailId: string) => { setSelectedEmail(emailId); }; const handleSheetChange = (isOpen: boolean) => { if (!isOpen) { setSelectedEmail(null); } }; return (