import prisma from "@documenso/prisma"; import Head from "next/head"; import { NextPageWithLayout } from "../../_app"; import { ReadStatus } from "@prisma/client"; import PDFSigner from "../../../components/editor/pdf-signer"; import Logo from "../../../components/logo"; import Link from "next/link"; import { Button } from "@documenso/ui"; import { CheckBadgeIcon, ClockIcon } from "@heroicons/react/24/outline"; const SignPage: NextPageWithLayout = (props: any) => { return ( <>
This signing link is expired.
Please ask{" "} {props.document.User.name ? `${props.document.User.name}` : `the sender`}{" "} to resend it.
Want to send of your own?{" "} Create your own Account
> )} > ); }; export async function getServerSideProps(context: any) { const recipientToken: string = context.query["token"]; // todo redirect to sigend of all already signed await prisma.recipient.updateMany({ where: { token: recipientToken, }, data: { readStatus: ReadStatus.OPENED, }, }); const recipient = await prisma.recipient.findFirstOrThrow({ where: { token: recipientToken, }, include: { Document: { include: { User: true } }, }, }); const unsignedFields = await prisma.field.findMany({ where: { documentId: recipient.Document.id, recipientId: recipient.id, Signature: { is: null }, }, include: { Recipient: true, Signature: true, }, }); if (unsignedFields.length === 0) { return { redirect: { permanent: false, destination: `/documents/${recipient.Document.id}/signed`, }, }; } return { props: { document: JSON.parse(JSON.stringify(recipient.Document)), fields: JSON.parse(JSON.stringify(unsignedFields)), expired: recipient.expired ? new Date(recipient.expired) < new Date() : false, }, }; } export default SignPage;