Skip to content

Commit e40e976

Browse files
authored
Fix IME bug in QueryList (#7028)
1 parent 0e51e6c commit e40e976

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
type: fix
2+
fix:
3+
description: Fix buggy behavior with IME input in QueryList component
4+
links:
5+
- https://github.com/palantir/blueprint/pull/7028

packages/select/src/components/query-list/queryList.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -522,16 +522,18 @@ export class QueryList<T, A extends readonly T[] = T[]> extends AbstractComponen
522522
};
523523

524524
private handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {
525-
const { key } = event;
526-
const direction = Utils.getArrowKeyDirection(event, ["ArrowUp"], ["ArrowDown"]);
527-
if (direction !== undefined) {
528-
event.preventDefault();
529-
const nextActiveItem = this.getNextActiveItem(direction);
530-
if (nextActiveItem != null) {
531-
this.setActiveItem(nextActiveItem);
525+
if (!event.nativeEvent.isComposing) {
526+
const { key } = event;
527+
const direction = Utils.getArrowKeyDirection(event, ["ArrowUp"], ["ArrowDown"]);
528+
if (direction !== undefined) {
529+
event.preventDefault();
530+
const nextActiveItem = this.getNextActiveItem(direction);
531+
if (nextActiveItem != null) {
532+
this.setActiveItem(nextActiveItem);
533+
}
534+
} else if (key === "Enter") {
535+
this.isEnterKeyPressed = true;
532536
}
533-
} else if (key === "Enter") {
534-
this.isEnterKeyPressed = true;
535537
}
536538

537539
this.props.onKeyDown?.(event);

0 commit comments

Comments
 (0)