filtering the prompts by type to show only the ones for the active tab (mail view or mail compose)

This commit is contained in:
mic 2024-09-14 22:34:36 +02:00
parent 421e13d72f
commit 8ebfba7fb1

View file

@ -64,7 +64,22 @@ switch (message.command) {
break; break;
case 'searchPrompt': case 'searchPrompt':
searchPrompt(message._prompts_data, message.tabId, message._tab_type); let filtering = 0;
switch(message._tab_type){
case "mail":
case "messageDisplay":
filtering = 1;
break;
case "messageCompose":
filtering = 2;
break;
default:
filtering = 0;
break;
}
let active_prompts = filterPromptsForTab(message._prompts_data, filtering);
searchPrompt(active_prompts, message.tabId, message._tab_type);
break; break;
default: default:
@ -264,3 +279,24 @@ function sendPrompt(prompt_id, tabId){
console.log(">>>>>>>>>>>>> [ThunderAI] sendPrompt: " + prompt_id); console.log(">>>>>>>>>>>>> [ThunderAI] sendPrompt: " + prompt_id);
browser.runtime.sendMessage({command: "shortcut_do_prompt", tabId: tabId, promptId: prompt_id}); browser.runtime.sendMessage({command: "shortcut_do_prompt", tabId: tabId, promptId: prompt_id});
} }
function filterPromptsForTab(prompts_data, filtering){
// If filtering is 0, return the original array without any filters (btw it should not happen)
if (filtering === 0) {
return prompts_data;
}
// Define the types to include based on the value of filtering
let allowedTypes;
if (filtering === 1) {
allowedTypes = ["0", "1"];
} else if (filtering === 2) {
allowedTypes = ["0", "2"];
} else {
// If filtering has an unexpected value, return the original data
return prompts_data;
}
// Filter the array based on the allowed types
return prompts_data.filter(prompt => allowedTypes.includes(prompt.type));
}