From 4c676cfd16c07f5d3ff749eb852f8abc48b80db0 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Thu, 3 Apr 2025 10:42:19 +0200 Subject: [PATCH] feat: add service worker cache clearing functionality and update French translations --- src/components/settings/CacheSettings.tsx | 41 +++++++++++++++++++++++ src/i18n/messages/fr/common.json | 10 ++++-- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/components/settings/CacheSettings.tsx b/src/components/settings/CacheSettings.tsx index ef63a4f..41ebdb4 100644 --- a/src/components/settings/CacheSettings.tsx +++ b/src/components/settings/CacheSettings.tsx @@ -16,6 +16,7 @@ export function CacheSettings({ initialTTLConfig }: CacheSettingsProps) { const { t } = useTranslate(); const { toast } = useToast(); const [isCacheClearing, setIsCacheClearing] = useState(false); + const [isServiceWorkerClearing, setIsServiceWorkerClearing] = useState(false); const [ttlConfig, setTTLConfig] = useState( initialTTLConfig || { defaultTTL: 5, @@ -56,6 +57,29 @@ export function CacheSettings({ initialTTLConfig }: CacheSettingsProps) { } }; + const handleClearServiceWorkerCache = async () => { + setIsServiceWorkerClearing(true); + try { + if ("serviceWorker" in navigator && "caches" in window) { + const cacheNames = await caches.keys(); + await Promise.all(cacheNames.map((cacheName) => caches.delete(cacheName))); + toast({ + title: t("settings.cache.title"), + description: t("settings.cache.messages.serviceWorkerCleared"), + }); + } + } catch (error) { + console.error("Erreur lors de la suppression des caches:", error); + toast({ + variant: "destructive", + title: t("settings.cache.error.title"), + description: t("settings.cache.error.serviceWorkerMessage"), + }); + } finally { + setIsServiceWorkerClearing(false); + } + }; + const handleTTLChange = (event: React.ChangeEvent) => { const { name, value } = event.target; setTTLConfig((prev) => ({ @@ -225,6 +249,23 @@ export function CacheSettings({ initialTTLConfig }: CacheSettingsProps) { )} +
+ +
diff --git a/src/i18n/messages/fr/common.json b/src/i18n/messages/fr/common.json index 449cdf8..85231c6 100644 --- a/src/i18n/messages/fr/common.json +++ b/src/i18n/messages/fr/common.json @@ -126,16 +126,20 @@ "buttons": { "saveTTL": "Sauvegarder les TTL", "clear": "Vider le cache", - "clearing": "Suppression..." + "clearing": "Suppression...", + "clearServiceWorker": "Vider le cache du service worker", + "clearingServiceWorker": "Suppression du cache service worker..." }, "messages": { "ttlSaved": "La configuration des TTL a été sauvegardée avec succès", - "cleared": "Cache serveur supprimé avec succès" + "cleared": "Cache serveur supprimé avec succès", + "serviceWorkerCleared": "Cache du service worker supprimé avec succès" }, "error": { "title": "Erreur lors de la suppression du cache", "message": "Une erreur est survenue lors de la suppression du cache", - "ttl": "Erreur lors de la sauvegarde de la configuration TTL" + "ttl": "Erreur lors de la sauvegarde de la configuration TTL", + "serviceWorkerMessage": "Une erreur est survenue lors de la suppression du cache du service worker" } } },