From 2ec29d07ab0d37967089776d04722cc261666b23 Mon Sep 17 00:00:00 2001 From: odentas Date: Thu, 4 Dec 2025 18:55:46 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Pr=C3=A9server=20la=20pr=C3=A9f=C3=A9ren?= =?UTF-8?q?ce=20du=20popup=20de=20confidentialit=C3=A9=20lors=20de=20la=20?= =?UTF-8?q?d=C3=A9connexion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le popup de confidentialité réapparaissait systématiquement après chaque déconnexion/reconnexion car localStorage.clear() supprimait la clé 'odentas_info_suivi_ack_v1'. Solution: Sauvegarder et restaurer cette clé lors du nettoyage du localStorage dans LogoutButton.tsx. Fixes: Popup s'affiche plusieurs fois par jour au lieu d'une seule fois --- POPUP_INFO_SUIVI.md | 2 ++ components/LogoutButton.tsx | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/POPUP_INFO_SUIVI.md b/POPUP_INFO_SUIVI.md index ce22d85..175e823 100644 --- a/POPUP_INFO_SUIVI.md +++ b/POPUP_INFO_SUIVI.md @@ -175,6 +175,8 @@ Pour suivre l'utilisation du popup avec PostHog : 2. Le localStorage a été effacé (navigation privée, clear cookies) 3. Vérifier que la clé de stockage n'a pas changé +**⚠️ Bug corrigé (décembre 2024)** : Le popup réapparaissait à chaque déconnexion/reconnexion car le `LogoutButton` appelait `localStorage.clear()`, ce qui supprimait la clé `odentas_info_suivi_ack_v1`. Solution : sauvegarder et restaurer cette clé lors du nettoyage du localStorage. + ### Animation saccadée 1. Vérifier la version de framer-motion 2. Désactiver les extensions de navigateur qui peuvent bloquer les animations diff --git a/components/LogoutButton.tsx b/components/LogoutButton.tsx index 8a2716f..1cb12e5 100644 --- a/components/LogoutButton.tsx +++ b/components/LogoutButton.tsx @@ -32,6 +32,9 @@ export default function LogoutButton({ variant = "default", className }: { varia // 3. Nettoyage complet côté client (au cas où il resterait des données) try { + // Sauvegarder la préférence du popup de confidentialité avant le nettoyage + const privacyAck = localStorage.getItem("odentas_info_suivi_ack_v1"); + // Nettoyer localStorage localStorage.removeItem("company_name"); localStorage.removeItem("company_api_name"); @@ -43,6 +46,11 @@ export default function LogoutButton({ variant = "default", className }: { varia // Nettoyer tout autre stockage local si nécessaire localStorage.clear(); sessionStorage.clear(); + + // Restaurer la préférence du popup de confidentialité + if (privacyAck) { + localStorage.setItem("odentas_info_suivi_ack_v1", privacyAck); + } } catch (error) { console.warn("Erreur lors du nettoyage local:", error); }