ソースを参照

fix(tui): suspend agent tab keybinds in shell mode

Kit Langton 1 ヶ月 前
コミット
c1ef03d53d
1 ファイル変更15 行追加0 行削除
  1. 15 0
      packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

+ 15 - 0
packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

@@ -98,6 +98,21 @@ export function Prompt(props: PromptProps) {
   const pasteStyleId = syntax().getStyleId("extmark.paste")!
   const pasteStyleId = syntax().getStyleId("extmark.paste")!
   let promptPartTypeId = 0
   let promptPartTypeId = 0
 
 
+  createEffect(
+    on(
+      () => store.mode,
+      (mode, prev) => {
+        if (prev === "shell") command.keybinds(true)
+        if (mode === "shell") command.keybinds(false)
+      },
+      { defer: true },
+    ),
+  )
+
+  onCleanup(() => {
+    if (store.mode === "shell") command.keybinds(true)
+  })
+
   sdk.event.on(TuiEvent.PromptAppend.type, (evt) => {
   sdk.event.on(TuiEvent.PromptAppend.type, (evt) => {
     if (!input || input.isDestroyed) return
     if (!input || input.isDestroyed) return
     input.insertText(evt.properties.text)
     input.insertText(evt.properties.text)