From d26ebc0b2e55d21dc6000916512a2138aae5f6b2 Mon Sep 17 00:00:00 2001 From: robin Date: Thu, 18 Dec 2025 21:48:25 +0100 Subject: [PATCH] fix(query): resolve PostgREST grouping error in SessionList --- src/components/SessionList.tsx | 35 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/components/SessionList.tsx b/src/components/SessionList.tsx index cf56d9d..44a5c95 100644 --- a/src/components/SessionList.tsx +++ b/src/components/SessionList.tsx @@ -44,7 +44,6 @@ export default function SessionList() { .select(` *, session_participants ( - count, buddies (name) ), tastings (count) @@ -53,32 +52,38 @@ export default function SessionList() { if (error) { console.error('Error fetching sessions:', error); - // Fallback: try without tastings join if relationship is missing + // Fallback: try without tastings join const { data: fallbackData, error: fallbackError } = await supabase .from('tasting_sessions') .select(` *, - session_participants (count) + session_participants (buddies(name)) `) .order('scheduled_at', { ascending: false }); if (fallbackError) { console.error('Error fetching sessions fallback:', fallbackError); } else { - setSessions(fallbackData.map(s => ({ - ...s, - participant_count: s.session_participants[0]?.count || 0, - participants: (s.session_participants as any[])?.filter(p => p.buddies).map(p => p.buddies.name) || [], - whisky_count: 0 - })) || []); + setSessions(fallbackData.map(s => { + const participants = (s.session_participants as any[])?.filter(p => p.buddies).map(p => p.buddies.name) || []; + return { + ...s, + participant_count: participants.length, + participants: participants, + whisky_count: 0 + }; + }) || []); } } else { - setSessions(data.map(s => ({ - ...s, - participant_count: s.session_participants[0]?.count || 0, - participants: (s.session_participants as any[])?.filter(p => p.buddies).map(p => p.buddies.name) || [], - whisky_count: s.tastings[0]?.count || 0 - })) || []); + setSessions(data.map(s => { + const participants = (s.session_participants as any[])?.filter(p => p.buddies).map(p => p.buddies.name) || []; + return { + ...s, + participant_count: participants.length, + participants: participants, + whisky_count: s.tastings[0]?.count || 0 + }; + }) || []); } setIsLoading(false); };