diff options
| author | Akshar Patel <[email protected]> | 2026-02-05 17:14:49 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-05 16:14:49 -0600 |
| commit | 102d8e72bb402f1e49acdac683b255dd371afa14 (patch) | |
| tree | d5758938fe8d076f8135b333def591be091c9bbd /packages | |
| parent | 09a0e921ce0b3398cc50f89fdba8cf857cdc4997 (diff) | |
| download | opencode-102d8e72bb402f1e49acdac683b255dd371afa14.tar.gz opencode-102d8e72bb402f1e49acdac683b255dd371afa14.zip | |
fix(tui): allow mouse escape via "esc" labels in dialogs (#11421)
Diffstat (limited to 'packages')
8 files changed, 26 insertions, 8 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx index dc3f33737..93e76cbdf 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx @@ -154,7 +154,9 @@ function AutoMethod(props: AutoMethodProps) { <text attributes={TextAttributes.BOLD} fg={theme.text}> {props.title} </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box gap={1}> <Link href={props.authorization.url} fg={theme.primary} /> 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 c08fc99b6..3e6e30951 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx @@ -1,5 +1,6 @@ import { TextAttributes } from "@opentui/core" import { useTheme } from "../context/theme" +import { useDialog } from "@tui/ui/dialog" import { useSync } from "@tui/context/sync" import { For, Match, Switch, Show, createMemo } from "solid-js" import { Installation } from "@/installation" @@ -9,6 +10,7 @@ export type DialogStatusProps = {} export function DialogStatus() { const sync = useSync() const { theme } = useTheme() + const dialog = useDialog() const enabledFormatters = createMemo(() => sync.data.formatter.filter((f) => f.enabled)) @@ -43,7 +45,9 @@ export function DialogStatus() { <text fg={theme.text} attributes={TextAttributes.BOLD}> Status </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <text fg={theme.textMuted}>OpenCode v{Installation.VERSION}</text> <Show when={Object.keys(sync.data.mcp).length > 0} fallback={<text fg={theme.text}>No MCP Servers</text>}> diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx index 45e946fa7..642c73b48 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx @@ -25,7 +25,9 @@ export function DialogAlert(props: DialogAlertProps) { <text attributes={TextAttributes.BOLD} fg={theme.text}> {props.title} </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box paddingBottom={1}> <text fg={theme.textMuted}>{props.message}</text> diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx index 8431a3946..b86bd4325 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx @@ -37,7 +37,9 @@ export function DialogConfirm(props: DialogConfirmProps) { <text attributes={TextAttributes.BOLD} fg={theme.text}> {props.title} </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box paddingBottom={1}> <text fg={theme.textMuted}>{props.message}</text> diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx index 867ed6810..1e8d09bb0 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx @@ -80,7 +80,9 @@ export function DialogExportOptions(props: DialogExportOptionsProps) { <text attributes={TextAttributes.BOLD} fg={theme.text}> Export Options </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box gap={1}> <box> diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx index 056ce41da..4e4527930 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx @@ -21,7 +21,9 @@ export function DialogHelp() { <text attributes={TextAttributes.BOLD} fg={theme.text}> Help </text> - <text fg={theme.textMuted}>esc/enter</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc/enter + </text> </box> <box paddingBottom={1}> <text fg={theme.textMuted}> diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx index b29652412..b1b05a0f1 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx @@ -39,7 +39,9 @@ export function DialogPrompt(props: DialogPromptProps) { <text attributes={TextAttributes.BOLD} fg={theme.text}> {props.title} </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box gap={1}> {props.description} diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx index 56d8453c9..490a10072 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx @@ -226,7 +226,9 @@ export function DialogSelect<T>(props: DialogSelectProps<T>) { <text fg={theme.text} attributes={TextAttributes.BOLD}> {props.title} </text> - <text fg={theme.textMuted}>esc</text> + <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}> + esc + </text> </box> <box paddingTop={1}> <input |
