Spaces:
Sleeping
Sleeping
File size: 4,302 Bytes
5f73f37 e56a79c 5f73f37 2da39c0 0c9f1f3 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 294ffbb 6b91e96 8170b7e 6b91e96 5f73f37 d1b90c5 dce7cd4 5f73f37 dce7cd4 5f73f37 dce7cd4 d1b90c5 dce7cd4 d1b90c5 5f73f37 dce7cd4 3d60223 912ae9b 3d60223 5309ff5 3d60223 dce7cd4 5309ff5 3d60223 5309ff5 3d60223 5309ff5 3d60223 dce7cd4 5309ff5 3b2bc6b 2da39c0 3b2bc6b 6b91e96 912ae9b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
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 [email protected].';
} 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');
|