libs/email-builder/src/lib/components/RequestBrazeUpdateMessage.tsx (63 lines of code) (raw):

import { renderToStaticMarkup } from 'react-dom/server'; import type { NewsletterData } from '@newsletters-nx/newsletters-data-client'; import { emailContent, emailEndpoint, } from '@newsletters-nx/newsletters-data-client'; import type { MessageContent } from '../types'; import { MessageFormat } from './MessageFormat'; import { NewsletterPropertyTable } from './NewsletterPropertyTable'; interface Props { pageLink: string; newsletter: NewsletterData; } export const RequestBrazeUpdateMessage = ({ pageLink, newsletter }: Props) => { if (!newsletter.seriesTag) { throw new Error( `Newsletter "${newsletter.identityName}" does not have a seriesTag`, ); } return ( <MessageFormat title={ <> Please update the Braze campaign for newsletter " {newsletter.identityName}" </> } > <p> Please update the <strong>{newsletter.brazeNewsletterName}</strong>{' '} Braze campaign with the following values: </p> <NewsletterPropertyTable newsletter={newsletter} properties={[emailContent, emailEndpoint]} /> <p> <strong> Ensure that the plaintext editor version in Braze is checked and updated too. </strong> </p> <p> Once the Campaign has been updated, please visit{' '} <a href={pageLink}>this page on the newsletters tool</a> to confirm! </p> </MessageFormat> ); }; export const renderBrazeUpdateRequestMessage = ( props: Props, ): MessageContent => { const { pageLink, newsletter } = props; const subject = `Update Braze campaign for newsletter "${newsletter.identityName}"`; const text = `"${newsletter.name}" has been updated: ${pageLink}. Please update the Braze campaign.`; try { const html = renderToStaticMarkup(<RequestBrazeUpdateMessage {...props} />); return { html, text, subject }; } catch (e) { console.error(e); return { html: text, text, subject }; } };