From 99ef6749a83c75c4a2a9d2211919c727fd1918fc Mon Sep 17 00:00:00 2001
From: Lucie Bader <167515375+Lucie-Bdr@users.noreply.github.com>
Date: Wed, 12 Feb 2025 11:33:03 +0100
Subject: [PATCH] Correction beugs

---
 manifest.json                |  2 +-
 src/assets/lexicon_icon.js   | 29 +++++++++++++++++++----------
 src/background/background.js | 10 +++++++++-
 src/sidebar/sidebar.js       |  2 +-
 4 files changed, 30 insertions(+), 13 deletions(-)

diff --git a/manifest.json b/manifest.json
index a74107e..08791cc 100644
--- a/manifest.json
+++ b/manifest.json
@@ -60,7 +60,7 @@
         "src/sidebar/sidebar.js",
         "src/context_menu/custom_context_menu.js"],
       "css": ["src/context_menu/custom_context_menu.css"],
-      "run_at": "document_end"
+      "run_at": "document_idle"
     }
   ],
 
diff --git a/src/assets/lexicon_icon.js b/src/assets/lexicon_icon.js
index 5fc780a..9228f82 100644
--- a/src/assets/lexicon_icon.js
+++ b/src/assets/lexicon_icon.js
@@ -1,16 +1,25 @@
 console.log("lexicon_icon.js chargé");
 
 /**
- * Génère une couleur hexadécimale aléatoire (#RRGGBB).
- * @returns {string} Une couleur hexadécimale, ex: "#A1B2C3".
+ * Sélectionne aléatoirement une couleur dans une palette prédéfinie.
+ * @returns {string} Une couleur au format hexadécimal ou HSL.
  */
 function generateRandomColor() {
-  const letters = '0123456789ABCDEF';
-  let color = '#';
-  for (let i = 0; i < 6; i++) {
-    color += letters[Math.floor(Math.random() * 16)];
-  }
-  return color;
+  const palette = [
+    "#6e76c7", 
+    "#00a0bd", 
+    "#96cd95", 
+    "#ffeac2", 
+    "#fff6ff", 
+    "#e67e22",
+    "#20bad8",
+    "#f290e7",
+    "#f4ab9d",
+    "#f1e87a",
+    "#84e8e6"
+  ];
+  const index = Math.floor(Math.random() * palette.length);
+  return palette[index];
 }
 
 /**
@@ -18,10 +27,10 @@ function generateRandomColor() {
  * @param {string|number} lexiconId - L'identifiant du lexique.
  * @returns {Promise<string>} La couleur associée au lexique.
  */
-async function getOrCreateLexiconColor(lexiconId) {
+async function getOrCreateLexiconColor(lexiconId, forceReset = false) {
   // Récupère la correspondance stockée dans storage
   let { lexiconColors } = await browser.storage.local.get("lexiconColors");
-  if (!lexiconColors) {
+  if (!lexiconColors || forceReset) {
     lexiconColors = {};
   }
   // Si aucune couleur n'est associée à ce lexiconId, on la génère et on la sauvegarde
diff --git a/src/background/background.js b/src/background/background.js
index e1f36c5..6203313 100644
--- a/src/background/background.js
+++ b/src/background/background.js
@@ -88,11 +88,18 @@ async function actuallyOpenLoginPage() {
   browser.runtime.sendMessage({ action: "authStatusChanged", isLoggedIn: false });
 }
 
-// Déconnecte l'utilisateur (sans notification)
+// Déconnecte l'utilisateur 
 async function disconnectFromLexicalDB() {
   console.log("🔓 Déconnexion en cours...");
   await browser.storage.local.remove("accessToken");
   console.log("🔓 Token supprimé avec succès.");
+  // Réinitialiser les couleurs des lexiques dans le local storage
+  try {
+    await browser.storage.local.remove("lexiconColors");
+    console.log("Les couleurs des lexiques ont été réinitialisées dans le local storage.");
+  } catch (error) {
+    console.error("Erreur lors de la réinitialisation des couleurs :", error);
+  }
   setTimeout(async () => {
     await refreshAllUI();
   }, 500);
@@ -135,6 +142,7 @@ browser.runtime.onMessage.addListener(async (message, sender, sendResponse) => {
       const isConnected = await isUserConnected();
       if (isConnected) {
         await disconnectFromLexicalDB();
+        await browser.storage.local.remove("lexiconColors");
       } else {
         actuallyOpenLoginPage();
       }
diff --git a/src/sidebar/sidebar.js b/src/sidebar/sidebar.js
index ef05621..5d619b5 100644
--- a/src/sidebar/sidebar.js
+++ b/src/sidebar/sidebar.js
@@ -533,7 +533,7 @@ document.addEventListener("DOMContentLoaded", async () => {
     authButton.addEventListener("click", handleAuthButtonClick);
   }
 
-  const chercherDefButton = document.getElementById("chercherDef");
+  const chercherDefButton = document.querySelector("#chercherDef");
   if (chercherDefButton) {
     chercherDefButton.addEventListener("click", async () => {
       openBlock("definitionContent");
-- 
GitLab