diff --git a/components/EventDetailsDialog.vue b/components/EventDetailsDialog.vue index 84752fd..15a043e 100644 --- a/components/EventDetailsDialog.vue +++ b/components/EventDetailsDialog.vue @@ -452,7 +452,11 @@ const submitRSVP = async (status: 'confirmed' | 'declined') => { rsvpLoading.value = true; try { - await rsvpToEvent(props.event.id, { + // Use the database ID for RSVP API calls + const databaseId = (props.event as any).extendedProps?.database_id || props.event.id; + console.log('[EventDetailsDialog] Using database ID for RSVP:', databaseId, 'from event:', props.event); + + await rsvpToEvent(databaseId, { member_id: '', // This will be filled by the composable rsvp_status: status, rsvp_notes: rsvpNotes.value diff --git a/components/MemberCard.vue b/components/MemberCard.vue index 559cc39..941c270 100644 --- a/components/MemberCard.vue +++ b/components/MemberCard.vue @@ -60,20 +60,20 @@ - -
+ +
- + {{ memberInitials }}
-

+

{{ member.FullName || `${member.first_name} ${member.last_name}` }}

@@ -92,14 +92,14 @@
- + {{ nationalitiesArray.map(n => getCountryName(n)).join(', ') }}
@@ -107,83 +107,81 @@
- -
-
- mdi-email - {{ member.email || 'No email' }} + +
+
+ mdi-email + {{ member.email }}
-
- mdi-phone - {{ member.FormattedPhone || member.phone }} +
+ mdi-phone + {{ member.FormattedPhone || member.phone }}
-
- mdi-calendar - Member since {{ formatDate(member.member_since) }} +
+ mdi-calendar + Since {{ formatDate(member.member_since) }}
- -
- - {{ duesIcon }} - {{ duesText }} - + +
+ +
+ + {{ duesIcon }} + {{ duesText }} + + + + + + +
- - - mdi-clock-alert - Due {{ formatDate(nextDuesDate) }} - - - - mdi-calendar-alert - {{ isOverdue ? 'Overdue' : `Due ${formatDate(member.payment_due_date)}` }} - -
- - -
- - mdi-account-check - Portal Account Active - - - - mdi-account-off - No Portal Account - + +
+ + mdi-clock-alert + Due {{ formatDate(nextDuesDate) }} + + + + mdi-calendar-alert + Overdue + +
@@ -481,7 +479,7 @@ const formatDate = (dateString: string): string => { } .member-info { - min-height: 80px; + min-height: 60px; } .info-row { diff --git a/composables/useEvents.ts b/composables/useEvents.ts index 8ac3c6c..cd3ab52 100644 --- a/composables/useEvents.ts +++ b/composables/useEvents.ts @@ -123,8 +123,13 @@ export const useEvents = () => { }); if (response.success) { - // Update local event data - const eventIndex = events.value.findIndex(e => e.id === eventId); + // Update local event data - match by database ID (stored in Id field or as fallback) + const eventIndex = events.value.findIndex(e => + (e as any).Id === eventId || e.id === eventId + ); + + console.log('[useEvents] Looking for event with database ID:', eventId, 'found at index:', eventIndex); + if (eventIndex !== -1) { events.value[eventIndex].user_rsvp = response.data; diff --git a/layouts/dashboard.vue b/layouts/dashboard.vue index c522bbe..3bafe81 100644 --- a/layouts/dashboard.vue +++ b/layouts/dashboard.vue @@ -180,7 +180,7 @@ - + diff --git a/pages/dashboard/member-list.vue b/pages/dashboard/member-list.vue index 20972a3..096180d 100644 --- a/pages/dashboard/member-list.vue +++ b/pages/dashboard/member-list.vue @@ -1,5 +1,5 @@