import { ReactElement, useState } from "react"; import Layout from "../components/layout"; import type { NextPageWithLayout } from "./_app"; import Head from "next/head"; import { CheckBadgeIcon, EnvelopeIcon, EyeIcon, PlusIcon, TrashIcon, } from "@heroicons/react/24/outline"; import Link from "next/link"; import { useRouter } from "next/router"; import { uploadDocument } from "@documenso/features"; import { DocumentStatus } from "@prisma/client"; import { Tooltip as ReactTooltip } from "react-tooltip"; import { getDocumentsForUserFromToken } from "@documenso/lib/query"; import { Button } from "@documenso/ui"; const DocumentsPage: NextPageWithLayout = (props: any) => { const router = useRouter(); const [documents = [], setDocuments] = useState(props.documents); const [loading, setLoading] = useState(false); const getDocuments = async () => { if (!documents.length) setLoading(true); fetch("/api/documents", { headers: { "Content-Type": "application/json", }, }).then((res) => { res.json().then((j) => { setDocuments(j); setLoading(false); }); }); }; function showDocument(documentId: number) { router.push("/documents/" + documentId); } return ( <> Documents | Documenso

Documents

); }; export async function getServerSideProps(context: any) { return { props: { documents: await getDocumentsForUserFromToken(context), }, }; } function formatDocumentStatus(status: DocumentStatus) { switch (status) { case DocumentStatus.DRAFT: return "Draft"; case DocumentStatus.PENDING: return "Pending"; case DocumentStatus.COMPLETED: return "Completed"; } } DocumentsPage.getLayout = function getLayout(page: ReactElement) { return {page}; }; export default DocumentsPage;