Просмотр исходного кода

fix(tui): consume Enter in dialog useKeyboard handlers (#23390)

Cas 4 месяцев назад
Родитель
Сommit
e0f3df8252

+ 2 - 0
packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx

@@ -77,6 +77,8 @@ export function DialogGoUpsell(props: DialogGoUpsellProps) {
       return
     }
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       if (selected() === "subscribe") subscribe(props, dialog)
       else dismiss(props, dialog)
     }

+ 2 - 0
packages/opencode/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx

@@ -42,6 +42,8 @@ export function DialogSessionDeleteFailed(props: {
 
   useKeyboard((evt) => {
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       void confirm()
     }
     if (evt.name === "left" || evt.name === "up") {

+ 2 - 0
packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx

@@ -15,6 +15,8 @@ export function DialogAlert(props: DialogAlertProps) {
 
   useKeyboard((evt) => {
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       props.onConfirm?.()
       dialog.clear()
     }

+ 2 - 0
packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx

@@ -25,6 +25,8 @@ export function DialogConfirm(props: DialogConfirmProps) {
 
   useKeyboard((evt) => {
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       if (store.active === "confirm") props.onConfirm?.()
       if (store.active === "cancel") props.onCancel?.()
       dialog.clear()

+ 2 - 0
packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx

@@ -35,6 +35,8 @@ export function DialogExportOptions(props: DialogExportOptionsProps) {
 
   useKeyboard((evt) => {
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       props.onConfirm?.({
         filename: textarea.plainText,
         thinking: store.thinking,

+ 2 - 0
packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx

@@ -11,6 +11,8 @@ export function DialogHelp() {
 
   useKeyboard((evt) => {
     if (evt.name === "return" || evt.name === "escape") {
+      evt.preventDefault()
+      evt.stopPropagation()
       dialog.clear()
     }
   })

+ 2 - 0
packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx

@@ -29,6 +29,8 @@ export function DialogPrompt(props: DialogPromptProps) {
       return
     }
     if (evt.name === "return") {
+      evt.preventDefault()
+      evt.stopPropagation()
       props.onConfirm?.(textarea.plainText)
     }
   })