From 88d4b826a9cf3652b8b95bb37b1eb8c35c55097a Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Mon, 24 Feb 2025 12:22:18 +0100 Subject: [PATCH] feat: refresh on pref changes --- src/app/page.tsx | 2 +- src/components/home/HomeContent.tsx | 3 ++- src/components/layout/Sidebar.tsx | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index a503974..f5770aa 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -24,7 +24,7 @@ async function HomePage() { 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")) { + if (error instanceof Error && error.message.includes("Configuration Komga non trouvée")) { redirect("/settings"); } diff --git a/src/components/home/HomeContent.tsx b/src/components/home/HomeContent.tsx index 58045ae..4f9e46d 100644 --- a/src/components/home/HomeContent.tsx +++ b/src/components/home/HomeContent.tsx @@ -3,6 +3,7 @@ import { MediaRow } from "./MediaRow"; import { KomgaBook, KomgaSeries } from "@/types/komga"; import { RefreshButton } from "@/components/library/RefreshButton"; import { BookOpenCheck, History, Sparkles, Clock } from "lucide-react"; +import { usePreferences } from "@/contexts/PreferencesContext"; interface HomeData { ongoing: KomgaSeries[]; @@ -23,7 +24,7 @@ export function HomeContent({ data, refreshHome }: HomeContentProps) { // recentlyReadCount: data.recentlyRead?.length || 0, // onDeckCount: data.onDeck?.length || 0, // }); - + const { preferences } = usePreferences(); const optimizeSeriesData = (series: KomgaSeries[]) => { return series.map(({ id, metadata, booksCount }) => ({ id, diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index 616a366..08c0ff2 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx @@ -6,6 +6,7 @@ import { cn } from "@/lib/utils"; import { authService } from "@/lib/services/auth.service"; import { useEffect, useState, useCallback } from "react"; import { KomgaLibrary, KomgaSeries } from "@/types/komga"; +import { usePreferences } from "@/contexts/PreferencesContext"; interface SidebarProps { isOpen: boolean; @@ -15,6 +16,7 @@ interface SidebarProps { export function Sidebar({ isOpen, onClose }: SidebarProps) { const pathname = usePathname(); const router = useRouter(); + const { preferences } = usePreferences(); const [libraries, setLibraries] = useState([]); const [favorites, setFavorites] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -79,6 +81,12 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) { fetchFavorites(); }, [fetchLibraries, fetchFavorites]); + // Rafraîchir les données quand les préférences changent + useEffect(() => { + fetchLibraries(); + fetchFavorites(); + }, [preferences, fetchLibraries, fetchFavorites]); + // Mettre à jour les favoris quand ils changent useEffect(() => { const handleFavoritesChange = () => {