From 41597da0aaffcd46fbd9d409c7ed5d5a0faf9692 Mon Sep 17 00:00:00 2001 From: cryppadotta <34892728+cryppadotta@users.noreply.github.com> Date: Fri, 11 Sep 2026 18:29:19 +0000 Subject: [PATCH 1/3] fix(ui): make feed cards full-width links Co-Authored-By: Paperclip --- ui/src/components/FeedCard.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ui/src/components/FeedCard.tsx b/ui/src/components/FeedCard.tsx index 614f299b34..aadf548623 100644 --- a/ui/src/components/FeedCard.tsx +++ b/ui/src/components/FeedCard.tsx @@ -437,7 +437,7 @@ export function FeedCard({ {card} From c7030ce22fcc91ba85eb7fdbee0602a6b6c785de Mon Sep 17 00:00:00 2001 From: cryppadotta <34892728+cryppadotta@users.noreply.github.com> Date: Fri, 11 Sep 2026 18:31:12 +0000 Subject: [PATCH 2/3] test(ui): cover full feed card click target Co-Authored-By: Paperclip --- ui/src/components/FeedCard.test.tsx | 71 +++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 ui/src/components/FeedCard.test.tsx diff --git a/ui/src/components/FeedCard.test.tsx b/ui/src/components/FeedCard.test.tsx new file mode 100644 index 0000000000..a1f76c0e97 --- /dev/null +++ b/ui/src/components/FeedCard.test.tsx @@ -0,0 +1,71 @@ +// @vitest-environment jsdom + +import { act } from "react"; +import { createRoot } from "react-dom/client"; +import type { ActivityEvent } from "@paperclipai/shared"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { FeedCard } from "./FeedCard"; + +const navigate = vi.fn(); + +vi.mock("@/lib/router", () => ({ + Link: ({ children, issueQuicklookSide: _, to, ...props }: React.ComponentProps<"a"> & { issueQuicklookSide?: string; to: string }) => ( + + {children} + + ), +})); + +const event: ActivityEvent = { + id: "event-1", + companyId: "company-1", + actorType: "user", + actorId: "user-1", + action: "issue.updated", + entityType: "issue", + entityId: "issue-1", + agentId: null, + runId: null, + details: null, + createdAt: new Date("2026-09-11T12:00:00.000Z"), +}; + +describe("FeedCard", () => { + let container: HTMLDivElement; + + beforeEach(() => { + container = document.createElement("div"); + document.body.appendChild(container); + navigate.mockClear(); + }); + + afterEach(() => { + container.remove(); + }); + + it("uses the whole visible card as the entity link", () => { + const root = createRoot(container); + act(() => { + root.render( + , + ); + }); + + const link = container.querySelector('[data-fc="link"]'); + const card = container.querySelector('[data-fc="card"]'); + + expect(link).not.toBeNull(); + expect(link?.className).toContain("w-full"); + expect(link?.contains(card ?? null)).toBe(true); + + card?.click(); + expect(navigate).toHaveBeenCalledOnce(); + + act(() => root.unmount()); + }); +}); From e581f2b9242c71a7c5e9785f67e477bc1cddec96 Mon Sep 17 00:00:00 2001 From: cryppadotta <34892728+cryppadotta@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:09:51 +0000 Subject: [PATCH 3/3] fix(ui): prevent feed card overflow Co-Authored-By: Paperclip --- ui/src/components/FeedCard.test.tsx | 2 ++ ui/src/components/FeedCard.tsx | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/src/components/FeedCard.test.tsx b/ui/src/components/FeedCard.test.tsx index a1f76c0e97..a63418a835 100644 --- a/ui/src/components/FeedCard.test.tsx +++ b/ui/src/components/FeedCard.test.tsx @@ -61,6 +61,8 @@ describe("FeedCard", () => { expect(link).not.toBeNull(); expect(link?.className).toContain("w-full"); + expect(card?.className).toContain("w-(--sz-calc-1)"); + expect(card?.className).toContain("md:w-(--sz-calc-2)"); expect(link?.contains(card ?? null)).toBe(true); card?.click(); diff --git a/ui/src/components/FeedCard.tsx b/ui/src/components/FeedCard.tsx index aadf548623..e88c0bb9c7 100644 --- a/ui/src/components/FeedCard.tsx +++ b/ui/src/components/FeedCard.tsx @@ -437,7 +437,7 @@ export function FeedCard({