From 003391e60e01f06e8e9b595cf203868b769e53c4 Mon Sep 17 00:00:00 2001 From: pavel Date: Fri, 27 Feb 2026 14:59:10 +0100 Subject: [PATCH] chat scroll --- static/shared/app-core.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/static/shared/app-core.js b/static/shared/app-core.js index f14b88d..a7ad4e1 100644 --- a/static/shared/app-core.js +++ b/static/shared/app-core.js @@ -354,6 +354,11 @@ function formatDate(isoString) { return d.toLocaleDateString(); } +function scrollMessagesToBottom() { + if (!el.messageList) return; + el.messageList.scrollTop = el.messageList.scrollHeight; +} + let audioCtx = null; // Global interaction listener to unlock AudioContext (autoplay policy) @@ -628,7 +633,17 @@ function renderMessages(messages) { state.lastMessageId = messages[0].id; } - el.messageList.scrollTop = el.messageList.scrollHeight; + scrollMessagesToBottom(); + requestAnimationFrame(() => { + scrollMessagesToBottom(); + }); + + // GIF/image height resolves after initial paint; keep chat pinned to latest. + for (const gifImage of el.messageList.querySelectorAll(".msg-gif img")) { + if (gifImage.complete) continue; + gifImage.addEventListener("load", scrollMessagesToBottom, { once: true }); + gifImage.addEventListener("error", scrollMessagesToBottom, { once: true }); + } } function renderMembers() {