import { useMemo } from 'react'; import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import type { Document, Recipient, User } from '@prisma/client'; import { DateTime } from 'luxon'; import { useIsMounted } from '@documenso/lib/client-only/hooks/use-is-mounted'; export type DocumentPageViewInformationProps = { userId: number; document: Document & { user: Pick; recipients: Recipient[]; }; }; export const DocumentPageViewInformation = ({ document, userId, }: DocumentPageViewInformationProps) => { const isMounted = useIsMounted(); const { _, i18n } = useLingui(); const documentInformation = useMemo(() => { return [ { description: msg`Uploaded by`, value: userId === document.userId ? _(msg`You`) : (document.user.name ?? document.user.email), }, { description: msg`Created`, value: DateTime.fromJSDate(document.createdAt) .setLocale(i18n.locales?.[0] || i18n.locale) .toFormat('MMMM d, yyyy'), }, { description: msg`Last modified`, value: DateTime.fromJSDate(document.updatedAt) .setLocale(i18n.locales?.[0] || i18n.locale) .toRelative(), }, ]; // eslint-disable-next-line react-hooks/exhaustive-deps }, [isMounted, document, userId]); return (

Information

); };