ayush2917 commited on
Commit
2fede38
·
verified ·
1 Parent(s): e75ce3b

Update static/js/chat.js

Browse files
Files changed (1) hide show
  1. static/js/chat.js +47 -31
static/js/chat.js CHANGED
@@ -1,49 +1,65 @@
1
  document.addEventListener('DOMContentLoaded', () => {
2
- const chatForm = document.getElementById('chat-form');
3
  const chatMessages = document.getElementById('chat-messages');
 
4
  const messageInput = document.getElementById('message-input');
5
- const comicButton = document.getElementById('comic-button');
6
  const comicStrip = document.getElementById('comic-strip');
7
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  chatForm.addEventListener('submit', async (e) => {
9
  e.preventDefault();
10
- const message = messageInput.value;
11
- chatMessages.innerHTML += `<p><strong>You:</strong> ${message}</p>`;
12
- messageInput.value = '';
 
13
 
14
- try {
15
- const response = await fetch('/chat', {
16
- method: 'POST',
17
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
18
- body: `message=${encodeURIComponent(message)}`
19
- });
20
- const data = await response.json();
21
- chatMessages.innerHTML += `<p><strong>Krishna:</strong> ${data.reply}</p>`;
22
- chatMessages.scrollTop = chatMessages.scrollHeight;
23
-
24
- // Auto-trigger comic strip if user asks for a story
25
- if (message.toLowerCase().includes('story')) {
26
- fetchComicStrip();
 
 
27
  }
28
- } catch (error) {
29
- console.error('Error sending message:', error);
30
- chatMessages.innerHTML += `<p><strong>Error:</strong> Couldn’t reach Krishna—try again!</p>`;
31
- chatMessages.scrollTop = chatMessages.scrollHeight;
32
  }
33
  });
34
 
35
- comicButton.addEventListener('click', fetchComicStrip);
36
-
37
- async function fetchComicStrip() {
38
  try {
39
  const response = await fetch('/comic');
40
  const data = await response.json();
41
- comicStrip.innerHTML = data.comic_images.map(url =>
42
- `<img src="${url}" alt="Krishna Comic Panel">`
43
- ).join('');
 
 
 
44
  } catch (error) {
45
- console.error('Error fetching comic strip:', error);
46
- comicStrip.innerHTML = `<p>Error loading comic strip—try again!</p>`;
47
  }
48
- }
49
  });
 
1
  document.addEventListener('DOMContentLoaded', () => {
 
2
  const chatMessages = document.getElementById('chat-messages');
3
+ const chatForm = document.getElementById('chat-form');
4
  const messageInput = document.getElementById('message-input');
5
+ const tellStoryButton = document.getElementById('tell-story-button');
6
  const comicStrip = document.getElementById('comic-strip');
7
 
8
+ // Clear chat messages on page load (do not load history from Firebase)
9
+ chatMessages.innerHTML = '';
10
+
11
+ // Function to add a message to the chat
12
+ function addMessage(sender, message) {
13
+ const messageElement = document.createElement('p');
14
+ messageElement.innerHTML = `<strong>${sender}:</strong> ${message}`;
15
+ chatMessages.appendChild(messageElement);
16
+ chatMessages.scrollTop = chatMessages.scrollHeight;
17
+ }
18
+
19
+ // Handle form submission (user sending a message)
20
  chatForm.addEventListener('submit', async (e) => {
21
  e.preventDefault();
22
+ const message = messageInput.value.trim();
23
+ if (message) {
24
+ // Add user's message to the chat
25
+ addMessage('You', message);
26
 
27
+ // Send message to the server
28
+ try {
29
+ const response = await fetch('/chat', {
30
+ method: 'POST',
31
+ headers: {
32
+ 'Content-Type': 'application/x-www-form-urlencoded',
33
+ },
34
+ body: `message=${encodeURIComponent(message)}`
35
+ });
36
+ const data = await response.json();
37
+ // Add Krishna's response to the chat
38
+ addMessage('Krishna', data.reply);
39
+ } catch (error) {
40
+ console.error('Error sending message:', error);
41
+ addMessage('Krishna', 'Hare Manavi! Something went wrong—let’s try again!');
42
  }
43
+
44
+ // Clear the input field
45
+ messageInput.value = '';
 
46
  }
47
  });
48
 
49
+ // Handle "Tell me a story!" button click
50
+ tellStoryButton.addEventListener('click', async () => {
 
51
  try {
52
  const response = await fetch('/comic');
53
  const data = await response.json();
54
+ comicStrip.innerHTML = '';
55
+ data.comic_images.forEach(imageUrl => {
56
+ const img = document.createElement('img');
57
+ img.src = imageUrl;
58
+ comicStrip.appendChild(img);
59
+ });
60
  } catch (error) {
61
+ console.error('Error generating comic strip:', error);
62
+ comicStrip.innerHTML = '<p>Error generating comic strip—try again!</p>';
63
  }
64
+ });
65
  });