"use client"; import type { NormalizedSeries } from "@/lib/providers/types"; import { useRouter } from "next/navigation"; import { cn } from "@/lib/utils"; import { SeriesCover } from "@/components/ui/series-cover"; import { useTranslate } from "@/hooks/useTranslate"; import { useAnonymous } from "@/contexts/AnonymousContext"; interface SeriesGridProps { series: NormalizedSeries[]; isCompact?: boolean; } // Utility function to get reading status info const getReadingStatusInfo = ( series: NormalizedSeries, t: (key: string, options?: { [key: string]: string | number }) => string ) => { if (series.bookCount === 0) { return { label: t("series.status.noBooks"), className: "bg-yellow-500/10 text-yellow-500", }; } if (series.bookCount === series.booksReadCount) { return { label: t("series.status.read"), className: "bg-green-500/10 text-green-500", }; } if (series.booksReadCount > 0) { return { label: t("series.status.progress", { read: series.booksReadCount, total: series.bookCount, }), className: "bg-primary/15 text-primary", }; } return { label: t("series.status.unread"), className: "bg-yellow-500/10 text-yellow-500", }; }; export function SeriesGrid({ series, isCompact = false }: SeriesGridProps) { const router = useRouter(); const { t } = useTranslate(); const { isAnonymous } = useAnonymous(); if (!series.length) { return (
{t("series.empty")}