diff --git a/src/app/page.tsx b/src/app/page.tsx
index 8464672..d751675 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,12 +1,26 @@
import { HomeContent } from "@/components/home/HomeContent";
import { HomeService } from "@/lib/services/home.service";
import { redirect } from "next/navigation";
+import { revalidatePath } from "next/cache";
+
+async function refreshHome() {
+ "use server";
+
+ try {
+ await HomeService.clearHomeCache();
+ revalidatePath("/");
+ return { success: true };
+ } catch (error) {
+ console.error("Erreur lors du rafraîchissement:", error);
+ return { success: false, error: "Erreur lors du rafraîchissement de la page d'accueil" };
+ }
+}
export default async function HomePage() {
try {
const data = await HomeService.getHomeData();
- return ;
+ return ;
} catch (error) {
// Si l'erreur indique une configuration manquante, rediriger vers les préférences
if (error instanceof Error && error.message.includes("Configuration Komga manquante")) {
diff --git a/src/app/series/[seriesId]/page.tsx b/src/app/series/[seriesId]/page.tsx
index 429a9d2..db8909b 100644
--- a/src/app/series/[seriesId]/page.tsx
+++ b/src/app/series/[seriesId]/page.tsx
@@ -3,7 +3,6 @@ import { SeriesHeader } from "@/components/series/SeriesHeader";
import { SeriesService } from "@/lib/services/series.service";
import { PreferencesService } from "@/lib/services/preferences.service";
import { revalidatePath } from "next/cache";
-import { RefreshButton } from "@/components/library/RefreshButton";
interface PageProps {
params: { seriesId: string };
diff --git a/src/components/home/HomeContent.tsx b/src/components/home/HomeContent.tsx
index ea41b02..c16fa89 100644
--- a/src/components/home/HomeContent.tsx
+++ b/src/components/home/HomeContent.tsx
@@ -1,6 +1,7 @@
import { HeroSection } from "./HeroSection";
import { MediaRow } from "./MediaRow";
import { KomgaBook, KomgaSeries } from "@/types/komga";
+import { RefreshButton } from "@/components/library/RefreshButton";
interface HomeData {
ongoing: KomgaSeries[];
@@ -10,9 +11,10 @@ interface HomeData {
interface HomeContentProps {
data: HomeData;
+ refreshHome: () => Promise<{ success: boolean; error?: string }>;
}
-export function HomeContent({ data }: HomeContentProps) {
+export function HomeContent({ data, refreshHome }: HomeContentProps) {
// Vérification des données pour le debug
// console.log("HomeContent - Données reçues:", {
// ongoingCount: data.ongoing?.length || 0,
@@ -47,6 +49,10 @@ export function HomeContent({ data }: HomeContentProps) {
return (
+
+
Accueil
+
+
{/* Hero Section - Afficher uniquement si nous avons des séries en cours */}
{data.ongoing && data.ongoing.length > 0 && (
diff --git a/src/lib/services/home.service.ts b/src/lib/services/home.service.ts
index 722994b..cfcd89a 100644
--- a/src/lib/services/home.service.ts
+++ b/src/lib/services/home.service.ts
@@ -1,6 +1,7 @@
import { BaseApiService } from "./base-api.service";
import { KomgaBook, KomgaSeries } from "@/types/komga";
import { LibraryResponse } from "@/types/library";
+import { serverCacheService } from "./server-cache.service";
interface HomeData {
ongoing: KomgaSeries[];
@@ -63,4 +64,10 @@ export class HomeService extends BaseApiService {
return this.handleError(error, "Impossible de récupérer les données de la page d'accueil");
}
}
+
+ static async clearHomeCache() {
+ serverCacheService.delete("home-ongoing");
+ serverCacheService.delete("home-recently-read");
+ serverCacheService.delete("home-on-deck");
+ }
}