From f1ba0d2156a9d160602ff0296ef0665cf2ee86e9 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 13:26:17 +0000 Subject: [PATCH 1/5] fix(webapp): make Esc close consistently across dialogs, sheets and panels - Vercel onboarding modal no longer renders a close button and Esc hint in the marketplace flow, where dismissal is intentionally blocked - The authenticator app setup dialog can be dismissed with Esc or the close button; the recovery codes step stays deliberately non-dismissible - The dashboard chat panel closes with Esc, using the same shortcut button the other detail panels use - Every sheet gets the Esc hint from a shared close button in SheetContent instead of opting in via SheetTitle - Panel close shortcuts fire while a form field is focused - A shortcut is ignored while its button sits behind an open overlay, so one Esc no longer closes both a dialog and the panel behind it Co-Authored-By: Claude --- .server-changes/esc-to-close-fixes.md | 6 ++++ .../dashboard-agent/DashboardAgentHeader.tsx | 11 ++++++- .../errors/ConfigureErrorAlerts.tsx | 9 ------ .../integrations/VercelOnboardingModal.tsx | 12 ++++++-- .../app/components/logs/LogDetailView.tsx | 4 +-- .../app/components/primitives/Buttons.tsx | 2 ++ .../app/components/primitives/SheetV3.tsx | 24 ++++++++++----- apps/webapp/app/hooks/useShortcutKeys.tsx | 29 +++++++++++++++++-- .../route.tsx | 2 +- .../route.tsx | 2 +- .../route.tsx | 2 +- .../route.tsx | 2 ++ .../route.tsx | 2 +- .../route.tsx | 2 +- .../route.tsx | 2 +- .../route.tsx | 2 +- .../MfaSetupDialog.tsx | 6 ++-- .../route.tsx | 4 +-- ...ectParam.env.$envParam.runs.bulkaction.tsx | 2 +- .../route.tsx | 2 +- 20 files changed, 89 insertions(+), 38 deletions(-) create mode 100644 .server-changes/esc-to-close-fixes.md diff --git a/.server-changes/esc-to-close-fixes.md b/.server-changes/esc-to-close-fixes.md new file mode 100644 index 00000000000..34f526cd773 --- /dev/null +++ b/.server-changes/esc-to-close-fixes.md @@ -0,0 +1,6 @@ +--- +area: webapp +type: fix +--- + +Esc now closes the chat panel, the authenticator app setup dialog, and detail panels while you're typing in one of their fields, and every side sheet shows its Esc shortcut. Closing a dialog with Esc no longer also closes the panel behind it, and the Vercel setup modal no longer shows a close button it ignores. diff --git a/apps/webapp/app/components/dashboard-agent/DashboardAgentHeader.tsx b/apps/webapp/app/components/dashboard-agent/DashboardAgentHeader.tsx index 11d486bc1d3..6ff03fb3320 100644 --- a/apps/webapp/app/components/dashboard-agent/DashboardAgentHeader.tsx +++ b/apps/webapp/app/components/dashboard-agent/DashboardAgentHeader.tsx @@ -1,4 +1,5 @@ import { ClockIcon, PencilSquareIcon, XMarkIcon } from "@heroicons/react/20/solid"; +import { Button } from "~/components/primitives/Buttons"; import { cn } from "~/utils/cn"; export function DashboardAgentHeader({ @@ -23,7 +24,15 @@ export function DashboardAgentHeader({ onClick={onToggleHistory} active={view === "history"} /> - +