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');