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(', '); + })()}