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.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();
}

View file

@ -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);