import * as React from 'react'
import { Body, Container, Head, Html, Preview, Section, Text, Link } from '@react-email/components'
export type EnforcementDeadlineEmailProps = {
daysRemaining: number | null
deadlineIsoDate: string | null
setupUrl: string
}
export function EnforcementDeadlineEmail({
daysRemaining,
deadlineIsoDate,
setupUrl,
}: EnforcementDeadlineEmailProps) {
const hasDeadline = typeof daysRemaining === 'number' && daysRemaining > 0 && typeof deadlineIsoDate === 'string'
const isOverdue = !hasDeadline && typeof deadlineIsoDate === 'string'
const dayLabel = daysRemaining === 1 ? 'day' : 'days'
const previewText = hasDeadline
? `MFA enrollment required in ${daysRemaining} ${dayLabel}`
: isOverdue
? 'MFA enrollment deadline has passed'
: 'MFA enrollment required immediately'
return (
MFA enforcement reminder
{hasDeadline ? (
<>
Your organization requires MFA enrollment. You have {daysRemaining} {dayLabel} left
to complete setup.
Deadline: {deadlineIsoDate}
Open Security & MFA settings and enroll at least one MFA method
before the deadline.
Accounts without MFA after the deadline may lose access until enrollment is completed.
>
) : isOverdue ? (
<>
Your MFA enrollment deadline has passed. Set up MFA immediately to keep account access.
Previous deadline: {deadlineIsoDate}
Open Security & MFA settings and enroll at least one MFA method now.
>
) : (
<>
Your organization requires MFA enrollment with no grace period. Set up MFA immediately to keep account
access.
Open Security & MFA settings and enroll at least one MFA method now.
>
)}
)
}
const body: React.CSSProperties = { backgroundColor: '#f9fafb', margin: 0, padding: '24px 0' }
const container: React.CSSProperties = {
backgroundColor: '#ffffff',
borderRadius: 12,
padding: 24,
margin: '0 auto',
maxWidth: 520,
boxShadow: '0 1px 4px rgba(0,0,0,0.06)',
}
const title: React.CSSProperties = { fontSize: 20, fontWeight: 600, color: '#111827', margin: '0 0 12px' }
const paragraph: React.CSSProperties = { fontSize: 14, color: '#4b5563', lineHeight: '20px', margin: '0 0 12px' }
const hint: React.CSSProperties = { fontSize: 12, color: '#6b7280', marginTop: 16 }
export default EnforcementDeadlineEmail