diff options
| author | Kit Langton <[email protected]> | 2026-01-15 20:38:55 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-15 19:38:55 -0600 |
| commit | 12b621068ac30f2751167ac810ef636825a12957 (patch) | |
| tree | 4bfe6f84ead58b6c6139245ede48bbb49b1ed94b | |
| parent | 07e7ebdb8e50dc4f9a75b53983d08c20f28ba6cc (diff) | |
| download | opencode-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.tsx | 27 |
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> |
