sending full promptData to the frontend
This commit is contained in:
parent
9307c4742e
commit
a8f8a7e33a
2 changed files with 11 additions and 5 deletions
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue