summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCas <[email protected]>2026-04-28 04:31:49 +0800
committerGitHub <[email protected]>2026-04-27 15:31:49 -0500
commite0f3df8252c93634de7067f7fbc9934d47453700 (patch)
treea439b55edcd50a11b08a8c4b260d8a4faf98b44f
parent9cd2e3a1c347459addfa818e8ca5a5df922d5e93 (diff)
downloadopencode-e0f3df8252c93634de7067f7fbc9934d47453700.tar.gz
opencode-e0f3df8252c93634de7067f7fbc9934d47453700.zip
fix(tui): consume Enter in dialog useKeyboard handlers (#23390)
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-go-upsell.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-alert.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-export-options.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-help.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-prompt.tsx2
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)
}
})