diff options
| author | Cas <[email protected]> | 2026-04-28 04:31:49 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-27 15:31:49 -0500 |
| commit | e0f3df8252c93634de7067f7fbc9934d47453700 (patch) | |
| tree | a439b55edcd50a11b08a8c4b260d8a4faf98b44f | |
| parent | 9cd2e3a1c347459addfa818e8ca5a5df922d5e93 (diff) | |
| download | opencode-e0f3df8252c93634de7067f7fbc9934d47453700.tar.gz opencode-e0f3df8252c93634de7067f7fbc9934d47453700.zip | |
fix(tui): consume Enter in dialog useKeyboard handlers (#23390)
7 files changed, 14 insertions, 0 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx index ace4b090b..b512f9021 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx +++ b/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) } diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx index 4a22a0c49..3d3059d95 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +++ b/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") { diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx index 642c73b48..fb159115d 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx +++ b/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() } diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx index 48adddaed..3870cf816 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx +++ b/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() diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx index 513d34910..b9362db46 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx +++ b/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, diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx index 4e4527930..24b93b96a 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx +++ b/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() } }) diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx index 6df99c33f..92d6d277d 100644 --- a/packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx +++ b/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) } }) |
