From 9eacd4a2073fa5e2556dee8e6c511e979fd2f8c4 Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Sat, 14 Mar 2026 16:07:16 -0700 Subject: [PATCH] UI: Minor morphdom optimizations --- js/global_scope_js.js | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/js/global_scope_js.js b/js/global_scope_js.js index 084c98e8..ba5abcb2 100644 --- a/js/global_scope_js.js +++ b/js/global_scope_js.js @@ -325,27 +325,21 @@ function applyMorphdomUpdate(data) { const queryScope = target_element; - // Track open blocks + // Track open blocks and store their scroll positions const openBlocks = new Set(); + const scrollPositions = {}; queryScope.querySelectorAll(".thinking-block").forEach(block => { const blockId = block.getAttribute("data-block-id"); - // If block exists and is open, add to open set if (blockId && block.hasAttribute("open")) { openBlocks.add(blockId); - } - }); - - // Store scroll positions for any open blocks - const scrollPositions = {}; - queryScope.querySelectorAll(".thinking-block[open]").forEach(block => { - const content = block.querySelector(".thinking-content"); - const blockId = block.getAttribute("data-block-id"); - if (content && blockId) { - const isAtBottom = Math.abs((content.scrollHeight - content.scrollTop) - content.clientHeight) < 5; - scrollPositions[blockId] = { - position: content.scrollTop, - isAtBottom: isAtBottom - }; + const content = block.querySelector(".thinking-content"); + if (content) { + const isAtBottom = Math.abs((content.scrollHeight - content.scrollTop) - content.clientHeight) < 5; + scrollPositions[blockId] = { + position: content.scrollTop, + isAtBottom: isAtBottom + }; + } } }); @@ -355,8 +349,8 @@ function applyMorphdomUpdate(data) { { onBeforeElUpdated: function(fromEl, toEl) { // Preserve code highlighting - if (fromEl.tagName === "PRE" && fromEl.querySelector("code[data-highlighted]")) { - const fromCode = fromEl.querySelector("code"); + if (fromEl.tagName === "PRE") { + const fromCode = fromEl.querySelector("code[data-highlighted]"); const toCode = toEl.querySelector("code"); if (fromCode && toCode && fromCode.textContent === toCode.textContent) {