diff --git a/src/app/page.tsx b/src/app/page.tsx index ad8cf39..df7694e 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -14,6 +14,7 @@ export default function Page() { const [collected, setCollected] = useState>(new Set()); const [setId, setSetId] = useState(''); const [note, setNote] = useState(null); + const [tab, setTab] = useState<'uncollected' | 'collected'>('uncollected'); useEffect(() => { setCollected(loadChecklist()); @@ -63,6 +64,15 @@ export default function Page() { return bySet; }, [cards, query, setId]); + const filteredCollectedCount = useMemo(() => filtered.filter((c) => collected.has(c.id)).length, [filtered, collected]); + const filteredUncollectedCount = useMemo(() => filtered.filter((c) => !collected.has(c.id)).length, [filtered, collected]); + + const displayed = useMemo(() => { + return tab === 'collected' + ? filtered.filter((c) => collected.has(c.id)) + : filtered.filter((c) => !collected.has(c.id)); + }, [filtered, collected, tab]); + const setOptions = useMemo(() => { const map = new Map(); for (const c of cards) { @@ -95,10 +105,40 @@ export default function Page() { {note} ) : null} -
- Showing {filtered.length} of {cards.length} cards. +
+ +
- +
+ Showing {displayed.length} of {filtered.length} cards in this tab. +
+ )} diff --git a/src/components/CardItem.tsx b/src/components/CardItem.tsx index 2e3a6f7..4d736e3 100644 --- a/src/components/CardItem.tsx +++ b/src/components/CardItem.tsx @@ -7,18 +7,6 @@ import SetBadge from './SetBadge'; export default function CardItem({ card, checked, onToggle }:{ card: TcgCard; checked: boolean; onToggle: (id:string)=>void }) { return (
-
- -
{card.rarity} : null}
+
+ +
);