import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { RECIPIENT_ROLES_DESCRIPTION } from '@documenso/lib/constants/recipient-roles'; import type { RecipientRole } from '@documenso/prisma/client'; import { Body, Container, Head, Hr, Html, Img, Link, Preview, Section, Text } from '../components'; import { useBranding } from '../providers/branding'; import type { TemplateDocumentInviteProps } from '../template-components/template-document-invite'; import { TemplateDocumentInvite } from '../template-components/template-document-invite'; import { TemplateFooter } from '../template-components/template-footer'; export type DocumentInviteEmailTemplateProps = Partial & { customBody?: string; role: RecipientRole; selfSigner?: boolean; isTeamInvite?: boolean; teamName?: string; teamEmail?: string; includeSenderDetails?: boolean; }; export const DocumentInviteEmailTemplate = ({ inviterName = 'Lucas Smith', inviterEmail = 'lucas@documenso.com', documentName = 'Open Source Pledge.pdf', signDocumentLink = 'https://documenso.com', assetBaseUrl = 'http://localhost:3002', customBody, role, selfSigner = false, isTeamInvite = false, teamName = '', includeSenderDetails, }: DocumentInviteEmailTemplateProps) => { const { _ } = useLingui(); const branding = useBranding(); const action = _(RECIPIENT_ROLES_DESCRIPTION[role].actionVerb).toLowerCase(); let previewText = msg`${inviterName} has invited you to ${action} ${documentName}`; if (isTeamInvite) { previewText = includeSenderDetails ? msg`${inviterName} on behalf of "${teamName}" has invited you to ${action} ${documentName}` : msg`${teamName} has invited you to ${action} ${documentName}`; } if (selfSigner) { previewText = msg`Please ${action} your document ${documentName}`; } const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); }; return ( {_(previewText)}
{branding.brandingEnabled && branding.brandingLogo ? ( Branding Logo ) : ( Documenso Logo )}
{!isTeamInvite && ( {inviterName}{' '} ({inviterEmail}) )} {customBody ? (
{customBody}
) : ( {inviterName} has invited you to {action} the document "{documentName}". )}

); }; export default DocumentInviteEmailTemplate;