import { useSession } from "next-auth/react"; import { ReactElement, useEffect, useState } from "react"; import Layout from "../components/layout"; import type { NextPageWithLayout } from "./_app"; import Head from "next/head"; import { PlusIcon, TrashIcon } from "@heroicons/react/24/outline"; import { Document as PrismaDocument } from "@prisma/client"; import { getUserFromToken } from "@documenso/lib/server"; import Link from "next/link"; import { useRouter } from "next/router"; import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib/constants"; const DocumentsPage: NextPageWithLayout = (req, res) => { const router = useRouter(); const [documents, setDocuments] = useState([]); useEffect(() => { getDocuments(); }); const getDocuments = async () => { fetch("/api/documents", { headers: { "Content-Type": "application/json", }, }).then((res) => { res.json().then((j) => { setDocuments(j); }); }); }; function showDocument(documentId: number) { router.push("/documents/" + documentId); } const uploadToServer = async (event: any) => { if (event.target.files && event.target.files[0]) { const body = new FormData(); const document = event.target.files[0]; body.append("document", document || ""); const response: any = await fetch("/api/documents", { method: "POST", body, }).then((response: Response) => { response.json().then((createdDocumentIdFromBody) => { router.push( `${NEXT_PUBLIC_WEBAPP_URL}/documents/${createdDocumentIdFromBody}` ); }); }); } }; return ( <> Documents | Documenso ); }; DocumentsPage.getLayout = function getLayout(page: ReactElement) { return {page}; }; export default DocumentsPage;