import { ReactElement } from "react"; import Layout from "../../../components/layout"; import { NextPageWithLayout } from "../../_app"; import { useRouter } from "next/router"; import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib"; import { getUserFromToken } from "@documenso/lib/server"; import Link from "next/link"; import { DocumentStatus } from "@prisma/client"; import { InformationCircleIcon, PaperAirplaneIcon, UserPlusIcon, UsersIcon, } from "@heroicons/react/24/outline"; import { getDocument } from "@documenso/lib/query"; import { Document as PrismaDocument } from "@prisma/client"; import { Button, Breadcrumb } from "@documenso/ui"; import PDFEditor from "../../../components/editor/pdf-editor"; const DocumentsDetailPage: NextPageWithLayout = (props: any) => { const router = useRouter(); return (

{props.document.title}

); }; function formatDocumentStatus(status: DocumentStatus) { switch (status) { case DocumentStatus.DRAFT: return "Draft"; case DocumentStatus.PENDING: return "Pending"; case DocumentStatus.COMPLETED: return "Completed"; } } export async function getServerSideProps(context: any) { const user = await getUserFromToken(context.req, context.res); if (!user) return; const { id: documentId } = context.query; try { const document: PrismaDocument = await getDocument( +documentId, context.req, context.res ); // todo optimize querys // todo no intersection groups return { props: { document: document, }, }; } catch (error) { return { notFound: true, }; } } DocumentsDetailPage.getLayout = function getLayout(page: ReactElement) { return {page}; }; export default DocumentsDetailPage;