This commit is contained in:
serversdwn
2025-12-29 22:44:47 -05:00
parent a900110fe4
commit 6716245a99
7 changed files with 102 additions and 36 deletions

View File

@@ -225,8 +225,10 @@
history = Array.isArray(data) ? data : [];
const messagesEl = document.getElementById("messages");
messagesEl.innerHTML = "";
history.forEach(m => addMessage(m.role, m.content));
addMessage("system", `📂 Loaded session: ${getSessionName(id)}${history.length} message(s)`);
history.forEach(m => addMessage(m.role, m.content, false)); // Don't auto-scroll for each message
addMessage("system", `📂 Loaded session: ${getSessionName(id)}${history.length} message(s)`, false);
// Scroll to bottom after all messages are loaded
messagesEl.scrollTo({ top: messagesEl.scrollHeight, behavior: "smooth" });
} catch (e) {
addMessage("system", `Failed to load session: ${e.message}`);
}
@@ -299,7 +301,7 @@
}
}
function addMessage(role, text) {
function addMessage(role, text, autoScroll = true) {
const messagesEl = document.getElementById("messages");
const msgDiv = document.createElement("div");
@@ -307,11 +309,12 @@
msgDiv.textContent = text;
messagesEl.appendChild(msgDiv);
// only auto-scroll if user is near bottom
const threshold = 120;
const isNearBottom = messagesEl.scrollHeight - messagesEl.scrollTop - messagesEl.clientHeight < threshold;
if (isNearBottom) {
messagesEl.scrollTo({ top: messagesEl.scrollHeight, behavior: "smooth" });
// Auto-scroll to bottom if enabled
if (autoScroll) {
// Use requestAnimationFrame to ensure DOM has updated
requestAnimationFrame(() => {
messagesEl.scrollTo({ top: messagesEl.scrollHeight, behavior: "smooth" });
});
}
}