mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2025-12-06 07:12:10 +01:00
Fix chat area sometimes not scrolling up to edit message
This commit is contained in:
parent
75da90190f
commit
4cf39120fc
|
|
@ -95,12 +95,21 @@ function startEditing(messageElement, messageBody, isUserMessage) {
|
||||||
editingInterface.textarea.focus();
|
editingInterface.textarea.focus();
|
||||||
editingInterface.textarea.setSelectionRange(rawText.length, rawText.length);
|
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
|
// Scroll the textarea into view
|
||||||
editingInterface.textarea.scrollIntoView({
|
editingInterface.textarea.scrollIntoView({
|
||||||
behavior: "smooth",
|
behavior: "smooth",
|
||||||
block: "center"
|
block: "center"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Restore the original scroll state after animation
|
||||||
|
setTimeout(() => {
|
||||||
|
window.isScrolled = wasScrolled;
|
||||||
|
}, 500);
|
||||||
|
|
||||||
// Setup event handlers
|
// Setup event handlers
|
||||||
setupEditingHandlers(editingInterface.textarea, messageElement, originalHTML, messageBody, isUserMessage);
|
setupEditingHandlers(editingInterface.textarea, messageElement, originalHTML, messageBody, isUserMessage);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ typingSibling.insertBefore(typing, typingSibling.childNodes[2]);
|
||||||
const targetElement = document.getElementById("chat").parentNode.parentNode.parentNode;
|
const targetElement = document.getElementById("chat").parentNode.parentNode.parentNode;
|
||||||
targetElement.classList.add("pretty_scrollbar");
|
targetElement.classList.add("pretty_scrollbar");
|
||||||
targetElement.classList.add("chat-parent");
|
targetElement.classList.add("chat-parent");
|
||||||
let isScrolled = false;
|
window.isScrolled = false;
|
||||||
let scrollTimeout;
|
let scrollTimeout;
|
||||||
|
|
||||||
targetElement.addEventListener("scroll", function() {
|
targetElement.addEventListener("scroll", function() {
|
||||||
|
|
@ -154,9 +154,9 @@ targetElement.addEventListener("scroll", function() {
|
||||||
|
|
||||||
let diff = targetElement.scrollHeight - targetElement.clientHeight;
|
let diff = targetElement.scrollHeight - targetElement.clientHeight;
|
||||||
if(Math.abs(targetElement.scrollTop - diff) <= 10 || diff == 0) {
|
if(Math.abs(targetElement.scrollTop - diff) <= 10 || diff == 0) {
|
||||||
isScrolled = false;
|
window.isScrolled = false;
|
||||||
} else {
|
} else {
|
||||||
isScrolled = true;
|
window.isScrolled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear previous timeout and set new one
|
// Clear previous timeout and set new one
|
||||||
|
|
@ -182,7 +182,7 @@ const observer = new MutationObserver(function(mutations) {
|
||||||
|
|
||||||
doSyntaxHighlighting();
|
doSyntaxHighlighting();
|
||||||
|
|
||||||
if (!isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) {
|
if (!window.isScrolled && targetElement.scrollTop !== targetElement.scrollHeight) {
|
||||||
targetElement.scrollTop = targetElement.scrollHeight;
|
targetElement.scrollTop = targetElement.scrollHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue