Skip to content

Commit 59e486a

Browse files
authored
fix(tui): restore question prompt key handling (anomalyco#28835)
1 parent 8596967 commit 59e486a

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

  • packages/opencode/src/cli/cmd/tui/routes/session

packages/opencode/src/cli/cmd/tui/routes/session/question.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
import { createStore } from "solid-js/store"
2-
import { createMemo, createSignal, For, Show } from "solid-js"
2+
import { createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js"
33
import { useRenderer } from "@opentui/solid"
44
import type { TextareaRenderable } from "@opentui/core"
55
import { selectedForeground, tint, useTheme } from "../../context/theme"
66
import type { QuestionAnswer, QuestionRequest } from "@opencode-ai/sdk/v2"
77
import { useSDK } from "../../context/sdk"
88
import { SplitBorder } from "../../component/border"
99
import { useTuiConfig } from "../../context/tui-config"
10-
import { OPENCODE_BASE_MODE, useBindings } from "../../keymap"
10+
import { useBindings, useOpencodeModeStack } from "../../keymap"
11+
12+
const QUESTION_MODE = "question"
1113

1214
export function QuestionPrompt(props: { request: QuestionRequest }) {
1315
const sdk = useSDK()
1416
const { theme } = useTheme()
1517
const renderer = useRenderer()
1618
const tuiConfig = useTuiConfig()
19+
const modeStack = useOpencodeModeStack()
1720

1821
const questions = createMemo(() => props.request.questions)
1922
const single = createMemo(() => questions().length === 1 && questions()[0]?.multiple !== true)
@@ -119,8 +122,13 @@ export function QuestionPrompt(props: { request: QuestionRequest }) {
119122
pick(opt.label)
120123
}
121124

125+
onMount(() => {
126+
const popMode = modeStack.push(QUESTION_MODE)
127+
onCleanup(popMode)
128+
})
129+
122130
useBindings(() => ({
123-
mode: OPENCODE_BASE_MODE,
131+
mode: QUESTION_MODE,
124132
enabled: store.editing && !confirm(),
125133
commands: [
126134
{
@@ -201,7 +209,7 @@ export function QuestionPrompt(props: { request: QuestionRequest }) {
201209
const max = Math.min(total, 9)
202210

203211
return {
204-
mode: OPENCODE_BASE_MODE,
212+
mode: QUESTION_MODE,
205213
enabled: !store.editing,
206214
commands: [
207215
{

0 commit comments

Comments
 (0)