import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import Layout from '../components/layout/Layout'; import { eventsAPI } from '../services/api'; import { Calendar, MapPin, Users, Loader2, CheckCircle } from 'lucide-react'; const EventsPage = () => { const navigate = useNavigate(); const [events, setEvents] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { const fetchEvents = async () => { try { setLoading(true); const data = await eventsAPI.getAll(); setEvents(data); } catch (err) { setError('Failed to load events'); console.error('Error loading events:', err); } finally { setLoading(false); } }; fetchEvents(); }, []); const handleJoinEvent = (eventId) => { navigate(`/events/${eventId}/chat`); }; if (loading) { return (

Loading events...

); } if (error) { return (
{error}
); } return (

Choose an event

Join an event and start connecting with other dancers

{events.map((event) => (

{event.name}

{event.isJoined && ( Joined )}
{event.location}
{new Date(event.startDate).toLocaleDateString('en-US')} - {new Date(event.endDate).toLocaleDateString('en-US')}
{event.participantsCount} participants
{event.description && (

{event.description}

)}
))}
); }; export default EventsPage;