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
}