diff --git a/src/components/series/SeriesHeader.tsx b/src/components/series/SeriesHeader.tsx index 1e234ad..1c8ad4a 100644 --- a/src/components/series/SeriesHeader.tsx +++ b/src/components/series/SeriesHeader.tsx @@ -10,9 +10,42 @@ interface SeriesHeaderProps { serverUrl: string; } +// Fonction utilitaire pour obtenir les informations de lecture d'une série +const getReadingStatusInfo = (series: KomgaSeries) => { + const { booksCount, booksReadCount, booksUnreadCount } = series; + const booksInProgressCount = booksCount - (booksReadCount + booksUnreadCount); + + if (booksReadCount === booksCount) { + return { + label: "Lu", + className: "bg-green-500/10 text-green-500", + }; + } + + if (booksInProgressCount > 0 || (booksReadCount > 0 && booksReadCount < booksCount)) { + return { + label: `${booksReadCount}/${booksCount}`, + className: "bg-blue-500/10 text-blue-500", + }; + } + + return { + label: "Non lu", + className: "bg-yellow-500/10 text-yellow-500", + }; +}; + export function SeriesHeader({ series, serverUrl }: SeriesHeaderProps) { const [languageDisplay, setLanguageDisplay] = useState(series.metadata.language); const [imageError, setImageError] = useState(false); + const [readingStatus, setReadingStatus] = useState<{ + label: string; + className: string; + } | null>(null); + + useEffect(() => { + setReadingStatus(getReadingStatusInfo(series)); + }, [series]); useEffect(() => { try { @@ -57,27 +90,15 @@ export function SeriesHeader({ series, serverUrl }: SeriesHeaderProps) {

{series.metadata.title}

- {series.metadata.status && ( - - {series.metadata.status === "ENDED" - ? "Terminé" - : series.metadata.status === "ONGOING" - ? "En cours" - : series.metadata.status === "ABANDONED" - ? "Abandonné" - : "En pause"} - - )} +
+ {readingStatus && ( + + {readingStatus.label} + + )} +
{series.metadata.summary && (