import * as React from "react"; import { Document } from "@server/models"; import BaseEmail, { EmailProps } from "./BaseEmail"; import Body from "./components/Body"; import Button from "./components/Button"; import EmailTemplate from "./components/EmailLayout"; import Header from "./components/Header"; import Heading from "./components/Heading"; type InputProps = EmailProps & { documentId: string; actorName: string; teamUrl: string; }; type BeforeSend = { document: Document; }; type Props = InputProps & BeforeSend; /** * Email sent to a user when someone mentions them in a document. */ export default class DocumentMentionedEmail extends BaseEmail< InputProps, BeforeSend > { protected async beforeSend({ documentId }: InputProps) { const document = await Document.unscoped().findByPk(documentId); if (!document) { return false; } return { document }; } protected subject({ document }: Props) { return `Mentioned you in “${document.title}”`; } protected preview({ actorName }: Props): string { return `${actorName} mentioned you`; } protected fromName({ actorName }: Props) { return actorName; } protected renderAsText({ actorName, teamUrl, document }: Props): string { return ` You were mentioned ${actorName} mentioned you in the document “${document.title}”. Open Document: ${teamUrl}${document.url} `; } protected render({ document, actorName, teamUrl }: Props) { const documentLink = `${teamUrl}${document.url}?ref=notification-email`; return (
You were mentioned

{actorName} mentioned you in the document{" "} {document.title}.

); } }