diff --git a/src/components/dashboard/EventsSection/EventLoad.tsx b/src/components/dashboard/EventsSection/EventLoad.tsx index 79b2a10..3698a90 100644 --- a/src/components/dashboard/EventsSection/EventLoad.tsx +++ b/src/components/dashboard/EventsSection/EventLoad.tsx @@ -62,6 +62,19 @@ const EventLoad = () => { const [syncStatus, setSyncStatus] = useState<'idle' | 'syncing' | 'success' | 'error'>('idle'); const [errorMessage, setErrorMessage] = useState(null); const [refreshing, setRefreshing] = useState(false); + const [expandedDescriptions, setExpandedDescriptions] = useState>(new Set()); + + const toggleDescription = (eventId: string) => { + setExpandedDescriptions(prev => { + const newSet = new Set(prev); + if (newSet.has(eventId)) { + newSet.delete(eventId); + } else { + newSet.add(eventId); + } + return newSet; + }); + }; // Function to clear the events cache and force a fresh sync const refreshEvents = async () => { @@ -202,59 +215,90 @@ const EventLoad = () => { const endDate = new Date(event.end_date); const now = new Date(); const isPastEvent = endDate < now; + const isExpanded = expandedDescriptions.has(event.id); + const description = event.event_description || "No description available"; return (
-
-
-
-
-

{event.event_name}

-
-
{event.points_to_reward} pts
-
- {startDate.toLocaleDateString("en-US", { - weekday: "short", - month: "short", - day: "numeric", - })} - {" • "} - {startDate.toLocaleTimeString("en-US", { - hour: "numeric", - minute: "2-digit", - })} -
-
-
-
+
+ {/* Event Header */} +
+

{event.event_name}

+
{event.points_to_reward} pts
+
-
- {event.event_description || "No description available"} -
+ {/* Event Description */} +
+

+ {description} +

+ {description.length > 80 && ( + + )} +
-
- {event.files && event.files.length > 0 && ( - - )} - {isPastEvent && ( -
- - {hasAttended ? 'Attended' : 'Not Attended'} -
- )} -
- {event.location} -
+ {/* Event Details */} +
+
+ + + {startDate.toLocaleDateString("en-US", { + weekday: "short", + month: "short", + day: "numeric", + })} +
+
+ + + {startDate.toLocaleTimeString("en-US", { + hour: "numeric", + minute: "2-digit", + })} + +
+
+ + {event.location || "No location specified"} +
+
+ + {/* Action Buttons */} +
+ {event.files && event.files.length > 0 && ( + + )} + {isPastEvent && ( +
+ + {hasAttended ? 'Attended' : 'Not Attended'} +
+ )}