import React from 'react'; import { Calendar, MapPin, ArrowRight, Clock } from 'lucide-react'; import Link from 'next/link'; import { sanitizeHTML } from '../lib/sanitize'; interface Event { id: string; slug?: string | null; title: string; description: string; date: Date | string; location: string; thumbnailUrl: string; link?: string | null; } interface EventTimelineProps { events: Event[]; } const EventTimeline = ({ events }: EventTimelineProps) => { // Sort events by date descending const sortedEvents = [...events].sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime() ); return (
{/* Vertical Line */}
{sortedEvents.map((event, index) => { const eventDate = new Date(event.date); const isEven = index % 2 === 0; const isPast = eventDate < new Date(); return (
{/* Marker */}
{/* Content Card */}
{/* Image with overlay gradient */}
{event.title}
{eventDate.toLocaleDateString('fr-FR', { day: 'numeric', month: 'short' })}
{/* Event Details */}
{eventDate.toLocaleDateString('fr-FR', { year: 'numeric' })} {isPast && PASSÉ}

{event.title}

{event.location}
Voir les détails {/* Decorative element */}
{/* Hover glow effect */} {!isPast && (
)}
{/* Date Column (Desktop Only) */}
{eventDate.toLocaleDateString('fr-FR', { month: 'long' })} {eventDate.getFullYear()}
); })}
{/* Decorative End Dot */}
); }; export default EventTimeline;