summaryrefslogtreecommitdiffhomepage
path: root/packages/console/mail
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-10-10 21:24:05 -0400
committerFrank <[email protected]>2025-10-10 21:24:05 -0400
commit2d35b783335cae9898ec80362934bab892fcf973 (patch)
tree146ba002b1bd58044bcac15c5ced977c086a9bd1 /packages/console/mail
parent07645e070525e627cda5cd4ad7f001f70cbc57dc (diff)
parentc7dfbbeed0e7b5a7421b4b0d8c115a24f5ba7534 (diff)
downloadopencode-2d35b783335cae9898ec80362934bab892fcf973.tar.gz
opencode-2d35b783335cae9898ec80362934bab892fcf973.zip
Merge branch 'console-workspaces' into dev
Diffstat (limited to 'packages/console/mail')
-rw-r--r--packages/console/mail/emails/components.tsx4
-rw-r--r--packages/console/mail/emails/templates/InviteEmail.tsx60
-rw-r--r--packages/console/mail/emails/templates/static/logo.pngbin0 -> 1726 bytes
3 files changed, 32 insertions, 32 deletions
diff --git a/packages/console/mail/emails/components.tsx b/packages/console/mail/emails/components.tsx
index d030b6cbf..ff845c8f4 100644
--- a/packages/console/mail/emails/components.tsx
+++ b/packages/console/mail/emails/components.tsx
@@ -31,6 +31,10 @@ export function A({ children, ...props }: AProps) {
return React.createElement("a", props, children)
}
+export function B({ children, ...props }: AProps) {
+ return React.createElement("b", props, children)
+}
+
export function Span({ children, ...props }: SpanProps) {
return React.createElement("span", props, children)
}
diff --git a/packages/console/mail/emails/templates/InviteEmail.tsx b/packages/console/mail/emails/templates/InviteEmail.tsx
index 978080a9c..5c9630224 100644
--- a/packages/console/mail/emails/templates/InviteEmail.tsx
+++ b/packages/console/mail/emails/templates/InviteEmail.tsx
@@ -1,7 +1,7 @@
// @ts-nocheck
import React from "react"
import { Img, Row, Html, Link, Body, Head, Button, Column, Preview, Section, Container } from "@jsx-email/all"
-import { Hr, Text, Fonts, SplitString, Title, A, Span } from "../components"
+import { Hr, Text, Fonts, SplitString, Title, A, Span, B } from "../components"
import {
unit,
body,
@@ -23,17 +23,24 @@ const CONSOLE_URL = "https://opencode.ai/"
const DOC_URL = "https://opencode.ai/docs/zen"
interface InviteEmailProps {
- workspace: string
+ inviter: string
+ workspaceID: string
+ workspaceName: string
assetsUrl: string
}
-export const InviteEmail = ({ workspace, assetsUrl = LOCAL_ASSETS_URL }: InviteEmailProps) => {
- const subject = `Join the ${workspace} workspace`
- const messagePlain = `You've been invited to join the ${workspace} workspace in the OpenCode Zen Console.`
- const url = `${CONSOLE_URL}workspace/${workspace}`
+export const InviteEmail = ({
+ inviter = "[email protected]",
+ workspaceID = "wrk_01K6XFY7V53T8XN0A7X8G9BTN3",
+ workspaceName = "anomaly",
+ assetsUrl = LOCAL_ASSETS_URL,
+}: InviteEmailProps) => {
+ const subject = `You were invited to the OpenCode Console`
+ const messagePlain = `${inviter} invited you to join the ${workspaceName} workspace (${workspaceID}).`
+ const url = `${CONSOLE_URL}workspace/${workspaceID}`
return (
<Html lang="en">
<Head>
- <Title>{`OpenCode Zen — ${messagePlain}`}</Title>
+ <Title>{`OpenCode — ${messagePlain}`}</Title>
</Head>
<Fonts assetsUrl={assetsUrl} />
<Preview>{messagePlain}</Preview>
@@ -42,15 +49,10 @@ export const InviteEmail = ({ workspace, assetsUrl = LOCAL_ASSETS_URL }: InviteE
<Section style={frame}>
<Row>
<Column>
- <A href={CONSOLE_URL}>
- <Img height="32" alt="OpenCode Zen Logo" src={`${assetsUrl}/zen-logo.png`} />
+ <A href={`${CONSOLE_URL}zen`}>
+ <Img height="32" alt="OpenCode Logo" src={`${assetsUrl}/logo.png`} />
</A>
</Column>
- <Column align="right">
- <Button style={buttonPrimary} href={url}>
- <Span style={code}>Join Workspace</Span>
- </Button>
- </Column>
</Row>
<Row style={headingHr}>
@@ -59,32 +61,26 @@ export const InviteEmail = ({ workspace, assetsUrl = LOCAL_ASSETS_URL }: InviteE
</Column>
</Row>
- <Section>
- <Text style={{ ...compactText, ...breadcrumb }}>
- <Span>OpenCode Zen</Span>
- <Span style={{ ...code, ...breadcrumbColonSeparator }}>:</Span>
- <Span>{workspace}</Span>
- </Text>
- <Text style={{ ...heading, ...compactText }}>
- <Link href={url}>
- <SplitString text={subject} split={40} />
- </Link>
- </Text>
- </Section>
<Section style={{ padding: `${unit}px 0 0 0` }}>
<Text style={{ ...compactText }}>
- You've been invited to join the{" "}
+ <B>{inviter}</B> invited you to join the{" "}
<Link style={medium} href={url}>
- {workspace}
+ <B>{workspaceName}</B>
</Link>{" "}
- workspace in the{" "}
- <Link style={medium} href={CONSOLE_URL}>
- OpenCode Zen Console
+ workspace ({workspaceID}) in the{" "}
+ <Link style={medium} href={`${CONSOLE_URL}zen`}>
+ OpenCode Console
</Link>
.
</Text>
</Section>
+ <Section style={{ padding: `${unit}px 0 0 0` }}>
+ <Button style={buttonPrimary} href={url}>
+ <Span style={code}>Join Workspace</Span>
+ </Button>
+ </Section>
+
<Row style={headingHr}>
<Column>
<Hr />
@@ -93,7 +89,7 @@ export const InviteEmail = ({ workspace, assetsUrl = LOCAL_ASSETS_URL }: InviteE
<Row>
<Column>
- <Link href={CONSOLE_URL} style={footerLink}>
+ <Link href={`${CONSOLE_URL}zen`} style={footerLink}>
Console
</Link>
</Column>
diff --git a/packages/console/mail/emails/templates/static/logo.png b/packages/console/mail/emails/templates/static/logo.png
new file mode 100644
index 000000000..1d4a39639
--- /dev/null
+++ b/packages/console/mail/emails/templates/static/logo.png
Binary files differ