Fix type safety and data consistency in events system
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
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:
@@ -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 = () => {
|
||||
|
||||
Reference in New Issue
Block a user