alapl063 commited on
Commit
8503034
·
verified ·
1 Parent(s): d40b8f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -9
app.py CHANGED
@@ -135,25 +135,32 @@ with gr.Blocks(css="""
135
  gr.HTML("""
136
  <script>
137
  function scrollToLatestMessage() {
138
- let chatMessages = document.querySelectorAll('#chat-container .message');
139
- if (chatMessages.length > 0) {
140
- let lastMessage = chatMessages[chatMessages.length - 1];
141
- lastMessage.scrollIntoView({ behavior: 'smooth', block: 'end' });
 
 
 
142
  }
143
  }
144
 
145
- // Observe changes in chat messages and scroll automatically
146
- document.addEventListener("DOMContentLoaded", function() {
147
- let observer = new MutationObserver(scrollToLatestMessage);
148
- let chatContainer = document.querySelector('#chat-container');
149
  if (chatContainer) {
 
150
  observer.observe(chatContainer, { childList: true, subtree: true });
151
  }
152
- });
 
 
 
 
153
  </script>
154
  """)
155
 
156
 
 
157
 
158
 
159
  demo.launch()
 
135
  gr.HTML("""
136
  <script>
137
  function scrollToLatestMessage() {
138
+ let chatContainer = document.getElementById('chat-container');
139
+ if (chatContainer) {
140
+ let messages = chatContainer.getElementsByClassName('message');
141
+ if (messages.length > 0) {
142
+ let lastMessage = messages[messages.length - 1];
143
+ lastMessage.scrollIntoView({ behavior: 'smooth', block: 'end' });
144
+ }
145
  }
146
  }
147
 
148
+ function observeChatUpdates() {
149
+ let chatContainer = document.getElementById('chat-container');
 
 
150
  if (chatContainer) {
151
+ let observer = new MutationObserver(scrollToLatestMessage);
152
  observer.observe(chatContainer, { childList: true, subtree: true });
153
  }
154
+ }
155
+
156
+ // Ensure scroll happens every time a new message appears
157
+ document.addEventListener("DOMContentLoaded", observeChatUpdates);
158
+ setInterval(observeChatUpdates, 1000); // Reattach observer in case of UI updates
159
  </script>
160
  """)
161
 
162
 
163
+
164
 
165
 
166
  demo.launch()