import { CoverClient } from "./cover-client";
import { ProgressBar } from "./progress-bar";
interface BaseCoverProps {
type: "series" | "book";
id: string;
alt?: string;
className?: string;
quality?: number;
sizes?: string;
isCompleted?: boolean;
}
interface BookCoverProps extends BaseCoverProps {
type: "book";
currentPage?: number;
totalPages?: number;
}
interface SeriesCoverProps extends BaseCoverProps {
type: "series";
readBooks?: number;
totalBooks?: number;
}
type CoverProps = BookCoverProps | SeriesCoverProps;
function getImageUrl(type: "series" | "book", id: string) {
if (type === "series") {
return `/api/komga/images/series/${id}/thumbnail`;
}
return `/api/komga/images/books/${id}/thumbnail`;
}
export function Cover(props: CoverProps) {
const {
type,
id,
alt = "Image de couverture",
className,
quality = 80,
sizes = "100vw",
isCompleted = false,
} = props;
const imageUrl = getImageUrl(type, id);
const showProgress = () => {
if (type === "book") {
const { currentPage, totalPages } = props;
return currentPage && totalPages && currentPage > 0 && !isCompleted ? (