Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

Commit 1e8a5bd

Browse files
authored
fix(ui): keep message copy action inside compact conversations
Generated-By: PostHog Code Task-Id: 11e8a530-136e-44e6-af1f-3eb6a0ee49c0
1 parent 23c5236 commit 1e8a5bd

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { Theme } from "@radix-ui/themes";
2+
import { render, screen } from "@testing-library/react";
3+
import userEvent from "@testing-library/user-event";
4+
import { describe, expect, it, vi } from "vitest";
5+
import { AgentMessage } from "./AgentMessage";
6+
7+
describe("AgentMessage", () => {
8+
it("keeps the copy action inside the message rail", async () => {
9+
const writeText = vi.fn().mockResolvedValue(undefined);
10+
Object.assign(navigator, { clipboard: { writeText } });
11+
12+
render(
13+
<Theme>
14+
<AgentMessage content="Assistant response" />
15+
</Theme>,
16+
);
17+
18+
const copyButton = screen.getByLabelText("Copy message");
19+
expect(copyButton.parentElement).toHaveClass("right-1");
20+
expect(copyButton.parentElement).not.toHaveClass("left-full");
21+
22+
await userEvent.click(copyButton);
23+
expect(writeText).toHaveBeenCalledWith("Assistant response");
24+
});
25+
});

packages/ui/src/features/sessions/components/session-update/AgentMessage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const AgentMessage = memo(function AgentMessage({
7070
}, [content]);
7171

7272
return (
73-
<Box className="group/msg relative pl-3 text-[13px] [&>*:last-child]:mb-0 [&_p]:leading-[1.9]">
73+
<Box className="group/msg relative pr-9 pl-3 text-[13px] [&>*:last-child]:mb-0 [&_p]:leading-[1.9]">
7474
{isStreaming ? (
7575
<StreamingMarkdown
7676
content={smoothed}
@@ -82,7 +82,7 @@ export const AgentMessage = memo(function AgentMessage({
8282
componentsOverride={agentComponents}
8383
/>
8484
)}
85-
<Box className="absolute top-1 left-full ml-2 opacity-0 transition-opacity group-hover/msg:opacity-100">
85+
<Box className="absolute top-1 right-1 opacity-0 transition-opacity group-hover/msg:opacity-100">
8686
<Tooltip content={copied ? "Copied!" : "Copy message"}>
8787
<IconButton
8888
size="1"

0 commit comments

Comments
 (0)