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 (
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