import type { OracleId, ScryfallId } from "@/lib/scryfall-types"; import { usePrintings } from "@/lib/usePrintings"; interface PrintingSelectorProps { oracleId: OracleId; currentScryfallId: ScryfallId; onSelect: (scryfallId: ScryfallId) => void; onHover?: (scryfallId: ScryfallId | null) => void; disabled?: boolean; } export function PrintingSelector({ oracleId, currentScryfallId, onSelect, onHover, disabled = false, }: PrintingSelectorProps) { const { printings, isLoading } = usePrintings(oracleId); if (isLoading) { return (
Printing
{Array.from({ length: 4 }).map((_, i) => (
))}
); } if (printings.length <= 1) return null; return (
Printing ({printings.length})
{/* biome-ignore lint/a11y/noStaticElementInteractions: hover preview is supplemental, buttons handle interaction */}
onHover?.(currentScryfallId)} className="max-h-40 overflow-y-auto border border-gray-300 dark:border-zinc-600 rounded-lg p-2 bg-gray-50 dark:bg-zinc-800/50" >
{printings.map((printing) => { const isCurrent = printing.id === currentScryfallId; return ( ); })}
); }