Parcourir la source

dialog aware prompt cursor (#20753)

Sebastian il y a 4 mois
Parent
commit
6e1400fc45
1 fichiers modifiés avec 9 ajouts et 2 suppressions
  1. 9 2
      packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

+ 9 - 2
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(() => {