From 5f7716d44035f6d3d76a03f4d4e47309c87b290d Mon Sep 17 00:00:00 2001 From: Regalijan Date: Sat, 2 Mar 2024 01:06:24 -0500 Subject: [PATCH] Display names on event cards --- app/routes/events-team.tsx | 44 ++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/app/routes/events-team.tsx b/app/routes/events-team.tsx index 019b670..36307a8 100644 --- a/app/routes/events-team.tsx +++ b/app/routes/events-team.tsx @@ -52,11 +52,23 @@ export async function loader({ context }: { context: RequestContext }) { status: 500, }); + const membersList = await context.env.D1.prepare( + "SELECT id, name FROM et_members WHERE id IN (SELECT created_by FROM events WHERE month = ? AND year = ?);", + ) + .bind(now.getUTCMonth() + 1, now.getUTCFullYear()) + .all(); + + if (membersList.error) + throw new Response(null, { + status: 500, + }); + return { can_approve: Boolean( [1 << 4, 1 << 12].find((p) => context.data.current_user.permissions & p), ), events: monthEventList.results, + members: membersList.results as { id: string; name: string }[], }; } @@ -64,10 +76,13 @@ export default function () { const { can_approve, events, + members, }: { can_approve: boolean; events: { [k: string]: any }[]; + members: { id: string; name: string }[]; } = useLoaderData(); + const [eventData, setEventData] = useState(events); const eventCards: ReactNode[] = []; const { isOpen, onClose, onOpen } = useDisclosure(); const toast = useToast(); @@ -107,9 +122,16 @@ export default function () { title: "Success", }); - events.find((e, i) => { - if (e.id === eventId) events[i].approved = approved; + const newEventData = eventData; + + newEventData.find((e, i) => { + if (e.id === eventId) { + events[i].approved = approved; + events[i].pending = false; + } }); + + setEventData(newEventData); } async function certify(eventId: string) { @@ -145,12 +167,20 @@ export default function () { title: "Success", }); - events.find((e, i) => { + const newEventData = eventData; + + newEventData.find((e, i) => { if (e.id === eventId) events[i].reached_minimum_player_count = true; }); + + setEventData(newEventData); } - for (const event of events) { + for (const event of eventData) { + const eventCreatorName = members.find( + (member) => member.id === event.created_by, + ); + eventCards.push( @@ -184,7 +214,9 @@ export default function () { Host - {event.created_by} + {eventCreatorName + ? `${eventCreatorName} (${event.created_by})` + : event.created_by} @@ -268,7 +300,7 @@ export default function () { Book an Event - + Events Team Member Management