import { useEffect, useState } from 'react'; import { Trans } from '@lingui/react/macro'; import { type DocumentData, DocumentStatus, type EnvelopeItem } from '@prisma/client'; import { DownloadIcon } from 'lucide-react'; import { DateTime } from 'luxon'; import { EnvelopeRenderProvider, useCurrentEnvelopeRender, } from '@documenso/lib/client-only/providers/envelope-render-provider'; import { formatDocumentsPath } from '@documenso/lib/utils/teams'; import { trpc } from '@documenso/trpc/react'; import PDFViewerKonvaLazy from '@documenso/ui/components/pdf-viewer/pdf-viewer-konva-lazy'; import { Button } from '@documenso/ui/primitives/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@documenso/ui/primitives/dialog'; import { PDFViewer } from '@documenso/ui/primitives/pdf-viewer'; import { EnvelopeDownloadDialog } from '~/components/dialogs/envelope-download-dialog'; import { EnvelopeRendererFileSelector } from '../envelope-editor/envelope-file-selector'; import EnvelopeGenericPageRenderer from '../envelope-editor/envelope-generic-page-renderer'; export type DocumentCertificateQRViewProps = { documentId: number; title: string; internalVersion: number; envelopeItems: (EnvelopeItem & { documentData: DocumentData })[]; documentTeamUrl: string; recipientCount?: number; completedDate?: Date; token: string; }; export const DocumentCertificateQRView = ({ documentId, title, internalVersion, envelopeItems, documentTeamUrl, recipientCount = 0, completedDate, token, }: DocumentCertificateQRViewProps) => { const { data: documentViaUser } = trpc.document.get.useQuery({ documentId, }); const [isDialogOpen, setIsDialogOpen] = useState(() => !!documentViaUser); const formattedDate = completedDate ? DateTime.fromJSDate(completedDate).toLocaleString(DateTime.DATETIME_MED) : ''; useEffect(() => { if (documentViaUser) { setIsDialogOpen(true); } }, [documentViaUser]); return (
{/* Dialog for internal document link */} {documentViaUser && ( Document found in your account This document is available in your Documenso account. You can view more details, recipients, and audit logs there. )} {internalVersion === 2 ? ( ) : ( <>

{title}

{recipientCount} recipients

Completed on {formattedDate}

Download } />
)}
); }; type DocumentCertificateQrV2Props = { title: string; recipientCount: number; formattedDate: string; token: string; }; const DocumentCertificateQrV2 = ({ title, recipientCount, formattedDate, token, }: DocumentCertificateQrV2Props) => { const { currentEnvelopeItem, envelopeItems } = useCurrentEnvelopeRender(); return (

{title}

{recipientCount} recipients

Completed on {formattedDate}

Download } />
); };