import * as React from "react"; import { UserRole } from "@shared/types"; import env from "@server/env"; import BaseEmail, { EmailProps } from "./BaseEmail"; import Body from "./components/Body"; import Button from "./components/Button"; import EmailTemplate from "./components/EmailLayout"; import EmptySpace from "./components/EmptySpace"; import Footer from "./components/Footer"; import Header from "./components/Header"; import Heading from "./components/Heading"; type Props = EmailProps & { role: UserRole; teamUrl: string; }; type BeforeSend = Record; /** * Email sent to a user when their account has just been created, or they signed * in for the first time from an invite. */ export default class WelcomeEmail extends BaseEmail { protected subject() { return `Welcome to ${env.APP_NAME}`; } protected async beforeSend(props: Props) { if (props.role === UserRole.Guest) { return false; } return {}; } protected preview() { return `${env.APP_NAME} is a place for your team to build and share knowledge.`; } protected renderAsText({ teamUrl }: Props) { return ` Welcome to ${env.APP_NAME}! ${env.APP_NAME} is a place for your team to build and share knowledge. To get started, head to the home screen and try creating a collection to help document your processes, create playbooks, or plan your team's work. Or, learn more about everything Outline can do in the guide: https://docs.getoutline.com/s/guide ${teamUrl}/home `; } protected render({ teamUrl }: Props) { const welcomeLink = `${teamUrl}/home?ref=welcome-email`; return (
Welcome to {env.APP_NAME}!

{env.APP_NAME} is a place for your team to build and share knowledge.

To get started, head to the home screen and try creating a collection to help document your processes, create playbooks, or plan your teams work.

Or, learn more about everything Outline can do in{" "} the guide.