correctly closing the window

This commit is contained in:
mic 2024-08-23 14:36:48 +02:00
parent 687ac698a7
commit 47a4a8c5bc
3 changed files with 9 additions and 28 deletions

View file

@ -241,20 +241,20 @@ class MessagesArea extends HTMLElement {
case "1": // do reply case "1": // do reply
// console.log("[ThunderAI] (do reply) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment); // console.log("[ThunderAI] (do reply) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment);
await browser.runtime.sendMessage({command: "chatgpt_replyMessage", text: fullTextHTMLAtAssignment, tabId: promptData.tabId, mailMessageId: promptData.mailMessageId}); await browser.runtime.sendMessage({command: "chatgpt_replyMessage", text: fullTextHTMLAtAssignment, tabId: promptData.tabId, mailMessageId: promptData.mailMessageId});
browser.runtime.sendMessage({command: "chatgpt_close"}); browser.runtime.sendMessage({command: "chatgpt_close", window_id: (await browser.windows.getCurrent()).id});
break; break;
case "2": // replace text case "2": // replace text
// console.log("[ThunderAI] (replace text) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment); // console.log("[ThunderAI] (replace text) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment);
await browser.runtime.sendMessage({command: "chatgpt_replaceSelectedText", text: fullTextHTMLAtAssignment, tabId: promptData.tabId, mailMessageId: promptData.mailMessageId}); await browser.runtime.sendMessage({command: "chatgpt_replaceSelectedText", text: fullTextHTMLAtAssignment, tabId: promptData.tabId, mailMessageId: promptData.mailMessageId});
browser.runtime.sendMessage({command: "chatgpt_close"}); browser.runtime.sendMessage({command: "chatgpt_close", window_id: (await browser.windows.getCurrent()).id});
break; break;
} }
}); });
const closeButton = document.createElement('button'); const closeButton = document.createElement('button');
closeButton.textContent = browser.i18n.getMessage("chatgpt_win_close"); closeButton.textContent = browser.i18n.getMessage("chatgpt_win_close");
closeButton.addEventListener('click', () => { closeButton.addEventListener('click', async () => {
// console.log("[ThunderAI] (close) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment); // console.log("[ThunderAI] (close) fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment);
browser.runtime.sendMessage({command: "chatgpt_close"}); // close window browser.runtime.sendMessage({command: "chatgpt_close", window_id: (await browser.windows.getCurrent()).id}); // close window
}); });
if(promptData.action != 0) { actionButtons.appendChild(actionButton); } if(promptData.action != 0) { actionButtons.appendChild(actionButton); }
actionButtons.appendChild(closeButton); actionButtons.appendChild(closeButton);

View file

@ -159,7 +159,7 @@ function addCustomDiv(prompt_action,tabId,mailMessageId) {
case "0": // close window case "0": // close window
btn_ok.textContent = browser.i18n.getMessage("chatgpt_win_close"); btn_ok.textContent = browser.i18n.getMessage("chatgpt_win_close");
btn_ok.onclick = async function() { btn_ok.onclick = async function() {
browser.runtime.sendMessage({command: "chatgpt_close"}); browser.runtime.sendMessage({command: "chatgpt_close", window_id: mztaWinId});
}; };
break; break;
case "1": // do reply case "1": // do reply

View file

@ -22,7 +22,6 @@ import { mzta_Menus } from './js/mzta-menus.js';
import { taLogger } from './js/mzta-logger.js'; import { taLogger } from './js/mzta-logger.js';
import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID } from './js/mzta-utils.js'; import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID } from './js/mzta-utils.js';
var createdWindowID = null;
var original_html = ''; var original_html = '';
var modified_html = ''; var modified_html = '';
@ -58,7 +57,7 @@ messenger.runtime.onMessage.addListener(async (message, sender, sendResponse) =>
// openChatGPT(message.prompt,message.action,message.tabId); // openChatGPT(message.prompt,message.action,message.tabId);
// return true; // return true;
case 'chatgpt_close': case 'chatgpt_close':
browser.windows.remove(createdWindowID).then(() => { browser.windows.remove(message.window_id).then(() => {
taLog.log("ChatGPT window closed successfully."); taLog.log("ChatGPT window closed successfully.");
return true; return true;
}).catch((error) => { }).catch((error) => {
@ -163,29 +162,11 @@ async function openChatGPT(promptText, action, curr_tabId, prompt_name = '', do_
}); });
taLog.log("[ThunderAI] ChatGPT web interface script started..."); taLog.log("[ThunderAI] ChatGPT web interface script started...");
createdWindowID = newWindow.id;
let createdTab = newWindow.tabs[0]; let createdTab = newWindow.tabs[0];
let newWindowId = newWindow.id;
// Wait for tab loaded. let pre_script = `let mztaWinId = `+ newWindowId +`;
// await new Promise(resolve => { let mztaStatusPageDesc="`+ browser.i18n.getMessage("prefs_status_page") +`";
// const tabIsLoaded = tab => {
// return tab.status == "complete" && tab.url != "about:blank";
// };
// const listener = (tabId, changeInfo, updatedTab) => {
// if (tabIsLoaded(updatedTab)) {
// browser.tabs.onUpdated.removeListener(listener);
// resolve();
// }
// }
// // Early exit if loaded already
// if (tabIsLoaded(createdTab)) {
// resolve();
// } else {
// browser.tabs.onUpdated.addListener(listener);
// }
// });
let pre_script = `let mztaStatusPageDesc="`+ browser.i18n.getMessage("prefs_status_page") +`";
let mztaForceCompletionDesc="`+ browser.i18n.getMessage("chatgpt_force_completion") +`"; let mztaForceCompletionDesc="`+ browser.i18n.getMessage("chatgpt_force_completion") +`";
let mztaForceCompletionTitle="`+ browser.i18n.getMessage("chatgpt_force_completion_title") +`"; let mztaForceCompletionTitle="`+ browser.i18n.getMessage("chatgpt_force_completion_title") +`";
let mztaDoCustomText=`+ do_custom_text +`; let mztaDoCustomText=`+ do_custom_text +`;