From 32394b699eabba25ecef4b2538618aac9bb906bf Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Mon, 9 Feb 2026 23:57:37 -0500 Subject: [PATCH] Revert "feat(tui): highlight esc label on hover in dialog (#12383)" This reverts commit 683d234d805e4d1097751d3cd583117856e41de5. --- .../cli/cmd/tui/component/dialog-provider.tsx | 14 +++----------- .../src/cli/cmd/tui/component/dialog-status.tsx | 16 ++++------------ .../opencode/src/cli/cmd/tui/ui/dialog-alert.tsx | 15 +++------------ .../src/cli/cmd/tui/ui/dialog-confirm.tsx | 16 ++++------------ .../src/cli/cmd/tui/ui/dialog-export-options.tsx | 16 ++++------------ .../opencode/src/cli/cmd/tui/ui/dialog-help.tsx | 15 +++------------ .../src/cli/cmd/tui/ui/dialog-prompt.tsx | 16 ++++------------ .../src/cli/cmd/tui/ui/dialog-select.tsx | 16 ++++------------ 8 files changed, 29 insertions(+), 95 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 f5512140f..9682bee4e 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx @@ -109,7 +109,6 @@ function AutoMethod(props: AutoMethodProps) { const dialog = useDialog() const sync = useSync() const toast = useToast() - const [hover, setHover] = createSignal(false) useKeyboard((evt) => { if (evt.name === "c" && !evt.ctrl && !evt.meta) { @@ -140,16 +139,9 @@ function AutoMethod(props: AutoMethodProps) { {props.title} - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + 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 f3cd54db6..21e2738d1 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx @@ -3,7 +3,7 @@ import { fileURLToPath } from "bun" import { useTheme } from "../context/theme" import { useDialog } from "@tui/ui/dialog" import { useSync } from "@tui/context/sync" -import { For, Match, Switch, Show, createMemo, createSignal } from "solid-js" +import { For, Match, Switch, Show, createMemo } from "solid-js" import { Installation } from "@/installation" export type DialogStatusProps = {} @@ -12,7 +12,6 @@ export function DialogStatus() { const sync = useSync() const { theme } = useTheme() const dialog = useDialog() - const [hover, setHover] = createSignal(false) const enabledFormatters = createMemo(() => sync.data.formatter.filter((f) => f.enabled)) @@ -47,16 +46,9 @@ export function DialogStatus() { Status - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + OpenCode v{Installation.VERSION} 0} fallback={No MCP Servers}> 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 8b4b61476..642c73b48 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx @@ -2,7 +2,6 @@ import { TextAttributes } from "@opentui/core" import { useTheme } from "../context/theme" import { useDialog, type DialogContext } from "./dialog" import { useKeyboard } from "@opentui/solid" -import { createSignal } from "solid-js" export type DialogAlertProps = { title: string @@ -13,7 +12,6 @@ export type DialogAlertProps = { export function DialogAlert(props: DialogAlertProps) { const dialog = useDialog() const { theme } = useTheme() - const [hover, setHover] = createSignal(false) useKeyboard((evt) => { if (evt.name === "return") { @@ -27,16 +25,9 @@ export function DialogAlert(props: DialogAlertProps) { {props.title} - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + {props.message} 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 7d9b74cde..b86bd4325 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx @@ -2,7 +2,7 @@ import { TextAttributes } from "@opentui/core" import { useTheme } from "../context/theme" import { useDialog, type DialogContext } from "./dialog" import { createStore } from "solid-js/store" -import { createSignal, For } from "solid-js" +import { For } from "solid-js" import { useKeyboard } from "@opentui/solid" import { Locale } from "@/util/locale" @@ -16,7 +16,6 @@ export type DialogConfirmProps = { export function DialogConfirm(props: DialogConfirmProps) { const dialog = useDialog() const { theme } = useTheme() - const [hover, setHover] = createSignal(false) const [store, setStore] = createStore({ active: "confirm" as "confirm" | "cancel", }) @@ -38,16 +37,9 @@ export function DialogConfirm(props: DialogConfirmProps) { {props.title} - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + {props.message} 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 957467c5d..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 @@ -2,7 +2,7 @@ import { TextareaRenderable, TextAttributes } from "@opentui/core" import { useTheme } from "../context/theme" import { useDialog, type DialogContext } from "./dialog" import { createStore } from "solid-js/store" -import { createSignal, onMount, Show, type JSX } from "solid-js" +import { onMount, Show, type JSX } from "solid-js" import { useKeyboard } from "@opentui/solid" export type DialogExportOptionsProps = { @@ -25,7 +25,6 @@ export function DialogExportOptions(props: DialogExportOptionsProps) { const dialog = useDialog() const { theme } = useTheme() let textarea: TextareaRenderable - const [hover, setHover] = createSignal(false) const [store, setStore] = createStore({ thinking: props.defaultThinking, toolDetails: props.defaultToolDetails, @@ -81,16 +80,9 @@ export function DialogExportOptions(props: DialogExportOptionsProps) { Export Options - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + 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 f56347d4a..4e4527930 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx @@ -3,13 +3,11 @@ import { useTheme } from "@tui/context/theme" import { useDialog } from "./dialog" import { useKeyboard } from "@opentui/solid" import { useKeybind } from "@tui/context/keybind" -import { createSignal } from "solid-js" export function DialogHelp() { const dialog = useDialog() const { theme } = useTheme() const keybind = useKeybind() - const [hover, setHover] = createSignal(false) useKeyboard((evt) => { if (evt.name === "return" || evt.name === "escape") { @@ -23,16 +21,9 @@ export function DialogHelp() { Help - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc/enter - + dialog.clear()}> + esc/enter + 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 03814e17d..b1b05a0f1 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx @@ -1,7 +1,7 @@ import { TextareaRenderable, TextAttributes } from "@opentui/core" import { useTheme } from "../context/theme" import { useDialog, type DialogContext } from "./dialog" -import { createSignal, onMount, type JSX } from "solid-js" +import { onMount, type JSX } from "solid-js" import { useKeyboard } from "@opentui/solid" export type DialogPromptProps = { @@ -17,7 +17,6 @@ export function DialogPrompt(props: DialogPromptProps) { const dialog = useDialog() const { theme } = useTheme() let textarea: TextareaRenderable - const [hover, setHover] = createSignal(false) useKeyboard((evt) => { if (evt.name === "return") { @@ -40,16 +39,9 @@ export function DialogPrompt(props: DialogPromptProps) { {props.title} - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc + {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 7792900bc..490a10072 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx +++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx @@ -1,7 +1,7 @@ import { InputRenderable, RGBA, ScrollBoxRenderable, TextAttributes } from "@opentui/core" import { useTheme, selectedForeground } from "@tui/context/theme" import { entries, filter, flatMap, groupBy, pipe, take } from "remeda" -import { batch, createEffect, createMemo, createSignal, For, Show, type JSX, on } from "solid-js" +import { batch, createEffect, createMemo, For, Show, type JSX, on } from "solid-js" import { createStore } from "solid-js/store" import { useKeyboard, useTerminalDimensions } from "@opentui/solid" import * as fuzzysort from "fuzzysort" @@ -49,7 +49,6 @@ export type DialogSelectRef = { export function DialogSelect(props: DialogSelectProps) { const dialog = useDialog() const { theme } = useTheme() - const [hover, setHover] = createSignal(false) const [store, setStore] = createStore({ selected: 0, filter: "", @@ -227,16 +226,9 @@ export function DialogSelect(props: DialogSelectProps) { {props.title} - setHover(true)} - onMouseOut={() => setHover(false)} - onMouseUp={() => dialog.clear()} - > - esc - + dialog.clear()}> + esc +