diff --git a/frontend/src/app/(public)/invite/[slug]/gifts/page.tsx b/frontend/src/app/(public)/invite/[slug]/gifts/page.tsx index 34ed71a..cdd2c1d 100644 --- a/frontend/src/app/(public)/invite/[slug]/gifts/page.tsx +++ b/frontend/src/app/(public)/invite/[slug]/gifts/page.tsx @@ -1,3 +1,4 @@ +// app/(public)/invite/[slug]/gifts/page.tsx "use client"; import React, { useEffect, useState } from "react"; @@ -121,21 +122,23 @@ export default function GiftRegistryPage() { // Process gifts into available and reserved categories useEffect(() => { - if (items && guestPurchases.length >= 0) { + if (items && Array.isArray(items)) { // Get IDs of gifts that this guest has reserved const reservedGiftIds = new Set( guestPurchases.map((purchase) => purchase.gift_id), ); - // Available gifts (visible and not fully reserved) + // Available gifts: + // Only filter out gifts that: + // 1. Are not visible (is_visible === false) + // 2. Are already reserved by this guest (in reservedGiftIds) + // 3. Are completely received (is_fully_received === true) + // 4. Have been removed (status === "removed") const available = items.filter( (item) => item.is_visible && - !reservedGiftIds.has(item.id) && - (item.status === "available" || - (item.quantity_requested && - item.quantity_received && - item.quantity_received < item.quantity_requested)), + item.status !== "removed" && + !item.is_fully_received, ); // Reserved gifts (this guest has reserved them) @@ -145,7 +148,6 @@ export default function GiftRegistryPage() { setReservedGifts(reserved); } }, [items, guestPurchases]); - // Format priority for display const formatPriority = (priority: string) => { switch (priority) { @@ -210,13 +212,10 @@ export default function GiftRegistryPage() { // Confirm reservation handler const handleConfirmReservation = async () => { - console.debug("Confirm reservation:", currentGuest); if (!selectedGift || !currentGuest) { - console.error("Missing information ", { selectedGift, currentGuest }); setErrorMessage("Required information missing."); return; } - console.log("Reserving: ", { selectedGift, currentGuest }); try { await reserveItem( @@ -284,7 +283,7 @@ export default function GiftRegistryPage() {

- Gift Registry 🎁 + 🎁 Gift Registry 🎁

Choose a gift from the wishlist to help celebrate Emma's 1st birthday @@ -394,7 +393,7 @@ export default function GiftRegistryPage() { Name Priority Link - Quantity + {/*Quantity*/} Description @@ -430,7 +429,7 @@ export default function GiftRegistryPage() { )} - {quantity} + {/*{quantity}*/} {gift.description || ""}