jithenderchoudary commited on
Commit
098ad88
·
verified ·
1 Parent(s): 76cb046

Update static/script.js

Browse files
Files changed (1) hide show
  1. static/script.js +113 -0
static/script.js CHANGED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ let conversation = [
2
+ { role: 'bot', message: "Hi there! I'm Chat Bot! May I know your name?" }
3
+ ];
4
+ let selectedIngredients = [];
5
+ let selectedMenuItem = null;
6
+ let cart = [];
7
+
8
+ function addMessage(role, message) {
9
+ const chatMessages = document.getElementById('chatMessages');
10
+ if (!chatMessages) {
11
+ console.error('Chat messages container not found!');
12
+ return;
13
+ }
14
+ const messageDiv = document.createElement('div');
15
+ messageDiv.className = role === 'bot' ? 'bot-message' : 'user-message';
16
+ messageDiv.textContent = message;
17
+ chatMessages.appendChild(messageDiv);
18
+ chatMessages.scrollTop = chatMessages.scrollHeight;
19
+ console.log(`Added ${role} message: ${message}`);
20
+ }
21
+
22
+ function sendMessage() {
23
+ const userInput = document.getElementById('userInput');
24
+ if (!userInput) {
25
+ console.error('User input field not found!');
26
+ return;
27
+ }
28
+ const message = userInput.value.trim();
29
+ if (message) {
30
+ addMessage('user', message);
31
+ conversation.push({ role: 'user', message: message });
32
+ userInput.value = '';
33
+ setTimeout(() => handleResponse(message), 500);
34
+ } else {
35
+ console.warn('Empty message!');
36
+ }
37
+ }
38
+
39
+ function handleResponse(userInput) {
40
+ const lastMessage = conversation[conversation.length - 1].message.toLowerCase();
41
+ let botResponse = '';
42
+ let options = [];
43
+
44
+ // Handle name input (first user response after bot's greeting)
45
+ if (conversation.length === 2 && conversation[0].role === 'bot' && conversation[0].message.includes('May I know your name?')) {
46
+ botResponse = `Nice to meet you, ${userInput}! 😊 How can I assist you today?`;
47
+ options = [
48
+ { text: 'How do I contact customer support?', class: 'blue' },
49
+ { text: 'What are your business hours?', class: 'blue' },
50
+ { text: 'How do I reset my password?', class: 'blue' }
51
+ ];
52
+ } else if (lastMessage.includes('how do i contact customer support?')) {
53
+ botResponse = 'You can email us at support@company.com.';
54
+ } else if (lastMessage.includes('what are your business hours?')) {
55
+ botResponse = 'We are open from 9 AM to 6 PM, Monday to Friday.';
56
+ } else if (lastMessage.includes('how do i reset my password?')) {
57
+ botResponse = 'Click on "Forgot Password" on the login page.';
58
+ } else {
59
+ // Fallback for unrecognized input
60
+ botResponse = "Sorry, I didn't understand that. Could you please clarify or choose an option?";
61
+ if (conversation.length === 2) {
62
+ options = [
63
+ { text: 'How do I contact customer support?', class: 'blue' },
64
+ { text: 'What are your business hours?', class: 'blue' },
65
+ { text: 'How do I reset my password?', class: 'blue' }
66
+ ];
67
+ }
68
+ }
69
+
70
+ addMessage('bot', botResponse);
71
+ if (options.length > 0) {
72
+ displayOptions(options);
73
+ }
74
+ }
75
+
76
+ function displayOptions(options) {
77
+ const chatMessages = document.getElementById('chatMessages');
78
+ if (!chatMessages) {
79
+ console.error('Chat messages container not found for options!');
80
+ return;
81
+ }
82
+
83
+ // Display each option as a chat message
84
+ options.forEach(opt => {
85
+ const messageDiv = document.createElement('div');
86
+ messageDiv.className = 'bot-message'; // This ensures the options look like bot messages
87
+ const button = document.createElement('button');
88
+ button.textContent = opt.text;
89
+ button.className = `option-button ${opt.class}`;
90
+
91
+ // When an option is clicked, treat it as a user response and trigger the appropriate handler
92
+ button.onclick = () => {
93
+ addMessage('user', opt.text);
94
+ conversation.push({ role: 'user', message: opt.text });
95
+ setTimeout(() => handleResponse(opt.text), 500);
96
+ };
97
+
98
+ messageDiv.appendChild(button);
99
+ chatMessages.appendChild(messageDiv); // Append the button inside a bot message container
100
+ });
101
+
102
+ // Scroll to the bottom of the chat container
103
+ chatMessages.scrollTop = chatMessages.scrollHeight;
104
+ }
105
+
106
+
107
+ document.getElementById('userInput').addEventListener('keypress', function(e) {
108
+ if (e.key === 'Enter') {
109
+ sendMessage();
110
+ }
111
+ });
112
+
113
+ console.log('Script loaded successfully');