import * as React from "react"; import { Body, Button, Container, Head, Heading, Hr, Html, Img, Preview, Section, Tailwind, Text, } from "@react-email/components"; interface MembershipInvitationTemplateProps { invitedByUsername: string; invitedByUserEmail: string; orgName: string; receiverEmail: string; inviteLink: string; userExists: boolean; emailFromAddress: string; langfuseCloudRegion?: string; } export const MembershipInvitationTemplate = ({ invitedByUsername, invitedByUserEmail, orgName, receiverEmail, inviteLink, userExists, emailFromAddress, langfuseCloudRegion, }: MembershipInvitationTemplateProps) => { const previewText = `Join ${invitedByUsername} on Langfuse`; return ( {previewText}
Langfuse
Join {orgName} on Langfuse Hello, {invitedByUsername} ( {invitedByUserEmail} ) has invited you to join the {orgName}{" "} organization on {langfuseCloudRegion ? ` Langfuse (${langfuseCloudRegion} data region)` : " Langfuse"} .
{/* Note: inviteLink always refers to a root langfuse url and is not vulnerable to hyperlink injection attacks */} {userExists ? "(sign in with your existing account)" : "(you need to create an account with this email address)"}
or copy and paste this URL into your browser:{" "} {inviteLink}
This invitation was intended for{" "} {receiverEmail}. This invite was sent from{" "} {emailFromAddress}. If you were not expecting this invitation, you can ignore this email.
); }; export default MembershipInvitationTemplate;