Fix chat area sometimes not scrolling up to edit message

This commit is contained in:
oobabooga 2025-06-10 18:03:00 -07:00
parent 75da90190f
commit 4cf39120fc
2 changed files with 13 additions and 4 deletions

View file

@ -95,12 +95,21 @@ function startEditing(messageElement, messageBody, isUserMessage) {
editingInterface.textarea.focus();
editingInterface.textarea.setSelectionRange(rawText.length, rawText.length);
// Temporarily mark as scrolled to prevent auto-scroll
const wasScrolled = window.isScrolled;
window.isScrolled = true;
// Scroll the textarea into view
editingInterface.textarea.scrollIntoView({
behavior: "smooth",
block: "center"
});
// Restore the original scroll state after animation
setTimeout(() => {
window.isScrolled = wasScrolled;
}, 500);
// Setup event handlers
setupEditingHandlers(editingInterface.textarea, messageElement, originalHTML, messageBody, isUserMessage);
}

View file

@ -145,7 +145,7 @@ typingSibling.insertBefore(typing, typingSibling.childNodes[2]);
const targetElement = document.getElementById("chat").parentNode.parentNode.parentNode;
targetElement.classList.add("pretty_scrollbar");
targetElement.classList.add("chat-parent");
let isScrolled = false;
window.isScrolled = false;
let scrollTimeout;
targetElement.addEventListener("scroll", function() {
@ -154,9 +154,9 @@ targetElement.addEventListener("scroll", function() {
let diff = targetElement.scrollHeight - targetElement.clientHeight;
if(Math.abs(targetElement.scrollTop - diff) <= 10 || diff == 0) {
isScrolled = false;
window.isScrolled = false;
} else {
isScrolled = true;
window.isScrolled = true;
}
// Clear previous timeout and set new one
@ -182,7 +182,7 @@ const observer = new MutationObserver(function(mutations) {
doSyntaxHighlighting();
if (!isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) {
if (!window.isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) {
targetElement.scrollTop = targetElement.scrollHeight;
}