From c61e9bf9616272c7e8ec7e108ab76124c328f487 Mon Sep 17 00:00:00 2001
From: Mausam
Date: Thu, 23 Jul 2026 04:30:54 +0530
Subject: [PATCH] fix(desktop): preserve channel intro action focus rings
Signed-off-by: Mausam
---
desktop/src/features/messages/ui/ChannelIntroBlock.tsx | 5 ++++-
desktop/tests/e2e/channels.spec.ts | 5 +++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/desktop/src/features/messages/ui/ChannelIntroBlock.tsx b/desktop/src/features/messages/ui/ChannelIntroBlock.tsx
index 98300acb3e2..76207cfd081 100644
--- a/desktop/src/features/messages/ui/ChannelIntroBlock.tsx
+++ b/desktop/src/features/messages/ui/ChannelIntroBlock.tsx
@@ -63,7 +63,10 @@ export function ChannelIntroBlock({
) : null}
{intro.actions?.length ? (
-
+
{intro.actions.map((action) => {
const hasDescription = Boolean(action.description);
diff --git a/desktop/tests/e2e/channels.spec.ts b/desktop/tests/e2e/channels.spec.ts
index 7da20334f30..21c2dcde551 100644
--- a/desktop/tests/e2e/channels.spec.ts
+++ b/desktop/tests/e2e/channels.spec.ts
@@ -1507,6 +1507,11 @@ test("empty channel shows intro actions", async ({ page }) => {
await expect(page.getByTestId("welcome-composer-guide-banner")).toHaveCount(
0,
);
+ // Horizontal scrolling creates a clipping context. The padded, offset row
+ // leaves space for the cards' focus rings without changing their alignment.
+ const introActions = page.getByTestId("message-channel-intro-actions");
+ await expect(introActions).toHaveCSS("padding-top", "4px");
+ await expect(introActions).toHaveCSS("padding-bottom", "4px");
await expectIntroActionCardLayout(page, "channel-intro-action-create-agent");
await expectIntroActionsShareRow(page, [
"channel-intro-action-create-agent",