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 { city?: string; country?: 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.city}, {data.country} 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: { city: "{{.Data.City}}", country: "{{.Data.Country}}", ipAddress: "{{.Data.IPAddress}}", device: "{{.Data.Device}}", dateTime: '{{.Data.DateTime.Format "January 2, 2006 at 3:04 PM MST"}}', }, }; NewSignInEmail.PreviewProps = { ...sharedPreviewProps, data: { city: "San Francisco", country: "USA", ipAddress: "127.0.0.1", device: "Chrome on macOS", dateTime: "2024-01-01 12:00 PM UTC", }, };