feat: refresh on pref changes

This commit is contained in:
Julien Froidefond
2025-02-24 12:22:18 +01:00
parent 980a6daca2
commit 88d4b826a9
3 changed files with 11 additions and 2 deletions

View File

@@ -24,7 +24,7 @@ async function HomePage() {
return <HomeContent data={data} refreshHome={refreshHome} />; return <HomeContent data={data} refreshHome={refreshHome} />;
} catch (error) { } catch (error) {
// Si l'erreur indique une configuration manquante, rediriger vers les préférences // 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"); redirect("/settings");
} }

View File

@@ -3,6 +3,7 @@ import { MediaRow } from "./MediaRow";
import { KomgaBook, KomgaSeries } from "@/types/komga"; import { KomgaBook, KomgaSeries } from "@/types/komga";
import { RefreshButton } from "@/components/library/RefreshButton"; import { RefreshButton } from "@/components/library/RefreshButton";
import { BookOpenCheck, History, Sparkles, Clock } from "lucide-react"; import { BookOpenCheck, History, Sparkles, Clock } from "lucide-react";
import { usePreferences } from "@/contexts/PreferencesContext";
interface HomeData { interface HomeData {
ongoing: KomgaSeries[]; ongoing: KomgaSeries[];
@@ -23,7 +24,7 @@ export function HomeContent({ data, refreshHome }: HomeContentProps) {
// recentlyReadCount: data.recentlyRead?.length || 0, // recentlyReadCount: data.recentlyRead?.length || 0,
// onDeckCount: data.onDeck?.length || 0, // onDeckCount: data.onDeck?.length || 0,
// }); // });
const { preferences } = usePreferences();
const optimizeSeriesData = (series: KomgaSeries[]) => { const optimizeSeriesData = (series: KomgaSeries[]) => {
return series.map(({ id, metadata, booksCount }) => ({ return series.map(({ id, metadata, booksCount }) => ({
id, id,

View File

@@ -6,6 +6,7 @@ import { cn } from "@/lib/utils";
import { authService } from "@/lib/services/auth.service"; import { authService } from "@/lib/services/auth.service";
import { useEffect, useState, useCallback } from "react"; import { useEffect, useState, useCallback } from "react";
import { KomgaLibrary, KomgaSeries } from "@/types/komga"; import { KomgaLibrary, KomgaSeries } from "@/types/komga";
import { usePreferences } from "@/contexts/PreferencesContext";
interface SidebarProps { interface SidebarProps {
isOpen: boolean; isOpen: boolean;
@@ -15,6 +16,7 @@ interface SidebarProps {
export function Sidebar({ isOpen, onClose }: SidebarProps) { export function Sidebar({ isOpen, onClose }: SidebarProps) {
const pathname = usePathname(); const pathname = usePathname();
const router = useRouter(); const router = useRouter();
const { preferences } = usePreferences();
const [libraries, setLibraries] = useState<KomgaLibrary[]>([]); const [libraries, setLibraries] = useState<KomgaLibrary[]>([]);
const [favorites, setFavorites] = useState<KomgaSeries[]>([]); const [favorites, setFavorites] = useState<KomgaSeries[]>([]);
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
@@ -79,6 +81,12 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
fetchFavorites(); fetchFavorites();
}, [fetchLibraries, 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 // Mettre à jour les favoris quand ils changent
useEffect(() => { useEffect(() => {
const handleFavoritesChange = () => { const handleFavoritesChange = () => {