From 5699f2cd5e615c07e844da6d7942a28e1b4b0892 Mon Sep 17 00:00:00 2001
From: shivam <91240327+shivamhwp@users.noreply.github.com>
Date: Sun, 8 Nov 2026 23:38:56 +0000
Subject: [PATCH 1/8] fix(web): give expanded media a Back button
---
.../chat/ExpandedImageDialog.browser.test.tsx | 4 +++-
.../src/components/chat/ExpandedImageDialog.tsx | 17 ++++++++++++-----
.../AttachmentFilePreview.browser.test.tsx | 2 +-
3 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/apps/web/src/components/chat/ExpandedImageDialog.browser.test.tsx b/apps/web/src/components/chat/ExpandedImageDialog.browser.test.tsx
index 7287547df71fc..73d5955e9029e 100644
--- a/apps/web/src/components/chat/ExpandedImageDialog.browser.test.tsx
+++ b/apps/web/src/components/chat/ExpandedImageDialog.browser.test.tsx
@@ -114,7 +114,9 @@ describe("ExpandedImageDialog", () => {
expect(onClose).not.toHaveBeenCalled();
// Focus returns to the popup's trigger and opens its tooltip; leave it for a plain control.
- (screen.getByRole("button", { name: "Close image preview" }).element() as HTMLElement).focus();
+ (
+ screen.getByRole("button", { name: "Back, close image preview" }).element() as HTMLElement
+ ).focus();
await userEvent.keyboard("{Escape}");
await vi.waitFor(() => expect(onClose).toHaveBeenCalledOnce());
});
diff --git a/apps/web/src/components/chat/ExpandedImageDialog.tsx b/apps/web/src/components/chat/ExpandedImageDialog.tsx
index dad9280ad6dca..b2829f5703a1e 100644
--- a/apps/web/src/components/chat/ExpandedImageDialog.tsx
+++ b/apps/web/src/components/chat/ExpandedImageDialog.tsx
@@ -1,6 +1,12 @@
import { memo, useRef, useState, type ReactNode, type KeyboardEvent } from "react";
import { flushSync } from "react-dom";
-import { ChevronLeftIcon, ChevronRightIcon, XIcon, ImageIcon, TextIcon } from "lucide-react";
+import {
+ ArrowLeftIcon,
+ ChevronLeftIcon,
+ ChevronRightIcon,
+ ImageIcon,
+ TextIcon,
+} from "lucide-react";
import { Button } from "../ui/button";
import { Dialog, DialogPopup, DialogTitle } from "../ui/dialog";
import type { ExpandedImageItem, ExpandedImagePreview } from "./ExpandedImagePreview";
@@ -188,13 +194,14 @@ export const ExpandedImageDialog = memo(function ExpandedImageDialog({
{preview.images.length > 1 && (