From 43cbd2be737de83ab5e7da634de9ca244ddbdc1e Mon Sep 17 00:00:00 2001
From: Lucie Bader <167515375+Lucie-Bdr@users.noreply.github.com>
Date: Wed, 19 Feb 2025 16:06:50 +0100
Subject: [PATCH] Tentative correction beug affichage lexiques en double

---
 src/popup/popup.js     |  5 ++++-
 src/sidebar/sidebar.js | 17 ++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/popup/popup.js b/src/popup/popup.js
index 5a912ed..f8a5ac3 100644
--- a/src/popup/popup.js
+++ b/src/popup/popup.js
@@ -283,7 +283,10 @@ document.getElementById("toggleStatsBtn")?.addEventListener("click", async () =>
   if (newState) {
     browser.runtime.sendMessage({ command: "pyodide-simplemma" });
   }
-  
+  if (isUpdatingLexicons) return; 
+  isUpdatingLexicons = true;
+  await updateLexiconsDisplay(); 
+  isUpdatingLexicons = false;
   await updateExtension();
 });
 
diff --git a/src/sidebar/sidebar.js b/src/sidebar/sidebar.js
index b56fc56..c182726 100644
--- a/src/sidebar/sidebar.js
+++ b/src/sidebar/sidebar.js
@@ -10,6 +10,7 @@ log(
 // ─────────────────────────────────────────────────────────────────────────────
 let authToken = window.authToken;
 window.authToken = authToken;
+let isUpdatingLexicons = false;
 
 // ─────────────────────────────────────────────────────────────────────────────
 // ▌ Fonctions liées au token
@@ -259,6 +260,10 @@ async function displayLexiconsWithCheckbox(lexicons) {
   }
   
   for (const { lexiconName, lexiconId, active } of lexicons) {
+    if (lexiquesContainer.querySelector(`div[data-lexicon-id="${lexiconId}"]`)) {
+      continue; // Si oui, passez à l'itération suivante
+    }
+    
     const lexiqueDiv = document.createElement("div");
     lexiqueDiv.className = "lexique-item";
     
@@ -326,7 +331,6 @@ async function displayLexiconsWithCheckbox(lexicons) {
     lexiqueDiv.appendChild(labelSpan);
     lexiqueDiv.appendChild(checkboxContainer);
     lexiqueDiv.appendChild(highlightButton);
-    
     lexiquesContainer.appendChild(lexiqueDiv);
   }
   
@@ -354,6 +358,17 @@ async function displayLexiconsWithCheckbox(lexicons) {
   }, 100);
 }
 
+async function updateLexiconsDisplay() {
+  const token = await getAuthTokenFromStorage(); // Récupérer le token d'authentification
+  if (!token) {
+    console.warn("⚠️ Aucun token d'authentification disponible.");
+    return;
+  }
+
+  const lexicons = await getLexicons(token); // Récupérer les lexiques
+  await displayLexiconsWithCheckbox(lexicons); // Mettre à jour l'affichage des lexiques
+}
+
 // Ajouter une fonction pour restaurer l'état des boutons au chargement
 async function restoreHighlightingState() {
   try {
-- 
GitLab