summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
index 0c55ef627..382bd2806 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
@@ -442,8 +442,15 @@ export function Prompt(props: PromptProps) {
})
createEffect(() => {
- if (props.visible !== false) input?.focus()
- if (props.visible === false) input?.blur()
+ if (!input || input.isDestroyed) return
+ if (props.visible === false || dialog.stack.length > 0) {
+ input.blur()
+ return
+ }
+
+ // Slot/plugin updates can remount the background prompt while a dialog is open.
+ // Keep focus with the dialog and let the prompt reclaim it after the dialog closes.
+ input.focus()
})
createEffect(() => {