import { Column, Heading, Row, Text } from "@react-email/components"; import { BaseTemplate } from "../components/base-template"; import CardHeader from "../components/card-header"; import { sharedPreviewProps, sharedTemplateProps } from "../props"; interface SignInData { location: string; ipAddress: string; device: string; dateTime: string; } interface NewSignInEmailProps { logoURL: string; appName: string; data: SignInData; } export const NewSignInEmail = ({ logoURL, appName, data, }: NewSignInEmailProps) => ( Your {appName} account was recently accessed from a new IP address or browser. If you recognize this activity, no further action is required. Details Approximate Location {data.location} IP Address {data.ipAddress} Device {data.device} Sign-In Time {data.dateTime} ); export default NewSignInEmail; const detailsBoxStyle = { width: "225px", }; const detailsLabelStyle = { margin: 0, fontSize: "12px", color: "gray", }; const detailsBoxValueStyle = { margin: 0, }; NewSignInEmail.TemplateProps = { ...sharedTemplateProps, data: { location: "{{if and .Data.City .Data.Country}}{{.Data.City}}, {{.Data.Country}}{{else if .Data.Country}}{{.Data.Country}}{{else}}Unknown{{end}}", ipAddress: "{{.Data.IPAddress}}", device: "{{.Data.Device}}", dateTime: '{{.Data.DateTime.Format "January 2, 2006 at 3:04 PM MST"}}', }, }; NewSignInEmail.PreviewProps = { ...sharedPreviewProps, data: { location: "San Francisco, USA", ipAddress: "127.0.0.1", device: "Chrome on macOS", dateTime: "2024-01-01 12:00 PM UTC", }, };