summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-02-09 23:57:37 -0500
committerDax Raad <[email protected]>2026-02-09 23:57:37 -0500
commit32394b699eabba25ecef4b2538618aac9bb906bf (patch)
tree1438a2f9f54c35600775d1222ab01b7450eddc25
parent12262862cdca7de58d8b3284c74f164f66af625f (diff)
downloadopencode-32394b699eabba25ecef4b2538618aac9bb906bf.tar.gz
opencode-32394b699eabba25ecef4b2538618aac9bb906bf.zip
Revert "feat(tui): highlight esc label on hover in dialog (#12383)"
This reverts commit 683d234d805e4d1097751d3cd583117856e41de5.
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx14
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx16
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx15
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx16
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx16
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx15
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx16
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx16
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) {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
{props.title}
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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() {
<text fg={theme.text} attributes={TextAttributes.BOLD}>
Status
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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) {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
{props.title}
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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) {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
{props.title}
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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) {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
Export Options
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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() {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
Help
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc/enter</text>
- </box>
+ <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 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) {
<text attributes={TextAttributes.BOLD} fg={theme.text}>
{props.title}
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <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 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<T> = {
export function DialogSelect<T>(props: DialogSelectProps<T>) {
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<T>(props: DialogSelectProps<T>) {
<text fg={theme.text} attributes={TextAttributes.BOLD}>
{props.title}
</text>
- <box
- paddingLeft={1}
- paddingRight={1}
- backgroundColor={hover() ? theme.primary : undefined}
- onMouseOver={() => setHover(true)}
- onMouseOut={() => setHover(false)}
- onMouseUp={() => dialog.clear()}
- >
- <text fg={hover() ? theme.selectedListItemText : theme.textMuted}>esc</text>
- </box>
+ <text fg={theme.textMuted} onMouseUp={() => dialog.clear()}>
+ esc
+ </text>
</box>
<box paddingTop={1}>
<input