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 (
);
})}
);
}