import { Body, Button, Column, Container, Head, Heading, Html, Img, Link, Preview, Row, Section, Tailwind, Text, } from '@react-email/components'; import { EmailFooter } from './emailFooter'; import { SOURCEBOT_LOGO_LIGHT_LARGE_URL, SOURCEBOT_ARROW_IMAGE_URL, SOURCEBOT_PLACEHOLDER_AVATAR_URL } from './constants'; interface JoinRequestSubmittedEmailProps { baseUrl: string; requestor: { email: string; name?: string; avatarUrl?: string; }, orgName: string; orgDomain: string; orgImageUrl?: string; } export const JoinRequestSubmittedEmail = ({ baseUrl, requestor, orgName, orgDomain, orgImageUrl, }: JoinRequestSubmittedEmailProps) => { const previewText = `${requestor.name ?? requestor.email} has requested to join ${orgName} on Sourcebot`; const reviewLink = `${baseUrl}/${encodeURIComponent(orgDomain)}/settings/members`; return ( {previewText}
Sourcebot Logo
New Join Request for {orgName} Hello, has requested to join your organization {orgName} on Sourcebot.
Requestor avatar requesting to join Organization avatar
or copy and paste this URL into your browser:{' '} {reviewLink}
); }; const RequestorInfo = ({ email, name }: { email: string, name?: string }) => { const emailElement = {email}; if (name) { return {name} ({emailElement}); } return emailElement; } JoinRequestSubmittedEmail.PreviewProps = { baseUrl: 'http://localhost:3000', requestor: { name: 'Alan Turing', email: 'alan.turing@example.com', avatarUrl: `http://localhost:3000/placeholder_avatar.png`, }, orgName: 'Enigma', orgDomain: '~', orgImageUrl: `http://localhost:3000/placeholder_avatar.png`, } satisfies JoinRequestSubmittedEmailProps; export default JoinRequestSubmittedEmail;