import Link from "next/link"; import { Card, CardHeader, CardTitle, CardDescription, CardContent, StatBox } from "@/app/components/ui"; import type { ReadingStatusMatchReportDto, ReadingStatusMatchResultDto, ReadingStatusPushReportDto, ReadingStatusPushResultDto } from "@/lib/api"; import type { TranslateFunction } from "@/lib/i18n/dictionaries"; export function ReadingStatusMatchReportCard({ report, t }: { report: ReadingStatusMatchReportDto; t: TranslateFunction }) { return ( {t("jobDetail.readingStatusMatchReport")} {t("jobDetail.seriesAnalyzed", { count: String(report.total_series) })}
0 ? "error" : "default"} />
); } export function ReadingStatusMatchResultsCard({ results, libraryId, t }: { results: ReadingStatusMatchResultDto[]; libraryId: string | null; t: TranslateFunction; }) { if (results.length === 0) return null; return ( {t("jobDetail.resultsBySeries")} {t("jobDetail.seriesProcessed", { count: String(results.length) })} {results.map((r) => (
{libraryId ? ( {r.series_name} ) : ( {r.series_name} )} {r.status === "linked" ? t("jobDetail.linked") : r.status === "already_linked" ? t("jobDetail.alreadyLinked") : r.status === "no_results" ? t("jobDetail.noResults") : r.status === "ambiguous" ? t("jobDetail.ambiguous") : r.status === "error" ? t("common.error") : r.status}
{r.status === "linked" && r.anilist_title && (
{r.anilist_url ? ( {r.anilist_title} ) : ( {r.anilist_title} )} {r.anilist_id && #{r.anilist_id}}
)} {r.error_message && (

{r.error_message}

)}
))}
); } export function ReadingStatusPushReportCard({ report, t }: { report: ReadingStatusPushReportDto; t: TranslateFunction }) { return ( {t("jobDetail.readingStatusPushReport")} {t("jobDetail.seriesAnalyzed", { count: String(report.total_series) })}
0 ? "error" : "default"} />
); } export function ReadingStatusPushResultsCard({ results, libraryId, t }: { results: ReadingStatusPushResultDto[]; libraryId: string | null; t: TranslateFunction; }) { if (results.length === 0) return null; return ( {t("jobDetail.resultsBySeries")} {t("jobDetail.seriesProcessed", { count: String(results.length) })} {results.map((r) => (
{libraryId ? ( {r.series_name} ) : ( {r.series_name} )} {r.status === "pushed" ? t("jobDetail.pushed") : r.status === "skipped" ? t("jobDetail.skipped") : r.status === "no_books" ? t("jobDetail.noBooks") : r.status === "error" ? t("common.error") : r.status}
{r.status === "pushed" && r.anilist_title && (
{r.anilist_url ? ( {r.anilist_title} ) : ( {r.anilist_title} )} {r.anilist_status && {r.anilist_status}} {r.progress_volumes != null && vol. {r.progress_volumes}}
)} {r.error_message && (

{r.error_message}

)}
))}
); }