From d3fb8413410019048d09f0bd9e882bda0ea97db6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pr=C3=A9nom=20Nom?= <adresse@mail.com>
Date: Mon, 24 Feb 2025 03:59:27 +0100
Subject: [PATCH] correction erreur ouverture stats.html

---
 src/background/background.js |  4 ++--
 src/plugin/plugin.js         | 37 +++++++++++++++++++++++++++---------
 2 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/src/background/background.js b/src/background/background.js
index c384f37..9771adb 100644
--- a/src/background/background.js
+++ b/src/background/background.js
@@ -53,7 +53,7 @@ browser.storage.onChanged.addListener((changes, area) => {
         if (!extensionActive) {
           log("Token ajouté, activation automatique de l'extension.");
           browser.storage.local.set({ extensionActive: true }); // Met à jour l'état de l'extension
-          updateExtension(); // Met à jour les fonctionnalités de l'extension
+          // updateExtension(); // Met à jour les fonctionnalités de l'extension
          // Envoie un message pour mettre à jour l'interface utilisateur
           browser.runtime.sendMessage({
             action: "updateUI",
@@ -195,7 +195,7 @@ async function saveToken(token) {
   const { extensionActive } = await browser.storage.local.get("extensionActive");
   if (!extensionActive) {
     await browser.storage.local.set({ extensionActive: true }); // Met à jour l'état de l'extension
-    updateExtension(); // Met à jour les fonctionnalités de l'extension    
+    // updateExtension(); // Met à jour les fonctionnalités de l'extension    
     browser.runtime.sendMessage({
       action: "updateUI",
       extensionActive: true,
diff --git a/src/plugin/plugin.js b/src/plugin/plugin.js
index 1574f7c..3611b30 100644
--- a/src/plugin/plugin.js
+++ b/src/plugin/plugin.js
@@ -90,20 +90,42 @@ function setupEventListeners() {
   // Sauvegarde des options
   document.getElementById("save-options")?.addEventListener("click", handleSaveOptions);
 
-  // Ouverture de la page des statistiques
+  // Ouverture de la page des statistiques via le bouton "Afficher les statistiques"
   document.getElementById("open-stats")?.addEventListener("click", () => {
     openStatsPage();
   });
+  
+  // Ouverture de la page des statistiques via le bouton "Désactiver les statistiques"
+  document.getElementById("toggleStatsBtn")?.addEventListener("click", async () => {
+    const { isTrackingActive } = await browser.storage.local.get({ isTrackingActive: false });
+    if (isTrackingActive) {
+      openStatsPage().catch(err =>
+        console.error("Erreur lors de l'ouverture de stats.html :", err)
+      );
+    }
+  });
 }
 
+/**
+ * Ouverture de la fenêtre de stats
+ */
 function openStatsPage() {
-  window.open("stats.html");
-  log("Ouverture de la page de statistiques :")
+  return new Promise((resolve, reject) => {
+    try {
+      const newWindow = window.open("stats.html");
+      if (!newWindow) {
+        reject(new Error("L'ouverture de stats.html a échoué (pop-up peut-être bloquée)"));
+      } else {
+        log("Ouverture de la page de statistiques");
+        resolve(newWindow);
+      }
+    } catch (err) {
+      reject(err);
+    }
+  });
 }
 
 
-
-
 /**
  * Gestion de la connexion / déconnexion
  */
@@ -145,13 +167,10 @@ async function handleStatsToggle() {
   log("Nouvel état des statistiques :", newState);
   // Envoi du message de mise à jour
   browser.runtime.sendMessage({ command: "toggle-stats", isActive: newState });
-  // Ouvrir la page des statistiques si désactivé
-  if (!newState) {
-    openStatsPage(); 
-  }
   // Exécution de Pyodide si nécessaire
   if (newState) {
     browser.runtime.sendMessage({ command: "pyodide-simplemma" });
+    // Si on active le suivi, ouvrir la page des statistiques
   } else {
     // Désactivation : envoyer le message de désactivation à l'onglet actif
     notifyAllTabs({ command: "deactivate-stats" });
-- 
GitLab