summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-01-15 20:38:55 -0500
committerGitHub <[email protected]>2026-01-15 19:38:55 -0600
commit12b621068ac30f2751167ac810ef636825a12957 (patch)
tree4bfe6f84ead58b6c6139245ede48bbb49b1ed94b
parent07e7ebdb8e50dc4f9a75b53983d08c20f28ba6cc (diff)
downloadopencode-12b621068ac30f2751167ac810ef636825a12957.tar.gz
opencode-12b621068ac30f2751167ac810ef636825a12957.zip
fix(tui): dim question option prefixes (#8776)
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/question.tsx27
1 files changed, 17 insertions, 10 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx
index 1faa0e426..763741f48 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx
@@ -3,7 +3,7 @@ import { createMemo, For, Show } from "solid-js"
import { useKeyboard } from "@opentui/solid"
import type { TextareaRenderable } from "@opentui/core"
import { useKeybind } from "../../context/keybind"
-import { useTheme } from "../../context/theme"
+import { tint, useTheme } from "../../context/theme"
import type { QuestionAnswer, QuestionRequest } from "@opencode-ai/sdk/v2"
import { useSDK } from "../../context/sdk"
import { SplitBorder } from "../../component/border"
@@ -125,7 +125,7 @@ export function QuestionPrompt(props: { request: QuestionRequest }) {
// Skip processing if a dialog (e.g., command palette) is open
if (dialog.stack.length > 0) return
- // When editing "Other" textarea
+ // When editing custom answer textarea
if (store.editing && !confirm()) {
if (evt.name === "escape") {
evt.preventDefault()
@@ -305,12 +305,15 @@ export function QuestionPrompt(props: { request: QuestionRequest }) {
const picked = () => store.answers[store.tab]?.includes(opt.label) ?? false
return (
<box onMouseOver={() => moveTo(i())} onMouseUp={() => selectOption()}>
- <box flexDirection="row" gap={1}>
+ <box flexDirection="row">
+ <box backgroundColor={active() ? theme.backgroundElement : undefined} paddingRight={1}>
+ <text fg={active() ? tint(theme.textMuted, theme.secondary, 0.6) : theme.textMuted}>
+ {`${i() + 1}.`}
+ </text>
+ </box>
<box backgroundColor={active() ? theme.backgroundElement : undefined}>
<text fg={active() ? theme.secondary : picked() ? theme.success : theme.text}>
- {multi()
- ? `${i() + 1}. [${picked() ? "✓" : " "}] ${opt.label}`
- : `${i() + 1}. ${opt.label}`}
+ {multi() ? `[${picked() ? "✓" : " "}] ${opt.label}` : opt.label}
</text>
</box>
<Show when={!multi()}>
@@ -327,14 +330,18 @@ export function QuestionPrompt(props: { request: QuestionRequest }) {
</For>
<Show when={custom()}>
<box onMouseOver={() => moveTo(options().length)} onMouseUp={() => selectOption()}>
- <box flexDirection="row" gap={1}>
+ <box flexDirection="row">
+ <box backgroundColor={other() ? theme.backgroundElement : undefined} paddingRight={1}>
+ <text fg={other() ? tint(theme.textMuted, theme.secondary, 0.6) : theme.textMuted}>
+ {`${options().length + 1}.`}
+ </text>
+ </box>
<box backgroundColor={other() ? theme.backgroundElement : undefined}>
<text fg={other() ? theme.secondary : customPicked() ? theme.success : theme.text}>
- {multi()
- ? `${options().length + 1}. [${customPicked() ? "✓" : " "}] Type your own answer`
- : `${options().length + 1}. Type your own answer`}
+ {multi() ? `[${customPicked() ? "✓" : " "}] Type your own answer` : "Type your own answer"}
</text>
</box>
+
<Show when={!multi()}>
<text fg={theme.success}>{customPicked() ? "✓" : ""}</text>
</Show>