import Link from "next/link"; import { Poster } from "@/components/Poster"; import { ProgressBar } from "@/components/ProgressBar"; import { STATUS_COLOR, STATUS_LABEL, type StatusKey } from "@/lib/labels"; import type { LibraryItem } from "@/lib/queries"; /** * Posterkachel der Bibliothek. * * Alles Wesentliche steht ohne Klick da: Status, Fortschritt, Bewertung. * Die Karte ist ein Link — der ganze Bereich ist anklickbar, nicht nur der Titel. */ export function LibraryCard({ item }: { item: LibraryItem }) { const status = item.status as StatusKey; const showProgress = item.type === "SERIES" && item.total > 0 && item.status !== "WATCHLIST"; return (
{/* Status und Sammlung teilen sich die obere Zeile — unten sitzt bei den Postern oft der Titel, dort würden sie ihn verdecken. */} {STATUS_LABEL[status]} {item.owned && ( Hab ich )} {item.rating != null && ( {item.rating} )} {item.currentRun > 0 && ( {item.currentRun + 1}. Durchlauf )}

{item.title}

{item.type === "SERIES" ? "Serie" : "Film"} {item.year ? ` · ${item.year}` : ""} {item.owned && item.ownedSource ? ` · ${item.ownedSource}` : item.whereToWatch ? ` · ${item.whereToWatch}` : ""}

{showProgress && (

{item.watched}/{item.total} Episoden

)}
); }