From 937f50f0ae61f0a9637074064bb2e0d60faba16a Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Sun, 5 Apr 2026 16:44:59 -0400 Subject: [PATCH] fix: show message action tooltips at bottom on agents page (#24041) The CopyButton tooltip on `/agents` defaulted to top (Radix default), while the Edit button already used `side="bottom"`. This adds an optional `tooltipSide` prop to `CopyButton` and passes `"bottom"` in the agents `ConversationTimeline` so both tooltips appear below the buttons consistently. ## Changes - `CopyButton`: added optional `tooltipSide` prop, forwarded to `` - `ConversationTimeline`: passed `tooltipSide="bottom"` to the copy-message `CopyButton` > Generated by Coder Agents --- site/src/components/CopyButton/CopyButton.tsx | 4 +++- .../components/ChatConversation/ConversationTimeline.tsx | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/site/src/components/CopyButton/CopyButton.tsx b/site/src/components/CopyButton/CopyButton.tsx index eb0b030969..c4967b5b7f 100644 --- a/site/src/components/CopyButton/CopyButton.tsx +++ b/site/src/components/CopyButton/CopyButton.tsx @@ -12,11 +12,13 @@ import { useClipboard } from "#/hooks/useClipboard"; type CopyButtonProps = ButtonProps & { text: string; label: string; + tooltipSide?: "top" | "bottom" | "left" | "right"; }; export const CopyButton: FC = ({ text, label, + tooltipSide, ...buttonProps }) => { const { showCopiedSuccess, copyToClipboard } = useClipboard(); @@ -34,7 +36,7 @@ export const CopyButton: FC = ({ {label} - {label} + {label} ); }; diff --git a/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx b/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx index d05f3c8df1..f127733f42 100644 --- a/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx +++ b/site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx @@ -643,6 +643,7 @@ const ChatMessageItem = memo<{ text={parsed.markdown} label="Copy message" className="size-6" + tooltipSide="bottom" /> )} {isUser && onEditUserMessage && (