diff --git a/examples/adjust-overflow.tsx b/examples/adjust-overflow.tsx
index 7e789ff8..8108611d 100644
--- a/examples/adjust-overflow.tsx
+++ b/examples/adjust-overflow.tsx
@@ -121,7 +121,7 @@ const placements = {
function Demo() {
return (
-
+
diff --git a/src/OptionList/useKeyboard.ts b/src/OptionList/useKeyboard.ts
index 6131a862..bdc00d5b 100644
--- a/src/OptionList/useKeyboard.ts
+++ b/src/OptionList/useKeyboard.ts
@@ -135,6 +135,9 @@ export default (
}
case KeyCode.LEFT: {
+ if (searchValue) {
+ break;
+ }
if (rtl) {
nextColumn();
} else {
@@ -144,6 +147,9 @@ export default (
}
case KeyCode.RIGHT: {
+ if (searchValue) {
+ break;
+ }
if (rtl) {
prevColumn();
} else {
diff --git a/tests/keyboard.spec.tsx b/tests/keyboard.spec.tsx
index d0230eca..ca066129 100644
--- a/tests/keyboard.spec.tsx
+++ b/tests/keyboard.spec.tsx
@@ -245,6 +245,19 @@ describe('Cascader.Keyboard', () => {
).toHaveLength(0);
});
+ it('should not switch column when press left/right key in search input', () => {
+ wrapper = mount();
+ wrapper.find('input').simulate('change', {
+ target: {
+ value: '123',
+ },
+ });
+ wrapper.find('input').simulate('keyDown', { which: KeyCode.LEFT });
+ expect(wrapper.isOpen()).toBeTruthy();
+ wrapper.find('input').simulate('keyDown', { which: KeyCode.RIGHT });
+ expect(wrapper.isOpen()).toBeTruthy();
+ });
+
// TODO: This is strange that we need check on this
it.skip('should not handle keyDown events when children specify the onKeyDown', () => {
wrapper = mount(