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