diff --git a/components/EventDetailsDialog.vue b/components/EventDetailsDialog.vue index 15a043e..85b5cbd 100644 --- a/components/EventDetailsDialog.vue +++ b/components/EventDetailsDialog.vue @@ -452,9 +452,16 @@ const submitRSVP = async (status: 'confirmed' | 'declined') => { rsvpLoading.value = true; try { - // 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); + // Extract database ID - props.event is a raw Event object, not FullCalendar object + // Database ID is stored in 'Id' field (capital I) from NocoDB + const databaseId = (props.event as any).Id || (props.event as any).extendedProps?.database_id || props.event.id; + console.log('[EventDetailsDialog] Using database ID for RSVP:', databaseId); + console.log('[EventDetailsDialog] Event object keys:', Object.keys(props.event)); + console.log('[EventDetailsDialog] Event Id field:', (props.event as any).Id); + + if (!databaseId) { + throw new Error('Unable to determine database ID for event'); + } await rsvpToEvent(databaseId, { member_id: '', // This will be filled by the composable diff --git a/components/MemberCard.vue b/components/MemberCard.vue index 941c270..1ec249f 100644 --- a/components/MemberCard.vue +++ b/components/MemberCard.vue @@ -133,7 +133,7 @@ :color="duesColor" :variant="duesVariant" size="small" - class="flex-grow-1 mr-1" + class="mr-1" > {{ duesIcon }} {{ duesText }} @@ -165,7 +165,6 @@ color="orange" variant="flat" size="x-small" - class="flex-grow-1" > mdi-clock-alert Due {{ formatDate(nextDuesDate) }} @@ -176,7 +175,6 @@ color="error" variant="flat" size="x-small" - class="flex-grow-1" > mdi-calendar-alert Overdue