Skip to content
Snippets Groups Projects
Commit 346252ed authored by Lucie Bader's avatar Lucie Bader
Browse files

Correction affichage options menu contextuel navigateur

parent ce3a0d1a
No related branches found
No related tags found
1 merge request!4Définitions (lexiques de l'utilisateur + Wiktionnaire)
......@@ -254,30 +254,6 @@ async function createBrowserContextMenu() {
await browser.contextMenus.removeAll();
const isConnected = await isUserConnected();
// Si connecté : options supplémentaires pour le lexique
if (isConnected) {
browser.contextMenus.create({
id: "searchLexicon",
title: "Vérifier si le mot est dans le lexique personnel",
contexts: ["selection"],
});
browser.contextMenus.create({
id: "checkLexicon",
title: "Afficher dans quels lexiques le mot est présent",
contexts: ["selection"],
});
browser.contextMenus.create({
id: "getDefinition",
title: "Obtenir une définition à partir de mes lexiques",
contexts: ["selection"],
});
}
// Option pour rechercher sur le Wiktionnaire (accessible à tous)
browser.contextMenus.create({
id: "getDefinitionWiki",
title: "Rechercher une définition sur le Wiktionnaire",
contexts: ["selection"],
});
// Bouton de connexion/déconnexion
browser.contextMenus.create({
id: "login",
......
......@@ -21,18 +21,10 @@ loadAuthToken();
// ▌ Création du menu contextuel du navigateur
// ─────────────────────────────────────────────────────────────────────────────
// 1. Vérifier si le mot est dans le lexique
browser.contextMenus.create({
id: "searchLexicon",
title: "Ce mot est-il dans mon lexique ?",
contexts: ["selection"],
icons: { "16": "icons/recherche_lexique.png" },
});
// 2. Vérifier dans quels lexiques le mot est présent
browser.contextMenus.create({
id: "checkLexicon",
title: "Afficher dans quel(s) lexique(s) ce mot est présent",
id: "searchInLexicons",
title: "Rechercher dans mes lexiques",
contexts: ["selection"],
icons: { "16": "icons/quel_lexique.png" },
});
......@@ -76,27 +68,17 @@ browser.contextMenus.onClicked.addListener(async (info, tab) => {
console.log(`📩 Texte sélectionné dans le menu du navigateur : ${info.selectionText}`);
switch (info.menuItemId) {
// 1) Vérifier si le mot est dans le lexique
case "searchLexicon":
console.log("🔍 Recherche dans le lexique :", info.selectionText);
// Recherche dans les lexiques de l’utilisateur
case "searchInLexicons":
console.log("🔍 Recherche du mot dans les lexiques :", info.selectionText);
if (authToken) {
await searchLexicon(info.selectionText);
await searchInLexicons(info.selectionText);
} else {
alert("⚠️ Vous devez être connecté pour utiliser cette fonction.");
}
break;
// 2) Vérifier dans quels lexiques le mot est présent
case "checkLexicon":
console.log("📋 Vérification des lexiques :", info.selectionText);
if (authToken) {
await checkLexicon(info.selectionText);
} else {
alert("⚠️ Vous devez être connecté pour utiliser cette fonction.");
}
break;
// 4) Un seul bouton pour une définition (Lexiques + Wiki)
// Un seul bouton pour une définition (Lexiques + Wiki)
case "getDefinitionAll":
console.log("🌐 Recherche de définition :", info.selectionText);
await getDefinitionAll(info.selectionText);
......@@ -222,7 +204,7 @@ async function getDefinitionFromWiktionary(selectedText) {
*/
async function searchLexicon(selectedText) {
try {
const lexicons = await getUserLexicons(authToken);
const lexicons = await getLexicons(authToken);
console.log("📚 Lexiques récupérés :", lexicons);
const frenchLexicon = lexicons.find((lexicon) => lexicon.language === "fr");
......@@ -270,6 +252,44 @@ async function checkLexicon(selectedText) {
}
}
// ─────────────────────────────────────────────────────────────────────────────
// ▌ Fonction combinée : Recherche du mot dans les lexiques
// ─────────────────────────────────────────────────────────────────────────────
async function searchInLexicons(selectedText) {
try {
console.log("🔎 Vérification des lexiques pour :", selectedText);
const lexicons = await getLexiconEntries(authToken);
if (!lexicons.length) {
alert("⚠️ Aucun lexique disponible.");
return;
}
let foundInLexicons = [];
for (const lexicon of lexicons) {
const entries = await getLexiconEntries(authToken, lexicon.id);
const isWordPresent = entries.some(
(entry) => entry.graphy.toLowerCase() === selectedText.toLowerCase()
);
if (isWordPresent) {
foundInLexicons.push(lexicon.name);
}
}
if (foundInLexicons.length > 0) {
alert(`✅ Le mot "${selectedText}" est présent dans les lexiques suivants :\n\n- ${foundInLexicons.join("\n- ")}`);
} else {
alert(`❌ Le mot "${selectedText}" n'est pas présent dans vos lexiques.`);
}
} catch (error) {
console.error("❌ Erreur lors de la recherche dans les lexiques :", error);
alert("❌ Une erreur est survenue lors de la recherche.");
}
}
// ─────────────────────────────────────────────────────────────────────────────
// ▌ Listeners supplémentaires
// ─────────────────────────────────────────────────────────────────────────────
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment