From a869d8b78108144b5d55b7833799002c9559f085 Mon Sep 17 00:00:00 2001 From: Lingwei Wu Date: Tue, 20 Jan 2026 15:04:03 +0800 Subject: [PATCH] fix(ui): prevent Enter key action during IME composition - Add isComposing check to avoid triggering selection during IME input confirmation --- packages/ui/src/components/list.tsx | 2 +- packages/ui/src/hooks/use-filtered-list.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/components/list.tsx b/packages/ui/src/components/list.tsx index 6929f6b7347..2815805adf0 100644 --- a/packages/ui/src/components/list.tsx +++ b/packages/ui/src/components/list.tsx @@ -133,7 +133,7 @@ export function List(props: ListProps & { ref?: (ref: ListRef) => void }) const index = selected ? all.indexOf(selected) : -1 props.onKeyEvent?.(e, selected) - if (e.key === "Enter") { + if (e.key === "Enter" && !e.isComposing) { e.preventDefault() if (selected) handleSelect(selected, index) } else { diff --git a/packages/ui/src/hooks/use-filtered-list.tsx b/packages/ui/src/hooks/use-filtered-list.tsx index b8a55000ed0..8595af529f2 100644 --- a/packages/ui/src/hooks/use-filtered-list.tsx +++ b/packages/ui/src/hooks/use-filtered-list.tsx @@ -77,7 +77,7 @@ export function useFilteredList(props: FilteredListProps) { } const onKeyDown = (event: KeyboardEvent) => { - if (event.key === "Enter") { + if (event.key === "Enter" && !event.isComposing) { event.preventDefault() const selectedIndex = flat().findIndex((x) => props.key(x) === list.active()) const selected = flat()[selectedIndex]