Spaces:
Runtime error
Runtime error
class Chatbox { | |
constructor() { | |
this.args = { | |
openButton: document.querySelector('.chatbox__button'), | |
chatBox: document.querySelector('.chatbox__support'), | |
sendButton: document.querySelector('.send__button') | |
} | |
this.state = false; | |
this.messages = []; | |
} | |
display() { | |
const {openButton, chatBox, sendButton} = this.args; | |
openButton.addEventListener('click', () => this.toggleState(chatBox)) | |
sendButton.addEventListener('click', () => this.onSendButton(chatBox)) | |
const node = chatBox.querySelector('input'); | |
node.addEventListener("keyup", ({key}) => { | |
if (key === "Enter") { | |
this.onSendButton(chatBox) | |
} | |
}) | |
} | |
toggleState(chatbox) { | |
this.state = !this.state; | |
// show or hides the box | |
if(this.state) { | |
chatbox.classList.add('chatbox--active') | |
} else { | |
chatbox.classList.remove('chatbox--active') | |
} | |
} | |
onSendButton(chatbox) { | |
var textField = chatbox.querySelector('input'); | |
let text1 = textField.value | |
if (text1 === "") { | |
return; | |
} | |
let msg1 = { name: "User", message: text1 } | |
this.messages.push(msg1); | |
fetch('http://127.0.0.1:5000/predict', { | |
method: 'POST', | |
body: JSON.stringify({ message: text1 }), | |
mode: 'cors', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
}) | |
.then(r => r.json()) | |
.then(r => { | |
let msg2 = { name: "Sam", message: r.answer }; | |
this.messages.push(msg2); | |
this.updateChatText(chatbox) | |
textField.value = '' | |
}).catch((error) => { | |
console.error('Error:', error); | |
this.updateChatText(chatbox) | |
textField.value = '' | |
}); | |
} | |
updateChatText(chatbox) { | |
var html = ''; | |
this.messages.slice().reverse().forEach(function(item, index) { | |
if (item.name === "Sam") | |
{ | |
html += '<div class="messages__item messages__item--visitor">' + item.message + '</div>' | |
} | |
else | |
{ | |
html += '<div class="messages__item messages__item--operator">' + item.message + '</div>' | |
} | |
}); | |
const chatmessage = chatbox.querySelector('.chatbox__messages'); | |
chatmessage.innerHTML = html; | |
} | |
} | |
const chatbox = new Chatbox(); | |
chatbox.display(); |