class CustomChat extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
`;
// Add event listeners after rendering
setTimeout(() => {
const sendButton = this.shadowRoot.getElementById('send-button');
const userInput = this.shadowRoot.getElementById('user-input');
const chatMessages = this.shadowRoot.getElementById('chat-messages');
const handleSend = () => {
const message = userInput.value.trim();
if (message) {
// Add user message
const userMsg = document.createElement('div');
userMsg.className = 'message user-message';
userMsg.textContent = message;
chatMessages.appendChild(userMsg);
// Get bot response
const response = window.avatarCommander.handleCommand(message);
// Add bot response after a short delay
setTimeout(() => {
const botMsg = document.createElement('div');
botMsg.className = 'message bot-message';
botMsg.textContent = response;
chatMessages.appendChild(botMsg);
chatMessages.scrollTop = chatMessages.scrollHeight;
}, 500);
userInput.value = '';
chatMessages.scrollTop = chatMessages.scrollHeight;
}
};
sendButton.addEventListener('click', handleSend);
userInput.addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
handleSend();
}
});
}, 0);
}
}
customElements.define('custom-chat', CustomChat);