import CameraScanner from './CameraScanner';
import ScannerDestinationPicker from './ScannerDestinationPicker';
import ScannedCardItem, { CONDITION_OPTIONS } from './ScannedCardItem';
import OCRSettings from './OCRSettings';
import { Modal, Input, Button } from './ui';
import { VOCAB } from '../lib/collection-vocabulary.js';
export default function ScannerPageView({
gameFilter,
onGameFilterChange,
sessionDestination,
onDestinationChange,
scanDefaults,
onScanDefaultsChange,
queue,
showOCRSettings,
onOpenOCRSettings,
onCloseOCRSettings,
onScannerError,
}) {
return (
🃏 Card Scanner
Pick a destination once — every scan lands there until you change it
{queue.autoRouteError && (
{queue.autoRouteError}
)}
Camera Scanner
Scanned Cards
{queue.scannedCards.length} cards
{queue.scannedCards.length > 0 && (
)}
{queue.scannedCards.length === 0 ? (
📱
No cards scanned yet
Start scanning to see cards here
) : (
{queue.scannedCards.map((card) => (
-
queue.toggleCardSelection(card.id)}
onIncrement={() => queue.incrementCardQuantity(card.id)}
onDecrement={() => queue.decrementCardQuantity(card.id)}
onUpdateMetadata={(patch) => queue.updateCardMetadata(card.id, patch)}
onMarkOwned={() => queue.addSingleCardToOwned(card)}
onAddToCollection={(collectionId) => queue.addSingleCardToCollection(card, collectionId)}
onAddToDeck={(deckId) => queue.addSingleCardToDeck(card, deckId)}
onRemove={() => queue.removeScannedCard(card.id)}
isAdding={queue.addingCardIds.has(card.id)}
/>
))}
)}
{queue.selectedCards.size > 0 && (
{queue.selectedCards.size}
{queue.selectedCards.size === 1 ? 'card selected' : 'cards selected'}
{queue.collections.length > 0 && (
)}
{queue.decks.length > 0 && (
)}
)}
queue.setShowCreateCollection(false)}
title="Create New List"
size="md"
>
queue.setNewCollectionName(e.target.value)}
onKeyPress={(e) => {
if (e.key === 'Enter') {
queue.createCollection();
}
}}
className="mb-4"
/>
{showOCRSettings &&
}
);
}