import { ReactElement } from "react";
import Link from "next/link";
import { useRouter } from "next/router";
import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib";
import { getDocument } from "@documenso/lib/query";
import { getUserFromToken } from "@documenso/lib/server";
import { Breadcrumb, Button } from "@documenso/ui";
import PDFEditor from "../../../components/editor/pdf-editor";
import Layout from "../../../components/layout";
import { NextPageWithLayout } from "../../_app";
import { InformationCircleIcon, PaperAirplaneIcon, UsersIcon } from "@heroicons/react/24/outline";
import { DocumentStatus } from "@prisma/client";
import { Document as PrismaDocument } from "@prisma/client";
const DocumentsDetailPage: NextPageWithLayout = (props: any) => {
const router = useRouter();
return (
{props.document.title}
{props?.document?.Recipient?.length} Recipients
{formatDocumentStatus(props.document.status)}
);
};
function formatDocumentStatus(status: DocumentStatus) {
switch (status) {
case DocumentStatus.DRAFT:
return "Draft";
case DocumentStatus.PENDING:
return "Waiting for others";
case DocumentStatus.COMPLETED:
return "Completed";
}
}
export async function getServerSideProps(context: any) {
const user = await getUserFromToken(context.req, context.res);
if (!user)
return {
redirect: {
destination: "/login",
permanent: false,
},
};
const { id: documentId } = context.query;
try {
const document: PrismaDocument = await getDocument(+documentId, context.req, context.res);
return {
props: {
document: JSON.parse(JSON.stringify({ ...document, document: "" })),
},
};
} catch (error) {
return {
notFound: true,
};
}
}
DocumentsDetailPage.getLayout = function getLayout(page: ReactElement) {
return {page};
};
export default DocumentsDetailPage;