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 e690f6f327..46fc220bdc 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,6 @@ import { createStore } from "solid-js/store" import { createMemo, createSignal, For, Show } from "solid-js" +import { useRenderer } from "@opentui/solid" import type { TextareaRenderable } from "@opentui/core" import { selectedForeground, tint, useTheme } from "../../context/theme" import type { QuestionAnswer, QuestionRequest } from "@opencode-ai/sdk/v2" @@ -12,6 +13,7 @@ import { useBindings } from "../../keymap" export function QuestionPrompt(props: { request: QuestionRequest }) { const sdk = useSDK() const { theme } = useTheme() + const renderer = useRenderer() const tuiConfig = useTuiConfig() const questions = createMemo(() => props.request.questions) @@ -302,7 +304,10 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { } onMouseOver={() => setTabHover(index())} onMouseOut={() => setTabHover(null)} - onMouseUp={() => selectTab(index())} + onMouseUp={() => { + if (renderer.getSelection()?.getSelectedText()) return + selectTab(index()) + }} > setTabHover("confirm")} onMouseOut={() => setTabHover(null)} - onMouseUp={() => selectTab(questions().length)} + onMouseUp={() => { + if (renderer.getSelection()?.getSelectedText()) return + selectTab(questions().length) + }} > Confirm @@ -351,7 +359,10 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { moveTo(i())} onMouseDown={() => moveTo(i())} - onMouseUp={() => selectOption()} + onMouseUp={() => { + if (renderer.getSelection()?.getSelectedText()) return + selectOption() + }} > @@ -380,7 +391,10 @@ export function QuestionPrompt(props: { request: QuestionRequest }) { moveTo(options().length)} onMouseDown={() => moveTo(options().length)} - onMouseUp={() => selectOption()} + onMouseUp={() => { + if (renderer.getSelection()?.getSelectedText()) return + selectOption() + }} >