v0.9.1
This commit is contained in:
@@ -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" });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user