diff --git a/public/img/historia/pg2026.jpg b/public/img/historia/pg2026.jpg new file mode 100644 index 00000000..5c8bba2e Binary files /dev/null and b/public/img/historia/pg2026.jpg differ diff --git a/src/components/Company/Admin/ExtraOrderPanel.tsx b/src/components/Company/Admin/ExtraOrderPanel.tsx index 820c0447..5b77360f 100644 --- a/src/components/Company/Admin/ExtraOrderPanel.tsx +++ b/src/components/Company/Admin/ExtraOrderPanel.tsx @@ -43,6 +43,10 @@ export function ExtraOrderPanel({ const [extras, setExtras] = useState<[ExhibitorExtras, ExhibitorExtras]>(); const router = useRouter(); const login = api.admin.login.useMutation(); + const activeExhibitorIds = new Set(exhibitors.map((exhibitor) => exhibitor.id)); + const visiblePendingExtraOrders = pendingExtraOrders.filter((request) => + activeExhibitorIds.has(request.exhibitor_id) + ); useEffect(() => { let exhibitorPackage = { @@ -113,10 +117,24 @@ export function ExtraOrderPanel({ extras.banquetTicket += extraBanquetPreferences.length; }); - extras.tables = acceptedExtraOrders.tables; - extras.chairs = acceptedExtraOrders.chairs; - extras.drinkCoupons += acceptedExtraOrders.drinkCoupons * 3; - extras.alcFreeTicket += acceptedExtraOrders.alcFreeTicket * 3; + const activeAcceptedExtraOrders = exhibitors.reduce( + (totals, exhibitor) => { + const accepted = acceptedExtraOrders.byExhibitor?.[exhibitor.id]; + if (!accepted) return totals; + + totals.tables += accepted.tables; + totals.chairs += accepted.chairs; + totals.drinkCoupons += accepted.drinkCoupons; + totals.alcFreeTicket += accepted.alcFreeTicket; + return totals; + }, + { tables: 0, chairs: 0, drinkCoupons: 0, alcFreeTicket: 0 } + ); + + extras.tables = activeAcceptedExtraOrders.tables; + extras.chairs = activeAcceptedExtraOrders.chairs; + extras.drinkCoupons += activeAcceptedExtraOrders.drinkCoupons * 3; + extras.alcFreeTicket += activeAcceptedExtraOrders.alcFreeTicket * 3; setExtras([exhibitorPackage, extras]); }, [acceptedExtraOrders, exhibitors, preferences, t]); @@ -260,11 +278,11 @@ export function ExtraOrderPanel({ - {pendingExtraOrders.length === 0 ? ( + {visiblePendingExtraOrders.length === 0 ? ( {t.admin.extraOrders.sections.pending.empty} - ) : pendingExtraOrders.map((request) => { + ) : visiblePendingExtraOrders.map((request) => { const itemName = t.admin.extraOrders.itemNames[request.item.type as keyof typeof t.admin.extraOrders.itemNames]; const details = [ request.item.ticket_name, diff --git a/src/shared/exhibitorLayout.tsx b/src/shared/exhibitorLayout.tsx index e8d9bb22..cf2f3bdc 100644 --- a/src/shared/exhibitorLayout.tsx +++ b/src/shared/exhibitorLayout.tsx @@ -222,17 +222,19 @@ export default function ExhibitorLayout({
- - - + {isAdmin && + + + + }