import React from 'react';
import { Calendar, MapPin, ArrowRight, Clock } from 'lucide-react';
import Link from 'next/link';
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 */}
{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;