import { useState, useEffect } from 'react' import { getEvents, deleteEvent, getEventStats } from '../api/api' import './EventList.css' const he = { myEvents: 'האירועים שלי', newEvent: '+ אירוע חדש', noEvents: 'אין לך אירועים עדיין.', createFirstEvent: 'צור את האירוע הראשון', manage: 'ניהול', deleteEvent: 'מחוק אירוע', sure: 'האם אתה בטוח שברצונך למחוק אירוע זה? פעולה זו לא ניתן לבטל.', guests: 'אורחים', confirmed: 'אישרו', rate: 'אחוז אישור', loadingEvents: 'טוען אירועים...', failedLoadEvents: 'נכשל בטעינת אירועים', failedDeleteEvent: 'נכשל במחיקת אירוע' } function EventList({ onEventSelect, onCreateEvent, onManageTemplates }) { const [events, setEvents] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState('') const [stats, setStats] = useState({}) const [refreshTrigger, setRefreshTrigger] = useState(0) useEffect(() => { loadEvents() // Set up page visibility listener to refresh when returning to this page const handleVisibilityChange = () => { if (!document.hidden) { loadEvents() } } document.addEventListener('visibilitychange', handleVisibilityChange) return () => document.removeEventListener('visibilitychange', handleVisibilityChange) }, [refreshTrigger]) const loadEvents = async () => { try { setLoading(true) const data = await getEvents() setEvents(data) // Load stats for each event const statsData = {} for (const event of data) { try { statsData[event.id] = await getEventStats(event.id) } catch (err) { console.error(`Failed to load stats for event ${event.id}:`, err) } } setStats(statsData) setError('') } catch (err) { setError(he.failedLoadEvents) console.error(err) } finally { setLoading(false) } } const handleDelete = async (eventId, e) => { e.stopPropagation() if (!window.confirm(he.sure)) { return } try { await deleteEvent(eventId) setEvents(events.filter(e => e.id !== eventId)) } catch (err) { setError(he.failedDeleteEvent) console.error(err) } } const formatDate = (dateString) => { if (!dateString) return 'לא קבוע תאריך' const date = new Date(dateString) return date.toLocaleDateString('he-IL', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }) } if (loading) { return
{he.noEvents}
📍 {event.location}
)}📅 {formatDate(event.date)}