import React from 'react'; import { redirect } from 'next/navigation'; import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; import { getEntireDocument } from '@documenso/lib/server-only/admin/get-entire-document'; import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt'; import { findDocumentAuditLogs } from '@documenso/lib/server-only/document/find-document-audit-logs'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { Logo } from '~/components/branding/logo'; import { LocaleDate } from '~/components/formatter/locale-date'; import { AuditLogDataTable } from './data-table'; type AuditLogProps = { searchParams: { d: string; }; }; export default async function AuditLog({ searchParams }: AuditLogProps) { const { d } = searchParams; if (typeof d !== 'string' || !d) { return redirect('/'); } const rawDocumentId = decryptSecondaryData(d); if (!rawDocumentId || isNaN(Number(rawDocumentId))) { return redirect('/'); } const documentId = Number(rawDocumentId); const document = await getEntireDocument({ id: documentId, }).catch(() => null); if (!document) { return redirect('/'); } const { data: auditLogs } = await findDocumentAuditLogs({ documentId: documentId, userId: document.userId, perPage: 100_000, }); return (

Version History

Document ID {document.id}

Enclosed Document {document.title}

Status {document.deletedAt ? 'DELETED' : document.status}

Owner {document.User.name} ({document.User.email})

Created At

Last Updated

Time Zone {document.documentMeta?.timezone ?? 'N/A'}

Recipients

    {document.Recipient.map((recipient) => (
  • [{RECIPIENT_ROLES_DESCRIPTION[recipient.role].roleName}] {' '} {recipient.name} ({recipient.email})
  • ))}
); }