import CardItem from './CardItem'; import BulkSelectionToolbar from './BulkSelectionToolbar'; import CollectionSelectionModal from './CollectionSelectionModal'; export default function CardsPageView(props) { const { cards, loadingMore, searchQuery, selectedTCG, setSelectedTCG, selectedRarity, setSelectedRarity, selectedSet, setSelectedSet, selectedValueRange, setSelectedValueRange, viewMode, setViewMode, hasMore, selectedCards, favoritedCards, showCollectionModal, setShowCollectionModal, cardsToAdd, handleSearchChange, fetchCards, loadMoreCards, hasMoreRef, setPagination, setCards, setHasMore, tcgOptions, rarityOptions, setOptions, valueRangeOptions, handleToggleSelect, handleClearSelection, handleToggleFavorite, handleBulkAddToCollection, handleBulkAddToDeck, handleBulkMarkAsOwned, handleBulkRemoveFromOwned, handleBulkFavorite, handleBulkDelete, handleAddToCollections, } = props; return ( <> {/* Header */}

Cards

Browse and manage your card collection

{/* Quick Filters */}

Quick Filters

{tcgOptions.map(option => ( ))}
{/* Advanced Filters */}
handleSearchChange(e.target.value)} onKeyPress={(e) => { if (e.key === 'Enter') { setPagination(prev => ({ ...prev, page: 1 })); setCards([]); setHasMore(true); hasMoreRef.current = true; fetchCards(false); } }} />
{/* Active Filters Display */} {(selectedTCG !== 'all' || selectedRarity !== 'all' || selectedSet !== 'all' || selectedValueRange !== 'all') && (
{selectedTCG !== 'all' && ( {tcgOptions.find(opt => opt.value === selectedTCG)?.label} )} {selectedRarity !== 'all' && ( {rarityOptions.find(opt => opt.value === selectedRarity)?.label} )} {selectedSet !== 'all' && ( {setOptions.find(opt => opt.value === selectedSet)?.label} )} {selectedValueRange !== 'all' && ( {valueRangeOptions.find(opt => opt.value === selectedValueRange)?.label} )}
)}
{/* Cards Display */}
{cards.length === 0 ? (
🃏

No cards found

Try adjusting your search or filters

) : ( <>
{cards.map((card) => ( c.id === card.id)} onToggleSelect={handleToggleSelect} onAddToCollection={(card) => handleBulkAddToCollection([card])} onAddToDeck={handleBulkAddToDeck} onToggleFavorite={handleToggleFavorite} isFavorited={favoritedCards.has(card.id)} /> ))}
{/* Infinite Scroll Loading Indicator */} {loadingMore && (
Loading more cards...
)} {/* Infinite Scroll Sentinel */}
{/* Load More Button */} {hasMore && !loadingMore && (
)} {/* End of results indicator */} {!hasMore && cards.length > 0 && (
No more cards to load
)} )}
{/* Bulk Selection Toolbar */} {/* Collection Selection Modal */} setShowCollectionModal(false)} cards={cardsToAdd} onAddToCollections={handleAddToCollections} /> ); }