import Link from 'next/link'; import { Clock, File, FileCheck } from 'lucide-react'; import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-session'; import { findDocuments } from '@documenso/lib/server-only/document/find-documents'; import { getStats } from '@documenso/lib/server-only/document/get-stats'; import { DocumentStatus as InternalDocumentStatus } from '@documenso/prisma/client'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@documenso/ui/primitives/table'; import { StackAvatarsWithTooltip } from '~/components/(dashboard)/avatar/stack-avatars-with-tooltip'; import { CardMetric } from '~/components/(dashboard)/metric-card/metric-card'; import { DocumentStatus } from '~/components/formatter/document-status'; import { LocaleDate } from '~/components/formatter/locale-date'; import { UploadDocument } from './upload-document'; const CARD_DATA = [ { icon: FileCheck, title: 'Completed', status: InternalDocumentStatus.COMPLETED, }, { icon: File, title: 'Drafts', status: InternalDocumentStatus.DRAFT, }, { icon: Clock, title: 'Pending', status: InternalDocumentStatus.PENDING, }, ]; export default async function DashboardPage() { const user = await getRequiredServerComponentSession(); const [stats, results] = await Promise.all([ getStats({ user, }), findDocuments({ userId: user.id, perPage: 10, }), ]); return (