sending full promptData to the frontend

This commit is contained in:
mic 2024-07-21 23:01:53 +02:00
parent 9307c4742e
commit a8f8a7e33a
2 changed files with 11 additions and 5 deletions

View file

@ -34,6 +34,9 @@ const messageInput = document.querySelector('message-input');
messageInput.init(worker); messageInput.init(worker);
messageInput.setMessagesArea(messagesArea); messageInput.setMessagesArea(messagesArea);
// Data received from the user
let promptData = {};
const params = new URLSearchParams(window.location.search); const params = new URLSearchParams(window.location.search);
//let prefs_api_key = await browser.storage.sync.get({api_key_chatgpt: ''}); //let prefs_api_key = await browser.storage.sync.get({api_key_chatgpt: ''});
let prefs_api_key = '' // only for testing let prefs_api_key = '' // only for testing
@ -54,7 +57,7 @@ worker.onmessage = function(event) {
messagesArea.handleNewToken(payload.token); messagesArea.handleNewToken(payload.token);
break; break;
case 'tokensDone': case 'tokensDone':
messagesArea.handleTokensDone(); messagesArea.handleTokensDone(promptData);
messageInput.handleMessageSent(); messageInput.handleMessageSent();
break; break;
case 'error': case 'error':
@ -70,6 +73,7 @@ browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
//console.log(">>>>>>>>>>>>> controller.js onMessage: " + JSON.stringify(message)); //console.log(">>>>>>>>>>>>> controller.js onMessage: " + JSON.stringify(message));
if (message.command === "chatgpt_send") { if (message.command === "chatgpt_send") {
//send the received prompt to the chatgpt api //send the received prompt to the chatgpt api
promptData = message;
messageInput._setMessageInputValue(message.prompt); messageInput._setMessageInputValue(message.prompt);
messageInput._handleNewChatMessage(); messageInput._handleNewChatMessage();
} }

View file

@ -100,9 +100,9 @@ class MessagesArea extends HTMLElement {
this.worker = worker; this.worker = worker;
} }
handleTokensDone() { handleTokensDone(promptData = null) {
this.flushAccumulatingMessage(); this.flushAccumulatingMessage();
this.addActionButtons(); this.addActionButtons(promptData);
} }
appendUserMessage(messageText, source="You") { appendUserMessage(messageText, source="You") {
@ -140,13 +140,15 @@ class MessagesArea extends HTMLElement {
this.messages.scrollTop = this.messages.scrollHeight; 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'); const actionButtons = document.createElement('div');
actionButtons.classList.add('action-buttons'); actionButtons.classList.add('action-buttons');
const actionButton = document.createElement('button'); const actionButton = document.createElement('button');
actionButton.textContent = 'Send'; actionButton.textContent = 'Send';
actionButton.addEventListener('click', () => { actionButton.addEventListener('click', () => {
alert(this.fullTextHTML); alert('action: ' + promptData.action);
}); });
actionButtons.appendChild(actionButton); actionButtons.appendChild(actionButton);
this.messages.appendChild(actionButtons); this.messages.appendChild(actionButtons);