diff --git a/api_webchat/controller.js b/api_webchat/controller.js index 7299a543..7a1de0ff 100644 --- a/api_webchat/controller.js +++ b/api_webchat/controller.js @@ -34,6 +34,9 @@ const messageInput = document.querySelector('message-input'); messageInput.init(worker); messageInput.setMessagesArea(messagesArea); +// Data received from the user +let promptData = {}; + const params = new URLSearchParams(window.location.search); //let prefs_api_key = await browser.storage.sync.get({api_key_chatgpt: ''}); let prefs_api_key = '' // only for testing @@ -54,7 +57,7 @@ worker.onmessage = function(event) { messagesArea.handleNewToken(payload.token); break; case 'tokensDone': - messagesArea.handleTokensDone(); + messagesArea.handleTokensDone(promptData); messageInput.handleMessageSent(); break; case 'error': @@ -70,6 +73,7 @@ browser.runtime.onMessage.addListener((message, sender, sendResponse) => { //console.log(">>>>>>>>>>>>> controller.js onMessage: " + JSON.stringify(message)); if (message.command === "chatgpt_send") { //send the received prompt to the chatgpt api + promptData = message; messageInput._setMessageInputValue(message.prompt); messageInput._handleNewChatMessage(); } diff --git a/api_webchat/messagesArea.js b/api_webchat/messagesArea.js index bae388c1..af72617b 100644 --- a/api_webchat/messagesArea.js +++ b/api_webchat/messagesArea.js @@ -100,9 +100,9 @@ class MessagesArea extends HTMLElement { this.worker = worker; } - handleTokensDone() { + handleTokensDone(promptData = null) { this.flushAccumulatingMessage(); - this.addActionButtons(); + this.addActionButtons(promptData); } appendUserMessage(messageText, source="You") { @@ -140,13 +140,15 @@ class MessagesArea extends HTMLElement { this.messages.scrollTop = this.messages.scrollHeight; } - addActionButtons() { + addActionButtons(promptData = null) { + if(promptData == null) { return; } + if(promptData.action == 0) { return; } // No action needed const actionButtons = document.createElement('div'); actionButtons.classList.add('action-buttons'); const actionButton = document.createElement('button'); actionButton.textContent = 'Send'; actionButton.addEventListener('click', () => { - alert(this.fullTextHTML); + alert('action: ' + promptData.action); }); actionButtons.appendChild(actionButton); this.messages.appendChild(actionButtons);