Fix type safety and data consistency in events system
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s

- Add proper TypeScript type annotations and assertions
- Handle string/number conversion for attendee counts consistently
- Improve null/undefined checks for events array
- Make event handlers async for better error handling
- Fix data type inconsistencies between components and API
This commit is contained in:
2025-08-12 17:23:42 +02:00
parent 70b77fbe9f
commit 072acf95eb
4 changed files with 45 additions and 22 deletions

View File

@@ -284,7 +284,10 @@ const totalEvents = computed(() => events.value.length);
const totalRSVPs = computed(() => {
return events.value.reduce((count, event) => {
return count + (event.current_attendees || 0);
const attendees = typeof event.current_attendees === 'string'
? parseInt(event.current_attendees) || 0
: event.current_attendees || 0;
return count + attendees;
}, 0);
});
@@ -332,7 +335,7 @@ const clearFilters = async () => {
};
const handleEventClick = (eventInfo: any) => {
selectedEvent.value = eventInfo.eventData || eventInfo.event || eventInfo;
selectedEvent.value = (eventInfo.eventData || eventInfo.event || eventInfo) as Event;
showDetailsDialog.value = true;
};
@@ -364,19 +367,30 @@ const handleDateRangeChange = async (start: string, end: string) => {
}
};
const handleEventCreated = (event: Event) => {
const handleEventCreated = async (event: Event) => {
showSuccessMessage('Event created successfully!');
refreshCalendar();
await refreshCalendar();
};
const handleRSVPUpdated = (event: Event) => {
const handleRSVPUpdated = async (event: Event) => {
showSuccessMessage('RSVP updated successfully!');
refreshCalendar();
await refreshCalendar();
};
const refreshCalendar = () => {
calendarRef.value?.refetchEvents?.();
clearCache();
const refreshCalendar = async () => {
try {
// Clear cache and force refresh events data
clearCache();
await fetchEvents({ force: true });
// Also refresh the calendar component
calendarRef.value?.refetchEvents?.();
console.log('Calendar refreshed successfully');
} catch (error) {
console.error('Error refreshing calendar:', error);
showErrorMessage('Failed to refresh calendar');
}
};
const exportCalendar = () => {