Files
opencode/packages/console/mail/emails/templates/InviteEmail.tsx
2025-11-06 13:03:12 -05:00

100 lines
2.7 KiB
TypeScript

// @ts-nocheck
import React from "react"
import {
Img,
Row,
Html,
Link,
Body,
Head,
Button,
Column,
Preview,
Section,
Container,
} from "@jsx-email/all"
import { Text, Fonts, Title, A, Span } from "../components"
import {
unit,
body,
frame,
headingText,
container,
contentText,
button,
contentHighlightText,
linkText,
buttonText,
} from "../styles"
const CONSOLE_URL = "https://opencode.ai/"
interface InviteEmailProps {
inviter: string
workspaceID: string
workspaceName: string
assetsUrl: string
}
export const InviteEmail = ({
inviter = "test@anoma.ly",
workspaceID = "wrk_01K6XFY7V53T8XN0A7X8G9BTN3",
workspaceName = "anomaly",
assetsUrl = `${CONSOLE_URL}email`,
}: InviteEmailProps) => {
const messagePlain = `${inviter} invited you to join the ${workspaceName} workspace.`
const url = `${CONSOLE_URL}workspace/${workspaceID}`
return (
<Html lang="en">
<Head>
<Title>{`OpenCode — ${messagePlain}`}</Title>
</Head>
<Fonts assetsUrl={assetsUrl} />
<Preview>{messagePlain}</Preview>
<Body style={body} id={Math.random().toString()}>
<Container style={container}>
<Section style={frame}>
<Row>
<Column>
<A href={`${CONSOLE_URL}zen`}>
<Img height="32" alt="OpenCode Logo" src={`${assetsUrl}/logo.png`} />
</A>
</Column>
</Row>
<Section style={{ padding: `${unit * 2}px 0 0 0` }}>
<Text style={headingText}>Join your team's OpenCode workspace</Text>
<Text style={contentText}>
You have been invited by <Span style={contentHighlightText}>{inviter}</Span> to join
the <Span style={contentHighlightText}>{workspaceName}</Span> workspace on OpenCode.
</Text>
</Section>
<Section style={{ padding: `${unit}px 0 0 0` }}>
<Button style={button} href={url}>
<Text style={buttonText}>
Join workspace
<Img
width="24"
height="24"
src={`${assetsUrl}/right-arrow.png`}
alt="Arrow right"
/>
</Text>
</Button>
</Section>
<Section style={{ padding: `${unit}px 0 0 0` }}>
<Text style={contentText}>Button not working? Copy the following link...</Text>
<Link href={url}>
<Text style={linkText}>{url}</Text>
</Link>
</Section>
</Section>
</Container>
</Body>
</Html>
)
}
export default InviteEmail