import { useState } from 'react' const STORAGE_KEY = 'settings_exam_date' function getDaysUntil(dateStr: string): number { const today = new Date() today.setHours(0, 0, 0, 0) const target = new Date(dateStr) target.setHours(0, 0, 0, 0) return Math.ceil((target.getTime() - today.getTime()) / (1000 * 60 * 60 * 24)) } function formatVi(dateStr: string): string { const d = new Date(dateStr) return d.toLocaleDateString('vi-VN', { day: 'numeric', month: 'long', year: 'numeric' }) } export function ExamDateCard() { const [examDate, setExamDate] = useState(() => localStorage.getItem(STORAGE_KEY) ?? '') const [editing, setEditing] = useState(false) const [input, setInput] = useState(examDate) function save() { if (!input) return setExamDate(input) localStorage.setItem(STORAGE_KEY, input) setEditing(false) } const days = examDate ? getDaysUntil(examDate) : null return (

calendar_month Ngày thi TOEIC

{examDate && days !== null ? ( <>

Đếm ngược kỳ thi

{days > 0 ? `Còn ${days} ngày` : days === 0 ? 'Hôm nay!' : 'Đã qua'}

event {formatVi(examDate)}
) : (
event_upcoming

Chưa đặt ngày thi

)} {editing || !examDate ? (
setInput(e.target.value)} min={new Date().toISOString().split('T')[0]} className="flex-1 border border-slate-200 rounded-lg px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-blue-200" /> {editing && ( )}
) : null}
) }