Spaces:
Sleeping
Sleeping
| let conversation = [ | |
| { role: 'bot', message: "Hi there! I'm Chat Bot! May I know your name?" } | |
| ]; | |
| let selectedIngredients = []; | |
| let selectedMenuItem = null; | |
| let cart = []; | |
| function addMessage(role, message) { | |
| const chatMessages = document.getElementById('chatMessages'); | |
| if (!chatMessages) { | |
| console.error('Chat messages container not found!'); | |
| return; | |
| } | |
| const messageDiv = document.createElement('div'); | |
| messageDiv.className = role === 'bot' ? 'bot-message' : 'user-message'; | |
| messageDiv.textContent = message; | |
| chatMessages.appendChild(messageDiv); | |
| chatMessages.scrollTop = chatMessages.scrollHeight; | |
| console.log(`Added ${role} message: ${message}`); | |
| } | |
| function sendMessage() { | |
| const userInput = document.getElementById('userInput'); | |
| if (!userInput) { | |
| console.error('User input field not found!'); | |
| return; | |
| } | |
| const message = userInput.value.trim(); | |
| if (message) { | |
| addMessage('user', message); | |
| conversation.push({ role: 'user', message: message }); | |
| userInput.value = ''; | |
| setTimeout(() => handleResponse(message), 500); | |
| } else { | |
| console.warn('Empty message!'); | |
| } | |
| } | |
| function handleResponse(userInput) { | |
| const lastMessage = conversation[conversation.length - 1].message.toLowerCase(); | |
| let botResponse = ''; | |
| let options = []; | |
| // Handle name input (first user response after bot's greeting) | |
| if (conversation.length === 2 && conversation[0].role === 'bot' && conversation[0].message.includes('May I know your name?')) { | |
| botResponse = `Nice to meet you, ${userInput}! 😊 How can I assist you today?`; | |
| options = [ | |
| { text: 'How do I contact customer support?', class: 'blue' }, | |
| { text: 'What are your business hours?', class: 'blue' }, | |
| { text: 'How do I reset my password?', class: 'blue' } | |
| ]; | |
| } else if (lastMessage.includes('how do i contact customer support?')) { | |
| botResponse = 'You can email us at support@company.com.'; | |
| } else if (lastMessage.includes('what are your business hours?')) { | |
| botResponse = 'We are open from 9 AM to 6 PM, Monday to Friday.'; | |
| } else if (lastMessage.includes('how do i reset my password?')) { | |
| botResponse = 'Click on "Forgot Password" on the login page.'; | |
| } else { | |
| // Fallback for unrecognized input | |
| botResponse = "Sorry, I didn't understand that. Could you please clarify or choose an option?"; | |
| if (conversation.length === 2) { | |
| options = [ | |
| { text: 'How do I contact customer support?', class: 'blue' }, | |
| { text: 'What are your business hours?', class: 'blue' }, | |
| { text: 'How do I reset my password?', class: 'blue' } | |
| ]; | |
| } | |
| } | |
| addMessage('bot', botResponse); | |
| if (options.length > 0) { | |
| displayOptions(options); | |
| } | |
| } | |
| function displayOptions(options) { | |
| const chatMessages = document.getElementById('chatMessages'); | |
| if (!chatMessages) { | |
| console.error('Chat messages container not found for options!'); | |
| return; | |
| } | |
| // Display each option as a chat message | |
| options.forEach(opt => { | |
| const messageDiv = document.createElement('div'); | |
| messageDiv.className = 'bot-message'; // This ensures the options look like bot messages | |
| const button = document.createElement('button'); | |
| button.textContent = opt.text; | |
| button.className = `option-button ${opt.class}`; | |
| // When an option is clicked, treat it as a user response and trigger the appropriate handler | |
| button.onclick = () => { | |
| addMessage('user', opt.text); | |
| conversation.push({ role: 'user', message: opt.text }); | |
| setTimeout(() => handleResponse(opt.text), 500); | |
| }; | |
| messageDiv.appendChild(button); | |
| chatMessages.appendChild(messageDiv); // Append the button inside a bot message container | |
| }); | |
| // Scroll to the bottom of the chat container | |
| chatMessages.scrollTop = chatMessages.scrollHeight; | |
| } | |
| document.getElementById('userInput').addEventListener('keypress', function(e) { | |
| if (e.key === 'Enter') { | |
| sendMessage(); | |
| } | |
| }); | |
| console.log('Script loaded successfully'); | |