import { Trans } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { match } from 'ts-pattern'; import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; import { RecipientRole } from '@documenso/prisma/client'; import { Button, Section, Text } from '../components'; import { TemplateDocumentImage } from './template-document-image'; export interface TemplateDocumentInviteProps { inviterName: string; inviterEmail: string; documentName: string; signDocumentLink: string; assetBaseUrl: string; role: RecipientRole; selfSigner: boolean; isTeamInvite: boolean; teamName?: string; } export const TemplateDocumentInvite = ({ inviterName, documentName, signDocumentLink, assetBaseUrl, role, selfSigner, isTeamInvite, teamName, }: TemplateDocumentInviteProps) => { const { _ } = useLingui(); const { actionVerb } = RECIPIENT_ROLES_DESCRIPTION[role]; return ( <>
{selfSigner ? ( Please {_(actionVerb).toLowerCase()} your document
"{documentName}"
) : isTeamInvite ? ( {inviterName} on behalf of {teamName} has invited you to {_(actionVerb).toLowerCase()}
"{documentName}"
) : ( {inviterName} has invited you to {_(actionVerb).toLowerCase()}
"{documentName}"
)}
{match(role) .with(RecipientRole.SIGNER, () => Continue by signing the document.) .with(RecipientRole.VIEWER, () => Continue by viewing the document.) .with(RecipientRole.APPROVER, () => Continue by approving the document.) .with(RecipientRole.CC, () => '') .exhaustive()}
); }; export default TemplateDocumentInvite;