Spaces:
Sleeping
Sleeping
File size: 4,904 Bytes
5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 6b91e96 5f73f37 67eb455 6b91e96 |
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 115 116 117 118 119 120 121 122 123 124 125 126 127 |
let conversation = [
{ role: 'bot', message: 'Hi there! I\'m Chef Bot! May I know your name?' }
];
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 = [];
if (conversation.length === 2) { // After name input
botResponse = `Nice to meet you, ${userInput}! 😊 Let's create your perfect meal! What type of food would you prefer?`;
options = [
{ text: 'Vegetarian', class: 'green' },
{ text: 'Non-Vegetarian', class: 'red' }
];
} else if (lastMessage.includes('vegetarian')) {
botResponse = 'Great choice! 🍽️ We have some amazing vegetarian options! What\'s your dietary preference?';
options = [
{ text: 'Vegan', class: '' },
{ text: 'Gluten-Free', class: '' },
{ text: 'Vegetarian', class: '' },
{ text: 'Low Carb', class: '' },
{ text: 'Dairy-Free', class: '' },
{ text: 'Keto', class: '' },
{ text: 'Halal', class: '' }
];
} else if (lastMessage.includes('non-vegetarian')) {
botResponse = 'Great choice! 🍽️ We have some amazing non-vegetarian options! What\'s your dietary preference?';
options = [
{ text: 'Low Carb', class: '' },
{ text: 'Dairy-Free', class: '' },
{ text: 'Keto', class: '' },
{ text: 'Halal', class: '' }
];
} else if (lastMessage.includes('low carb') || lastMessage.includes('dairy-free') || lastMessage.includes('keto') || lastMessage.includes('halal') || lastMessage.includes('gluten-free') || lastMessage.includes('vegan')) {
botResponse = 'Wonderful choice! 😊 Let\'s pick your favorite ingredients:';
options = [
{ text: 'Potatoes', class: '' },
{ text: 'Tomatoes', class: '' },
{ text: 'Spinach', class: '' },
{ text: 'Cauliflower', class: '' },
{ text: 'Paneer', class: '' },
{ text: 'Tofu', class: '' }
];
}
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;
}
options.forEach(opt => {
const button = document.createElement('button');
button.textContent = opt.text;
button.className = `option-button ${opt.class}`;
button.onclick = () => {
addMessage('user', opt.text);
conversation.push({ role: 'user', message: opt.text });
chatMessages.innerHTML = ''; // Clear previous messages
conversation.forEach(msg => addMessage(msg.role, msg.message));
setTimeout(() => handleResponse(opt.text), 500);
};
chatMessages.appendChild(button);
});
chatMessages.appendChild(document.createElement('br'));
const backButton = document.createElement('button');
backButton.textContent = 'Go Back';
backButton.className = 'option-button';
backButton.onclick = () => {
conversation.pop(); // Remove last user input
chatMessages.innerHTML = ''; // Clear previous messages
conversation.forEach(msg => addMessage(msg.role, msg.message));
setTimeout(() => handleResponse(conversation[conversation.length - 1].message), 500);
};
chatMessages.appendChild(backButton);
}
// Add event listener for Enter key
document.getElementById('userInput').addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
sendMessage();
}
});
// Initial load check
console.log('Script loaded successfully'); |