57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
(function () {
|
|
const vscode = acquireVsCodeApi();
|
|
|
|
const messageInput = document.getElementById('message-input');
|
|
const sendButton = document.getElementById('send-button');
|
|
const messagesContainer = document.getElementById('messages-container');
|
|
|
|
function addMessageToUI(message, senderIconClass, actionIconClass, messageType) {
|
|
const messageElement = document.createElement('div');
|
|
messageElement.classList.add('message', messageType);
|
|
|
|
const senderIcon = document.createElement('i');
|
|
senderIcon.className = senderIconClass;
|
|
|
|
const messageText = document.createElement('span');
|
|
messageText.classList.add('message-text');
|
|
messageText.textContent = message;
|
|
|
|
const actionIcon = document.createElement('i');
|
|
actionIcon.className = actionIconClass;
|
|
|
|
messageElement.appendChild(senderIcon);
|
|
messageElement.appendChild(messageText);
|
|
messageElement.appendChild(actionIcon);
|
|
messagesContainer.appendChild(messageElement);
|
|
messagesContainer.scrollTop = messagesContainer.scrollHeight;
|
|
}
|
|
|
|
function processMessage(message) {
|
|
// Process the message and get the bot's response
|
|
// For an echo bot, return the same message
|
|
return message;
|
|
}
|
|
|
|
sendButton.addEventListener('click', () => {
|
|
const message = messageInput.value;
|
|
if (message) {
|
|
const userIconClass = 'fas fa-user-circle';
|
|
const botIconClass = 'fas fa-robot';
|
|
const actionIconClass = 'fas fa-check-circle';
|
|
|
|
addMessageToUI(message, userIconClass, actionIconClass, 'user-message');
|
|
messageInput.value = '';
|
|
|
|
const botResponse = processMessage(message);
|
|
addMessageToUI(botResponse, botIconClass, actionIconClass, 'bot-message');
|
|
}
|
|
});
|
|
|
|
messageInput.addEventListener('keypress', (event) => {
|
|
if (event.key === 'Enter') {
|
|
sendButton.click();
|
|
}
|
|
});
|
|
})();
|
|
|
|
|