import { ShieldCheck, ShieldX } from 'lucide-preact'; import ConfirmDialog from '@/components/ConfirmDialog'; import { t } from '@/lib/i18n'; import type { AuthRequest } from '@/lib/types'; interface AuthRequestApprovalDialogProps { open: boolean; authRequest: AuthRequest | null; submitting: boolean; onApprove: () => void; onDeny: () => void; onClose: () => void; } function formatDateTime(value: string | null | undefined): string { if (!value) return t('txt_dash'); const parsed = new Date(value); if (Number.isNaN(parsed.getTime())) return value; return parsed.toLocaleString(); } export default function AuthRequestApprovalDialog(props: AuthRequestApprovalDialogProps) { const authRequest = props.authRequest; return ( {t('txt_deny')} )} > {authRequest && (
{authRequest.requestDeviceType || t('txt_unknown_device')} {authRequest.requestDeviceIdentifier}
{t('txt_created')} {formatDateTime(authRequest.creationDate)}
{authRequest.requestIpAddress && (
{t('txt_ip_address')} {authRequest.requestIpAddress}
)}
{t('txt_fingerprint_phrase')} {authRequest.fingerprintPhrase || t('txt_dash')}
)}
); }