"use client"; import { useState } from "react"; import { useTranslate } from "@/hooks/useTranslate"; import { useToast } from "@/components/ui/use-toast"; import { Trash2, Loader2 } from "lucide-react"; import { CacheModeSwitch } from "@/components/settings/CacheModeSwitch"; import { Label } from "@/components/ui/label"; import { TTLConfigData } from "@/types/komga"; interface CacheSettingsProps { initialTTLConfig: TTLConfigData | null; } export function CacheSettings({ initialTTLConfig }: CacheSettingsProps) { const { t } = useTranslate(); const { toast } = useToast(); const [isCacheClearing, setIsCacheClearing] = useState(false); const [ttlConfig, setTTLConfig] = useState( initialTTLConfig || { defaultTTL: 5, homeTTL: 5, librariesTTL: 1440, seriesTTL: 5, booksTTL: 5, imagesTTL: 1440, } ); const handleClearCache = async () => { setIsCacheClearing(true); try { const response = await fetch("/api/komga/cache/clear", { method: "POST", }); if (!response.ok) { const data = await response.json(); throw new Error(data.error || t("settings.cache.error.message")); } toast({ title: t("settings.cache.title"), description: t("settings.cache.messages.cleared"), }); } catch (error) { console.error("Erreur:", error); toast({ variant: "destructive", title: t("settings.cache.error.title"), description: t("settings.cache.error.message"), }); } finally { setIsCacheClearing(false); } }; const handleTTLChange = (event: React.ChangeEvent) => { const { name, value } = event.target; setTTLConfig((prev) => ({ ...prev, [name]: parseInt(value || "0", 10), })); }; const handleSaveTTL = async (event: React.FormEvent) => { event.preventDefault(); try { const response = await fetch("/api/komga/ttl-config", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(ttlConfig), }); if (!response.ok) { const data = await response.json(); throw new Error(data.error || t("settings.cache.error.message")); } toast({ title: t("settings.cache.title"), description: t("settings.cache.messages.ttlSaved"), }); } catch (error) { console.error("Erreur lors de la sauvegarde:", error); toast({ variant: "destructive", title: t("settings.cache.error.title"), description: t("settings.cache.error.messagettl"), }); } }; return (

{t("settings.cache.title")}

{t("settings.cache.description")}

{t("settings.cache.mode.description")}

{/* Formulaire TTL */}
); }