From c959cc8829448eda22ac40817ae689dee33f7199 Mon Sep 17 00:00:00 2001 From: belisards Date: Sun, 3 May 2026 16:53:48 -0300 Subject: [PATCH] feat(ui): hide spoiler banner, anonymize claims, optional guest name, list wishlists on home, drop esgotados toggle --- app/[slug]/page.tsx | 30 +++++++-------------------- app/admin/guests/page.tsx | 3 +-- app/api/admin/guests/route.ts | 5 +---- app/page.tsx | 39 ++++++++++++++++++++++++++++------- components/header.tsx | 28 ------------------------- scripts/guest.ts | 3 +-- 6 files changed, 43 insertions(+), 65 deletions(-) diff --git a/app/[slug]/page.tsx b/app/[slug]/page.tsx index f2d82cb..afefdbc 100644 --- a/app/[slug]/page.tsx +++ b/app/[slug]/page.tsx @@ -19,7 +19,6 @@ function PublicWishlistContent() { const params = useParams(); const [wishlist, setWishlist] = useState(null); const [items, setItems] = useState([]); - const [showClaimed, setShowClaimed] = useState(false); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(''); @@ -121,12 +120,10 @@ function PublicWishlistContent() { } }; - const filteredItems = showClaimed - ? items - : items.filter((item) => { - const my = myClaimFor(item); - return item.remainingQuantity > 0 || my || item.id === justClaimedItemId; - }); + const filteredItems = items.filter((item) => { + const my = myClaimFor(item); + return item.remainingQuantity > 0 || my || item.id === justClaimedItemId; + }); const formatPrice = (price: number | null, currency: string) => { if (!price) return null; @@ -208,18 +205,7 @@ function PublicWishlistContent() { )} {/* Controls */} -
-
- -
+
{filteredItems.length} de {items.length} itens
@@ -229,7 +215,7 @@ function PublicWishlistContent() { {filteredItems.length === 0 ? (

- {showClaimed ? 'Nenhum item nesta lista ainda' : 'Todos os itens já foram reservados!'} + Todos os itens já foram reservados!

) : ( @@ -282,9 +268,9 @@ function PublicWishlistContent() { return (
  • - {c.guest.name} + {isMine ? 'Você' : 'Reservado'} · {c.quantity} un. - {c.note && ( + {c.note && isMine && ( "{c.note}" diff --git a/app/admin/guests/page.tsx b/app/admin/guests/page.tsx index 63963e9..daa13c0 100644 --- a/app/admin/guests/page.tsx +++ b/app/admin/guests/page.tsx @@ -29,7 +29,6 @@ function GuestsManager() { const onCreate = async (e: React.FormEvent) => { e.preventDefault(); setErr(''); - if (!name.trim()) return; setBusy(true); try { await guestsApi.create(name.trim()); @@ -67,7 +66,7 @@ function GuestsManager() { setName(e.target.value)} - placeholder="Nome do convidado" + placeholder="Nome do convidado (opcional)" className="flex-1 border rounded px-3 py-2" />