import { ReactElement, useEffect, useState } from "react"; import Layout from "../components/layout"; import type { NextPageWithLayout } from "./_app"; import Head from "next/head"; import { ArrowDownTrayIcon, CheckBadgeIcon, CheckIcon, DocumentPlusIcon, EnvelopeIcon, PencilSquareIcon, PlusIcon, TrashIcon, } from "@heroicons/react/24/outline"; import { useRouter } from "next/router"; import { uploadDocument } from "@documenso/features"; import { DocumentStatus } from "@prisma/client"; import { Tooltip as ReactTooltip } from "react-tooltip"; import { Button, IconButton } from "@documenso/ui"; const DocumentsPage: NextPageWithLayout = (props: any) => { const router = useRouter(); const [documents, setDocuments]: any[] = useState([]); const [loading, setLoading] = useState(true); 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); }); }); }; useEffect(() => { getDocuments(); }, []); function showDocument(documentId: number) { router.push(`/documents/${documentId}/recipients`); } return ( <>
| Title | Recipients | Status | Delete |
|---|---|---|---|
| {document.title || "#" + document.id} |
{document.Recipient.map((item: any) => (
{item.sendStatus === "NOT_SENT" ? (
{item.name
? item.name + " <" + item.email + ">"
: item.email}
) : (
""
)}
{item.sendStatus === "SENT" &&
item.readStatus !== "OPENED" ? (
))}
{document.Recipient.length === 0 ? "-" : null}
|
{formatDocumentStatus(document.status)}
{document.Recipient.filter( (r: any) => r.signingStatus === "SIGNED" ).length || 0} /{document.Recipient.length || 0} |
|
Get started by creating a new document.