diff --git a/packages/email/template-components/template-document-invite.tsx b/packages/email/template-components/template-document-invite.tsx index b958e9029..b99b1a1b4 100644 --- a/packages/email/template-components/template-document-invite.tsx +++ b/packages/email/template-components/template-document-invite.tsx @@ -11,6 +11,7 @@ export interface TemplateDocumentInviteProps { signDocumentLink: string; assetBaseUrl: string; role: RecipientRole; + selfSigner: boolean; } export const TemplateDocumentInvite = ({ @@ -19,6 +20,7 @@ export const TemplateDocumentInvite = ({ signDocumentLink, assetBaseUrl, role, + selfSigner, }: TemplateDocumentInviteProps) => { const { actionVerb, progressiveVerb } = RECIPIENT_ROLES_DESCRIPTION[role]; @@ -28,8 +30,19 @@ export const TemplateDocumentInvite = ({
- {inviterName} has invited you to {actionVerb.toLowerCase()} -
"{documentName}" + {selfSigner ? ( + <> + {`Please ${actionVerb.toLowerCase()} your document`} +
+ {`"${documentName}"`} + + ) : ( + <> + {`${inviterName} has invited you to ${actionVerb.toLowerCase()}`} +
+ {`"${documentName}"`} + + )}
diff --git a/packages/email/templates/document-invite.tsx b/packages/email/templates/document-invite.tsx index d3bceb872..52a40d804 100644 --- a/packages/email/templates/document-invite.tsx +++ b/packages/email/templates/document-invite.tsx @@ -22,6 +22,7 @@ import { TemplateFooter } from '../template-components/template-footer'; export type DocumentInviteEmailTemplateProps = Partial & { customBody?: string; role: RecipientRole; + selfSigner?: boolean; }; export const DocumentInviteEmailTemplate = ({ @@ -32,10 +33,13 @@ export const DocumentInviteEmailTemplate = ({ assetBaseUrl = 'http://localhost:3002', customBody, role, + selfSigner = false, }: DocumentInviteEmailTemplateProps) => { const action = RECIPIENT_ROLES_DESCRIPTION[role].actionVerb.toLowerCase(); - const previewText = `${inviterName} has invited you to ${action} ${documentName}`; + const previewText = selfSigner + ? `Please ${action} your document ${documentName}` + : `${inviterName} has invited you to ${action} ${documentName}`; const getAssetUrl = (path: string) => { return new URL(path, assetBaseUrl).toString(); @@ -71,6 +75,7 @@ export const DocumentInviteEmailTemplate = ({ signDocumentLink={signDocumentLink} assetBaseUrl={assetBaseUrl} role={role} + selfSigner={selfSigner} />
diff --git a/packages/lib/server-only/document/resend-document.tsx b/packages/lib/server-only/document/resend-document.tsx index ebf140007..500c5395a 100644 --- a/packages/lib/server-only/document/resend-document.tsx +++ b/packages/lib/server-only/document/resend-document.tsx @@ -88,6 +88,11 @@ export const resendDocument = async ({ const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role]; const { email, name } = recipient; + const selfSigner = email === user.email; + + const selfSignerCustomEmail = `You have initiated the document ${`"${document.title}"`} that requires you to ${RECIPIENT_ROLES_DESCRIPTION[ + recipient.role + ].actionVerb.toLowerCase()} it.`; const customEmailTemplate = { 'signer.name': name, @@ -104,12 +109,20 @@ export const resendDocument = async ({ inviterEmail: user.email, assetBaseUrl, signDocumentLink, - customBody: renderCustomEmailTemplate(customEmail?.message || '', customEmailTemplate), + customBody: renderCustomEmailTemplate( + selfSigner ? selfSignerCustomEmail : customEmail?.message || '', + customEmailTemplate, + ), role: recipient.role, + selfSigner, }); const { actionVerb } = RECIPIENT_ROLES_DESCRIPTION[recipient.role]; + const emailSubject = selfSigner + ? `Reminder: Please ${actionVerb.toLowerCase()} your document` + : `Reminder: Please ${actionVerb.toLowerCase()} this document`; + await prisma.$transaction( async (tx) => { await mailer.sendMail({ @@ -123,7 +136,7 @@ export const resendDocument = async ({ }, subject: customEmail?.subject ? renderCustomEmailTemplate(customEmail.subject, customEmailTemplate) - : `Please ${actionVerb.toLowerCase()} this document`, + : emailSubject, html: render(template), text: render(template, { plainText: true }), }); diff --git a/packages/lib/server-only/document/send-document.tsx b/packages/lib/server-only/document/send-document.tsx index acbcc499f..5bb7e2352 100644 --- a/packages/lib/server-only/document/send-document.tsx +++ b/packages/lib/server-only/document/send-document.tsx @@ -127,6 +127,11 @@ export const sendDocument = async ({ const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role]; const { email, name } = recipient; + const selfSigner = email === user.email; + + const selfSignerCustomEmail = `You have initiated the document ${`"${document.title}"`} that requires you to ${RECIPIENT_ROLES_DESCRIPTION[ + recipient.role + ].actionVerb.toLowerCase()} it.`; const customEmailTemplate = { 'signer.name': name, @@ -143,12 +148,20 @@ export const sendDocument = async ({ inviterEmail: user.email, assetBaseUrl, signDocumentLink, - customBody: renderCustomEmailTemplate(customEmail?.message || '', customEmailTemplate), + customBody: renderCustomEmailTemplate( + selfSigner ? selfSignerCustomEmail : customEmail?.message || '', + customEmailTemplate, + ), role: recipient.role, + selfSigner, }); const { actionVerb } = RECIPIENT_ROLES_DESCRIPTION[recipient.role]; + const emailSubject = selfSigner + ? `Please ${actionVerb.toLowerCase()} your document` + : `Please ${actionVerb.toLowerCase()} this document`; + await prisma.$transaction( async (tx) => { await mailer.sendMail({ @@ -162,7 +175,7 @@ export const sendDocument = async ({ }, subject: customEmail?.subject ? renderCustomEmailTemplate(customEmail.subject, customEmailTemplate) - : `Please ${actionVerb.toLowerCase()} this document`, + : emailSubject, html: render(template), text: render(template, { plainText: true }), });