import React from 'react'; import { redirect } from 'next/navigation'; import { DateTime } from 'luxon'; import { APP_I18N_OPTIONS } from '@documenso/lib/constants/i18n'; import { RECIPIENT_ROLES_DESCRIPTION_ENG } 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 { 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 {DateTime.fromJSDate(document.createdAt) .setLocale(APP_I18N_OPTIONS.defaultLocale) .toFormat('yyyy-mm-dd hh:mm:ss a (ZZZZ)')}
Last Updated {DateTime.fromJSDate(document.updatedAt) .setLocale(APP_I18N_OPTIONS.defaultLocale) .toFormat('yyyy-mm-dd hh:mm:ss a (ZZZZ)')}
Time Zone {document.documentMeta?.timezone ?? 'N/A'}
Recipients