Handle multi-page selected message lists
This commit is contained in:
parent
5d87ec658d
commit
0c105cb6e4
1 changed files with 22 additions and 4 deletions
|
@ -185,6 +185,20 @@ function updateTimingStats(elapsed) {
|
||||||
t.m2 += delta * (elapsed - t.mean);
|
t.m2 += delta * (elapsed - t.mean);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getAllMessageIds(list) {
|
||||||
|
const ids = [];
|
||||||
|
if (!list) {
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
let page = list;
|
||||||
|
ids.push(...(page.messages || []).map(m => m.id));
|
||||||
|
while (page.id) {
|
||||||
|
page = await messenger.messages.continueList(page.id);
|
||||||
|
ids.push(...(page.messages || []).map(m => m.id));
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
async function processMessage(id) {
|
async function processMessage(id) {
|
||||||
processing = true;
|
processing = true;
|
||||||
currentStart = Date.now();
|
currentStart = Date.now();
|
||||||
|
@ -409,12 +423,16 @@ async function clearCacheForMessages(idsInput) {
|
||||||
|
|
||||||
browser.menus.onClicked.addListener(async (info, tab) => {
|
browser.menus.onClicked.addListener(async (info, tab) => {
|
||||||
if (info.menuItemId === "apply-ai-rules-list" || info.menuItemId === "apply-ai-rules-display") {
|
if (info.menuItemId === "apply-ai-rules-list" || info.menuItemId === "apply-ai-rules-display") {
|
||||||
const ids = info.selectedMessages?.messages?.map(m => m.id) ||
|
let ids = info.messageId ? [info.messageId] : [];
|
||||||
(info.messageId ? [info.messageId] : []);
|
if (info.selectedMessages) {
|
||||||
|
ids = await getAllMessageIds(info.selectedMessages);
|
||||||
|
}
|
||||||
await applyAiRules(ids);
|
await applyAiRules(ids);
|
||||||
} else if (info.menuItemId === "clear-ai-cache-list" || info.menuItemId === "clear-ai-cache-display") {
|
} else if (info.menuItemId === "clear-ai-cache-list" || info.menuItemId === "clear-ai-cache-display") {
|
||||||
const ids = info.selectedMessages?.messages?.map(m => m.id) ||
|
let ids = info.messageId ? [info.messageId] : [];
|
||||||
(info.messageId ? [info.messageId] : []);
|
if (info.selectedMessages) {
|
||||||
|
ids = await getAllMessageIds(info.selectedMessages);
|
||||||
|
}
|
||||||
await clearCacheForMessages(ids);
|
await clearCacheForMessages(ids);
|
||||||
} else if (info.menuItemId === "view-ai-reason-list" || info.menuItemId === "view-ai-reason-display") {
|
} else if (info.menuItemId === "view-ai-reason-list" || info.menuItemId === "view-ai-reason-display") {
|
||||||
const [header] = await browser.messageDisplay.getDisplayedMessages(tab.id);
|
const [header] = await browser.messageDisplay.getDisplayedMessages(tab.id);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue