From fdde6c6b4214bf5c00cd76b2dcddf3cc2067ca6f Mon Sep 17 00:00:00 2001 From: Starstrike Date: Wed, 30 Apr 2025 09:12:23 -0400 Subject: [PATCH] Fix: Handle items_bringing parsing in EventAdmin component --- frontend/src/components/EventAdmin.tsx | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/EventAdmin.tsx b/frontend/src/components/EventAdmin.tsx index 6c2095d..5648bd2 100644 --- a/frontend/src/components/EventAdmin.tsx +++ b/frontend/src/components/EventAdmin.tsx @@ -86,7 +86,18 @@ const EventAdmin: React.FC = () => { ]); setEvent(eventResponse.data); setNeededItems(eventResponse.data.needed_items || []); - setRsvps(rsvpsResponse.data); + + // Parse items_bringing for each RSVP + const processedRsvps = rsvpsResponse.data.map((rsvp: RSVP) => ({ + ...rsvp, + items_bringing: typeof rsvp.items_bringing === 'string' + ? JSON.parse(rsvp.items_bringing) + : Array.isArray(rsvp.items_bringing) + ? rsvp.items_bringing + : [] + })); + + setRsvps(processedRsvps); setLoading(false); } catch (error) { setError('Failed to load event data'); @@ -220,7 +231,14 @@ const EventAdmin: React.FC = () => { } - {rsvp.items_bringing.join(', ')} + {(() => { + const items = typeof rsvp.items_bringing === 'string' + ? JSON.parse(rsvp.items_bringing) + : Array.isArray(rsvp.items_bringing) + ? rsvp.items_bringing + : []; + return items.join(', '); + })()}