From a3be58df348d1f71076ece9e368cdd23c3791352 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pr=C3=A9nom=20Nom?= <adresse@mail.com>
Date: Mon, 24 Feb 2025 06:46:29 +0100
Subject: [PATCH] activation ajout auto -> active stats

---
 src/background/background.js | 10 ++++++++--
 src/plugin/plugin.js         | 20 +++++++++++++++++++-
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/src/background/background.js b/src/background/background.js
index ed1098e..cd0c92e 100644
--- a/src/background/background.js
+++ b/src/background/background.js
@@ -435,12 +435,13 @@ function initWorker() {
     log("[Background] Initialisation du WebWorker...");
     try {
       worker = new Worker(browser.runtime.getURL("src/workers/pyodide_worker.js"));
-      // Centralisation de l'écoute des messages et erreurs du Worker
       worker.addEventListener("message", handleWorkerMessage);
       worker.addEventListener("error", handleWorkerError);
       log("[Background] WebWorker initialisé avec succès.");
+      // Charger Pyodide et Simplemma
+      worker.postMessage({ command: "pyodide-simplemma" });
     } catch (error) {
-      log("[Background] Échec de l'initialisation du WebWorker :", error);
+      log("[Background] Erreur lors de l'initialisation du WebWorker :", error);
     }
   }
 }
@@ -497,6 +498,11 @@ function handleWorkerMessage(event) {
 // Initialisation du worker dès le démarrage
 initWorker();
 
+browser.runtime.onStartup.addListener(() => {
+  log("[Background] Chargement de Pyodide et Simplemma au démarrage.");
+  browser.runtime.sendMessage({ command: "pyodide-simplemma" });
+});
+
 // ─────────────────────────────────────────────────────────────────────────────
 // Écoute des messages de l'extension et transmission au WebWorker
 // ─────────────────────────────────────────────────────────────────────────────
diff --git a/src/plugin/plugin.js b/src/plugin/plugin.js
index 3611b30..4464ac9 100644
--- a/src/plugin/plugin.js
+++ b/src/plugin/plugin.js
@@ -205,7 +205,7 @@ async function handleToggleExtension() {
 /**
  * Gestion du bouton d'ajout automatique
  */
-function handleAutoAddToggle() {
+async function handleAutoAddToggle() {
   const autoAddCheckbox = document.getElementById("auto-add");
   const autoAddOptions = document.getElementById("auto-add-options");
   const saveOptionsBtn = document.getElementById("save-options");
@@ -214,6 +214,14 @@ function handleAutoAddToggle() {
 
   const isAutoAddEnabled = autoAddCheckbox.checked;
 
+  // Vérifier si Pyodide et Simplemma sont prêts
+  const { pyodideSimplemmaReady } = await browser.storage.local.get("pyodideSimplemmaReady");
+    
+  if (isAutoAddEnabled && !pyodideSimplemmaReady) {
+    log("L'ajout automatique nécessite Pyodide et Simplemma : Chargement en cours...");
+    browser.runtime.sendMessage({ command: "pyodide-simplemma" });
+  }
+
   // Juste afficher ou cacher les options, mais ne pas sauvegarder dans le local storage
   autoAddOptions.classList.toggle("hidden", !isAutoAddEnabled);
   saveOptionsBtn.classList.toggle("hidden", !isAutoAddEnabled);
@@ -273,8 +281,18 @@ async function handleSaveOptions() {
     includeStopwords: stopwordsCheckbox.checked
   });
 
+  if (autoAddCheckbox.checked) {
+    const { isTrackingActive } = await browser.storage.local.get("isTrackingActive");
+    if (!isTrackingActive) {
+      log("Activation automatique des statistiques après validation.");
+      await browser.storage.local.set({ isTrackingActive: true });
+      browser.runtime.sendMessage({ command: "toggle-stats", isActive: true });
+    }
+  }
+
   await updateExtension();
   log("Options sauvegardées.");
+
 }
 
 
-- 
GitLab