'use client'; import { useMemo } from 'react'; import { DateTime } from 'luxon'; import { useIsMounted } from '@documenso/lib/client-only/hooks/use-is-mounted'; import { useLocale } from '@documenso/lib/client-only/providers/locale'; import type { Document, Recipient, User } from '@documenso/prisma/client'; export type DocumentPageViewInformationProps = { userId: number; document: Document & { User: Pick; Recipient: Recipient[]; }; }; export const DocumentPageViewInformation = ({ document, userId, }: DocumentPageViewInformationProps) => { const isMounted = useIsMounted(); const { locale } = useLocale(); const documentInformation = useMemo(() => { let createdValue = DateTime.fromJSDate(document.createdAt).toFormat('MMMM d, yyyy'); let lastModifiedValue = DateTime.fromJSDate(document.updatedAt).toRelative(); if (!isMounted) { createdValue = DateTime.fromJSDate(document.createdAt) .setLocale(locale) .toFormat('MMMM d, yyyy'); lastModifiedValue = DateTime.fromJSDate(document.updatedAt).setLocale(locale).toRelative(); } return [ { description: 'Uploaded by', value: userId === document.userId ? 'You' : document.User.name ?? document.User.email, }, { description: 'Created', value: createdValue, }, { description: 'Last modified', value: lastModifiedValue, }, ]; }, [isMounted, document, locale, userId]); return (

Information

); };