scroller fix

frdel committed Aug 6, 2025 at 21:11 UTC 9fb8cf8def6ea75e4d4c9f3ea388248ce93b7399
1 file changed +8 -13
webui/js/messages.js
+8 -13
@@ -12,7 +12,6 @@ let messageGroup = null;
12 // Simplified implementation - no complex interactions needed
13
14 export function setMessage(id, type, heading, content, temp, kvps = null) {
15 -
15 // Search for the existing message container by id
16 let messageContainer = document.getElementById(`message-${id}`);
17 let isNewMessage = false;
@@ -70,9 +69,9 @@ export function setMessage(id, type, heading, content, temp, kvps = null) {
69 messageGroup.appendChild(messageContainer);
70 chatHistory.appendChild(messageGroup);
71 }
73 -
72 +
73 // Simplified implementation - no setup needed
75 -
74 +
75 return messageContainer;
76 }
77
@@ -179,6 +178,9 @@ export function _drawMessage(
178 messageDiv.appendChild(bodyDiv);
179 }
180
181 + // reapply scroll position or autoscroll
182 + const scroller = new Scroller(bodyDiv);
183 +
184 // Handle KVPs incrementally
185 drawKvpsIncremental(bodyDiv, kvps, false);
186
@@ -205,9 +207,6 @@ export function _drawMessage(
207 processedContent = convertPathsToLinks(processedContent);
208 processedContent = addBlankTargetsToLinks(processedContent);
209
208 - // reapply scroll position or autoscroll
209 - const scroller = new Scroller(contentDiv);
210 -
210 spanElement.innerHTML = processedContent;
211
212 // KaTeX rendering for markdown
@@ -223,8 +222,6 @@ export function _drawMessage(
222 addActionButtonsToElement(contentDiv);
223 adjustMarkdownRender(contentDiv);
224
226 - // reapply scroll position or autoscroll
227 - scroller.reApplyScroll();
225 } else {
226 let preElement = bodyDiv.querySelector(".msg-content");
227 if (!preElement) {
@@ -244,16 +241,11 @@ export function _drawMessage(
241 preElement.appendChild(spanElement);
242 }
243
247 - // reapply scroll position or autoscroll
248 - const scroller = new Scroller(preElement);
249 -
244 spanElement.innerHTML = convertHTML(content);
245
246 // Ensure action buttons exist
247 addActionButtonsToElement(preElement);
248
255 - // reapply scroll position or autoscroll
256 - scroller.reApplyScroll();
249 }
250 } else {
251 // Remove content if it exists but content is empty
@@ -263,6 +255,9 @@ export function _drawMessage(
255 }
256 }
257
258 + // reapply scroll position or autoscroll
259 + scroller.reApplyScroll();
260 +
261 if (followUp) {
262 messageContainer.classList.add("message-followup");
263 }