import { differenceInCalendarDays, format } from 'date-fns'; import { useNavigate } from 'react-router-dom'; import { Star } from 'lucide-react'; interface CountdownWidgetProps { events: Array<{ id: number; title: string; start_datetime: string; }>; } export default function CountdownWidget({ events }: CountdownWidgetProps) { const navigate = useNavigate(); const visible = events.filter((e) => differenceInCalendarDays(new Date(e.start_datetime), new Date()) >= 0); if (visible.length === 0) return null; return (
{visible.map((event) => { const days = differenceInCalendarDays(new Date(event.start_datetime), new Date()); const label = days === 0 ? 'Today' : days === 1 ? '1 day' : `${days} days`; const dateStr = format(new Date(event.start_datetime), 'yyyy-MM-dd'); return (
navigate('/calendar', { state: { date: dateStr, view: 'timeGridDay', eventId: event.id } })} className="flex items-center gap-2 cursor-pointer hover:bg-amber-500/10 rounded px-1 -mx-1 transition-colors duration-150" > {label} {days > 0 ? ' until ' : ' — '} {event.title}
); })}
); }