import { PaginatedSeriesGrid } from "@/components/library/PaginatedSeriesGrid"; import { LibraryService } from "@/lib/services/library.service"; import { PreferencesService } from "@/lib/services/preferences.service"; import { revalidatePath } from "next/cache"; import { RefreshButton } from "@/components/library/RefreshButton"; interface PageProps { params: { libraryId: string }; searchParams: { page?: string; unread?: string; search?: string }; } const PAGE_SIZE = 20; async function refreshLibrary(libraryId: string) { "use server"; try { await LibraryService.invalidateLibrarySeriesCache(libraryId); revalidatePath(`/libraries/${libraryId}`); return { success: true }; } catch (error) { console.error("Erreur lors du rafraîchissement:", error); return { success: false, error: "Erreur lors du rafraîchissement de la bibliothèque" }; } } async function getLibrarySeries( libraryId: string, page: number = 1, unreadOnly: boolean = false, search?: string ) { try { const pageIndex = page - 1; const series = await LibraryService.getLibrarySeries( libraryId, pageIndex, PAGE_SIZE, unreadOnly, search ); const library = await LibraryService.getLibrary(libraryId); return { data: series, library }; } catch (error) { throw error instanceof Error ? error : new Error("Erreur lors de la récupération des séries"); } } export default async function LibraryPage({ params, searchParams }: PageProps) { const currentPage = searchParams.page ? parseInt(searchParams.page) : 1; const preferences = await PreferencesService.getPreferences(); // Utiliser le paramètre d'URL s'il existe, sinon utiliser la préférence utilisateur const unreadOnly = searchParams.unread !== undefined ? searchParams.unread === "true" : preferences.showOnlyUnread; try { const { data: series, library } = await getLibrarySeries( params.libraryId, currentPage, unreadOnly, searchParams.search ); return (

{library.name}

{series.totalElements > 0 && (

{series.totalElements} série{series.totalElements > 1 ? "s" : ""}

)}
); } catch (error) { return (

Séries

{error instanceof Error ? error.message : "Erreur lors de la récupération des séries"}

); } }