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(