From 37ff96f8496ed5cadf3e0f446a808d0db50726e2 Mon Sep 17 00:00:00 2001 From: Gemini AI Date: Tue, 23 Dec 2025 13:50:44 +0400 Subject: [PATCH] feat: add hover preview tooltips to message sidebar Enhanced YOU/ASST message navigation: - Click scrolls to message (already implemented) - Hover shows preview tooltip with: - Role label (You/Assistant) - Message number - First 100 chars of message content - Smooth slide-in animation on hover - Slightly larger buttons with scale effect on hover --- .../src/components/chat/multi-task-chat.tsx | 58 ++++++++++++++----- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/packages/ui/src/components/chat/multi-task-chat.tsx b/packages/ui/src/components/chat/multi-task-chat.tsx index e2f5eb1..188a699 100644 --- a/packages/ui/src/components/chat/multi-task-chat.tsx +++ b/packages/ui/src/components/chat/multi-task-chat.tsx @@ -634,28 +634,54 @@ export default function MultiTaskChat(props: MultiTaskChatProps) { - {/* Message Navigation Sidebar - YOU/ASST labels */} + {/* Message Navigation Sidebar - YOU/ASST labels with hover preview */} 0}> -
+
{(messageId, index) => { const msg = () => messageStore().getMessage(messageId); const isUser = () => msg()?.role === "user"; + const [showPreview, setShowPreview] = createSignal(false); + + // Get message preview text (first 100 chars) + const previewText = () => { + const message = msg(); + if (!message) return ""; + const content = message.parts?.[0]?.content || message.content || ""; + const text = typeof content === "string" ? content : JSON.stringify(content); + return text.length > 100 ? text.substring(0, 100) + "..." : text; + }; + return ( - +
+ + + {/* Hover Preview Tooltip */} + +
+
+ {isUser() ? "You" : "Assistant"} • Message {index() + 1} +
+

+ {previewText()} +

+
+
+
); }}