From 5cf3c001b521d6078f0d3cd38e39e3d4002ee0d2 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Mon, 8 Dec 2025 14:26:42 +0000 Subject: [PATCH] adjust timeline hover tooltip position --- .../ui/src/components/message-timeline.tsx | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/ui/src/components/message-timeline.tsx b/packages/ui/src/components/message-timeline.tsx index 5d213810..e5e6ade9 100644 --- a/packages/ui/src/components/message-timeline.tsx +++ b/packages/ui/src/components/message-timeline.tsx @@ -259,16 +259,20 @@ const MessageTimeline: Component = (props) => { if (typeof window === "undefined") return clearHoverTimer() const target = event.currentTarget as HTMLButtonElement - hoverTimer = window.setTimeout(() => { - const rect = target.getBoundingClientRect() - const preferredTop = rect.top + rect.height / 2 - const clampedTop = Math.min(window.innerHeight - 220, Math.max(16, preferredTop - 110)) - const tooltipWidth = 360 - const preferredLeft = rect.right + 12 - const clampedLeft = Math.min(window.innerWidth - tooltipWidth - 16, preferredLeft) - setTooltipCoords({ top: clampedTop, left: clampedLeft }) - setHoveredSegment(segment) - }, 200) + hoverTimer = window.setTimeout(() => { + const rect = target.getBoundingClientRect() + const tooltipWidth = 360 + const tooltipHeight = 420 + const verticalGap = 16 + const horizontalGap = 16 + const preferredTop = rect.top + rect.height / 2 - tooltipHeight / 2 + const clampedTop = Math.min(window.innerHeight - tooltipHeight - verticalGap, Math.max(verticalGap, preferredTop)) + const preferredLeft = rect.left - tooltipWidth - horizontalGap + const clampedLeft = Math.max(horizontalGap, preferredLeft) + setTooltipCoords({ top: clampedTop, left: clampedLeft }) + setHoveredSegment(segment) + }, 200) + } const handleMouseLeave = () => {