From 336af3b3868e70e242955c491e66cbe3b26dd41c Mon Sep 17 00:00:00 2001 From: Ariane Emory Date: Fri, 13 Mar 2026 23:19:20 -0400 Subject: [PATCH] fix: Allow escape key to close /status dialog The Dialog system prevents escape from closing dialogs when text is selected. Add explicit escape keyboard handling to DialogStatus component to bypass this check. --- .../opencode/src/cli/cmd/tui/component/dialog-status.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx index 3b6b5ef2182..01fbb60bf34 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx @@ -1,4 +1,5 @@ import { TextAttributes } from "@opentui/core" +import { useKeyboard } from "@opentui/solid" import { fileURLToPath } from "bun" import { useTheme } from "../context/theme" import { useDialog } from "@tui/ui/dialog" @@ -12,6 +13,14 @@ export function DialogStatus() { const { theme } = useTheme() const dialog = useDialog() + // Handle escape key to close dialog + useKeyboard((evt) => { + if (evt.name === "escape") { + dialog.clear() + evt.preventDefault() + } + }) + const enabledFormatters = createMemo(() => sync.data.formatter.filter((f) => f.enabled)) const plugins = createMemo(() => {