Преглед изворни кода

stop select dialog event propagation

Sebastian Herrlinger пре 1 месец
родитељ
комит
46be47d0be
1 измењених фајлова са 20 додато и 4 уклоњено
  1. 20 4
      packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx

+ 20 - 4
packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx

@@ -157,10 +157,26 @@ export function DialogSelect<T>(props: DialogSelectProps<T>) {
 
 
   const keybind = useKeybind()
   const keybind = useKeybind()
   useKeyboard((evt) => {
   useKeyboard((evt) => {
-    if (evt.name === "up" || (evt.ctrl && evt.name === "p")) move(-1)
-    if (evt.name === "down" || (evt.ctrl && evt.name === "n")) move(1)
-    if (evt.name === "pageup") move(-10)
-    if (evt.name === "pagedown") move(10)
+    if (evt.name === "up" || (evt.ctrl && evt.name === "p")) {
+      evt.preventDefault()
+      evt.stopPropagation()
+      move(-1)
+    }
+    if (evt.name === "down" || (evt.ctrl && evt.name === "n")) {
+      evt.preventDefault()
+      evt.stopPropagation()
+      move(1)
+    }
+    if (evt.name === "pageup") {
+      evt.preventDefault()
+      evt.stopPropagation()
+      move(-10)
+    }
+    if (evt.name === "pagedown") {
+      evt.preventDefault()
+      evt.stopPropagation()
+      move(10)
+    }
     if (evt.name === "return") {
     if (evt.name === "return") {
       const option = selected()
       const option = selected()
       if (option) {
       if (option) {