From 648ad90a417b55cb8db30b742740372bcf00b447 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Sun, 31 May 2026 15:03:40 +0000 Subject: [PATCH] fix(tui): reset question prompt edit state --- .../cli/cmd/tui/routes/session/question.tsx | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 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 4d7b520430..ddb3e84a66 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/question.tsx @@ -1,5 +1,5 @@ import { createStore } from "solid-js/store" -import { createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js" +import { createEffect, createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js" import { useRenderer } from "@opentui/solid" import type { TextareaRenderable } from "@opentui/core" import { selectedForeground, tint, useTheme } from "../../context/theme" @@ -45,6 +45,21 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { return store.answers[store.tab]?.includes(value) ?? false }) + let requestID = props.request.id + createEffect(() => { + const next = props.request.id + if (next === requestID) return + requestID = next + textarea = undefined + setStore({ + tab: 0, + answers: [], + custom: [], + selected: 0, + editing: false, + }) + }) + function submit() { const answers = questions().map((_, i) => store.answers[i] ?? []) void sdk.client.question.reply({ @@ -95,8 +110,8 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { } function selectTab(index: number) { - setStore("tab", index) - setStore("selected", 0) + textarea = undefined + setStore({ tab: index, selected: 0, editing: false }) } function selectOption() {