diff --git a/frontend/src/components/EventAdmin.tsx b/frontend/src/components/EventAdmin.tsx
index d4fe464..6d21820 100644
--- a/frontend/src/components/EventAdmin.tsx
+++ b/frontend/src/components/EventAdmin.tsx
@@ -803,3 +803,604 @@ const EventAdmin: React.FC = () => {
sx={{
minWidth: 'fit-content',
whiteSpace: 'nowrap'
+ }}
+ >
+ Manage Items
+
+ }
+ onClick={() => setDeleteEventDialogOpen(true)}
+ sx={{
+ minWidth: 'fit-content',
+ whiteSpace: 'nowrap'
+ }}
+ >
+ Delete Event
+
+
+
+
+
+
+ Info: {event.description || 'None'}
+
+
+ Location: {event.location}
+
+
+ Date: {new Date(event.date).toLocaleString()}
+
+ {event.rsvp_cutoff_date && (
+
+ RSVP cut-off date: {new Date(event.rsvp_cutoff_date).toLocaleString()}
+
+ )}
+
+
+ {/* Add items status section */}
+
+
+ Items Status
+
+
+
+
+ Still Needed:
+
+
+ {neededItems.map((item: string, index: number) => (
+
+ ))}
+ {neededItems.length === 0 && (
+
+ All items have been claimed
+
+ )}
+
+
+
+
+ Claimed Items:
+
+
+ {claimedItems.map((item: string, index: number) => (
+
+ ))}
+ {claimedItems.length === 0 && (
+
+ No items have been claimed yet
+
+ )}
+
+
+ {/* Other Items Section */}
+
+
+ Other Items:
+
+
+ {otherItems.length > 0
+ ? otherItems.join(', ')
+ : 'No other items have been brought'}
+
+
+
+
+
+
+ RSVPs: {rsvps.length} | Total Guests: {rsvps.reduce((total, rsvp) => {
+ // Count the RSVP person as 1 if they're attending
+ const rsvpCount = rsvp.attending === 'yes' ? 1 : 0;
+ // Add their guests if they're bringing any
+ const guestCount = (rsvp.attending === 'yes' && rsvp.bringing_guests === 'yes') ? rsvp.guest_count : 0;
+ return total + rsvpCount + guestCount;
+ }, 0)}
+
+
+
+
+
+
+ Name
+ Email
+ Attending
+ Guests
+ Needed Items
+ Other Items
+ Actions
+
+
+
+ {rsvps.map((rsvp: RSVP) => (
+
+ {rsvp.name || 'No name provided'}
+ {rsvp.attendee_email || 'No email provided'}
+
+ {rsvp.attending ?
+ rsvp.attending.charAt(0).toUpperCase() + rsvp.attending.slice(1) :
+ 'Unknown'
+ }
+
+
+ {rsvp.bringing_guests === 'yes' ?
+ `${rsvp.guest_count || 0} (${Array.isArray(rsvp.guest_names) ?
+ rsvp.guest_names.join(', ') :
+ typeof rsvp.guest_names === 'string' ?
+ rsvp.guest_names.replace(/\s+/g, ', ') :
+ 'No names provided'})` :
+ 'No'
+ }
+
+
+ {Array.isArray(rsvp.items_bringing) ?
+ rsvp.items_bringing.map((item, index) => (
+
+ )) :
+ typeof rsvp.items_bringing === 'string' ?
+ JSON.parse(rsvp.items_bringing).map((item: string, index: number) => (
+
+ )) :
+ 'None'
+ }
+
+
+ {rsvp.other_items || 'None'}
+
+
+ handleEditRsvp(rsvp)}
+ sx={{ mr: 1 }}
+ >
+
+
+ handleDeleteRsvp(rsvp)}
+ sx={{ mr: 1 }}
+ >
+
+
+ handleSendEmail(rsvp)}
+ sx={{ mr: 1 }}
+ disabled={!rsvp.attendee_email}
+ >
+
+
+ handleCopyLink(rsvp)}
+ disabled={!rsvp.edit_id}
+ >
+
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {snackbarMessage}
+
+
+
+
+
+ );
+};
+
+export default EventAdmin;