diff --git a/src/batch/batch.ts b/src/batch/batch.ts index 1882917..340ca02 100644 --- a/src/batch/batch.ts +++ b/src/batch/batch.ts @@ -10,7 +10,10 @@ import type { } from './interfaces/create-batch-options.interface'; export class Batch { - private renderAsync?: (component: React.ReactElement) => Promise; + private renderAsync?: ( + component: React.ReactElement, + options?: { plainText?: boolean }, + ) => Promise; constructor(private readonly resend: Resend) {} async send( @@ -38,8 +41,13 @@ export class Batch { ); } } - - email.html = await this.renderAsync(email.react as React.ReactElement); + const reactElement = email.react as React.ReactElement; + email.html = await this.renderAsync(reactElement); + if (email.text === undefined) { + email.text = await this.renderAsync(reactElement, { + plainText: true, + }); + } email.react = undefined; } diff --git a/src/emails/emails.ts b/src/emails/emails.ts index 23c13b0..038d13d 100644 --- a/src/emails/emails.ts +++ b/src/emails/emails.ts @@ -22,7 +22,10 @@ import type { } from './interfaces/update-email-options.interface'; export class Emails { - private renderAsync?: (component: React.ReactElement) => Promise; + private renderAsync?: ( + component: React.ReactElement, + options?: { plainText?: boolean }, + ) => Promise; constructor(private readonly resend: Resend) {} async send( @@ -48,9 +51,13 @@ export class Emails { } } - payload.html = await this.renderAsync( - payload.react as React.ReactElement, - ); + const reactElement = payload.react as React.ReactElement; + payload.html = await this.renderAsync(reactElement); + if (payload.text === undefined) { + payload.text = await this.renderAsync(reactElement, { + plainText: true, + }); + } } const data = await this.resend.post(