From 96fe1b86dd814c1691bacc9d54ceaca11c9aab5a Mon Sep 17 00:00:00 2001 From: VooDisss Date: Fri, 20 Feb 2026 12:33:52 +0200 Subject: [PATCH] fix(ui): prevent timeline auto-scroll when removing badges --- packages/ui/src/components/message-timeline.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/components/message-timeline.tsx b/packages/ui/src/components/message-timeline.tsx index c0e1d9d7..fc4ef7f3 100644 --- a/packages/ui/src/components/message-timeline.tsx +++ b/packages/ui/src/components/message-timeline.tsx @@ -1,4 +1,4 @@ -import { For, Show, createEffect, createMemo, createSignal, onCleanup, type Component } from "solid-js" +import { For, Show, createEffect, createMemo, createSignal, onCleanup, on, untrack, type Component } from "solid-js" import MessagePreview from "./message-preview" import { messageStoreBus } from "../stores/message-v2/bus" import type { ClientPart } from "../types/message" @@ -350,11 +350,9 @@ const MessageTimeline: Component = (props) => { clearCloseTimer() }) - createEffect(() => { - const activeId = props.activeMessageId - + createEffect(on(() => props.activeMessageId, (activeId) => { if (!activeId) return - const targetSegment = props.segments.find((segment) => segment.messageId === activeId) + const targetSegment = untrack(() => props.segments).find((segment) => segment.messageId === activeId) if (!targetSegment) return const element = buttonRefs.get(targetSegment.id) if (!element) return @@ -366,7 +364,7 @@ const MessageTimeline: Component = (props) => { window.clearTimeout(timer) } }) - }) + })) createEffect(() => { const element = tooltipElement()