diff --git a/src/popup/popup.js b/src/popup/popup.js index 5a912ed8a889836e943038439ce8952df30bd1a9..f8a5ac334792d68e32ada83d41a3e0977be66bec 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 b56fc56332de1dfb456a02c895b1e38be55fc017..c182726a41a5ee5521de2a6a870499398631854c 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 {