'use client'; import { Copy, Download, History, MoreHorizontal, Trash2, XCircle } from 'lucide-react'; import { getFile } from '@documenso/lib/universal/upload/get-file'; import { Document, DocumentStatus, User } from '@documenso/prisma/client'; import { DocumentWithData } from '@documenso/prisma/types/document-with-data'; import { trpc } from '@documenso/trpc/client'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from '@documenso/ui/primitives/dropdown-menu'; export type DataTableActionDropdownProps = { row: Document & { User: Pick; }; }; export const DataTableActionDropdown = ({ row }: DataTableActionDropdownProps) => { // const isRecipient = !!recipient; // const isDraft = row.status === DocumentStatus.DRAFT; // const isPending = row.status === DocumentStatus.PENDING; const isComplete = row.status === DocumentStatus.COMPLETED; // const isSigned = recipient?.signingStatus === SigningStatus.SIGNED; const onDownloadClick = async () => { let document: DocumentWithData | null = null; document = await trpc.document.getDocumentById.query({ id: row.id, }); const documentData = document?.documentData; if (!documentData) { return; } const documentBytes = await getFile(documentData); const blob = new Blob([documentBytes], { type: 'application/pdf', }); const link = window.document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = row.title || 'document.pdf'; link.click(); window.URL.revokeObjectURL(link.href); }; return ( Action Download Duplicate Void Delete Resend ); };