import React, { useState } from 'react'; import { Search, Plus } from 'lucide-react'; import { Card } from '../types'; import { searchCards } from '../services/api'; export default function Collection() { const [searchQuery, setSearchQuery] = useState(''); const [searchResults, setSearchResults] = useState([]); const [collection, setCollection] = useState<{ card: Card; quantity: number }[]>([]); const handleSearch = async (e: React.FormEvent) => { e.preventDefault(); if (!searchQuery.trim()) return; try { const cards = await searchCards(searchQuery); setSearchResults(cards); } catch (error) { console.error('Failed to search cards:', error); } }; const addToCollection = (card: Card) => { setCollection(prev => { const existing = prev.find(c => c.card.id === card.id); if (existing) { return prev.map(c => c.card.id === card.id ? { ...c, quantity: c.quantity + 1 } : c ); } return [...prev, { card, quantity: 1 }]; }); }; return (

My Collection

{/* Search */}
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent" placeholder="Search cards to add..." />
{/* Search Results */} {searchResults.length > 0 && (

Search Results

{searchResults.map(card => (
{card.image_uris?.normal && ( {card.name} )}

{card.name}

))}
)} {/* Collection */}

My Cards

{collection.map(({ card, quantity }) => (
{card.image_uris?.normal && ( {card.name} )}

{card.name}

x{quantity}
))}
); }