diff --git a/src/SelectInput/index.tsx b/src/SelectInput/index.tsx index 79980956..a34a260b 100644 --- a/src/SelectInput/index.tsx +++ b/src/SelectInput/index.tsx @@ -147,7 +147,8 @@ export default React.forwardRef(function Selec } // Open dropdown when a valid open key is pressed - if (isValidateOpenKey(which)) { + const isModifier = event.ctrlKey || event.altKey || event.metaKey; + if (!isModifier && isValidateOpenKey(which)) { toggleOpen(true); } }, diff --git a/tests/Select.test.tsx b/tests/Select.test.tsx index 34afca48..ebd495c5 100644 --- a/tests/Select.test.tsx +++ b/tests/Select.test.tsx @@ -1008,6 +1008,36 @@ describe('Select.Basic', () => { expectOpen(container, true); }); + it('not open on browser hotkeys with modifier keys', () => { + const { container } = render( + , + ); + + const inputEle = container.querySelector('input'); + + // Ctrl+key combinations (e.g., Ctrl+F for find, Ctrl+S for save) + keyDown(inputEle, KeyCode.F, { ctrlKey: true }); + expectOpen(container, false); + + keyDown(inputEle, KeyCode.S, { ctrlKey: true }); + expectOpen(container, false); + + // Alt+key combinations + keyDown(inputEle, KeyCode.F, { altKey: true }); + expectOpen(container, false); + + // Meta+key combinations (e.g., Cmd+key on Mac) + keyDown(inputEle, KeyCode.F, { metaKey: true }); + expectOpen(container, false); + + // Regular key without modifiers should still open + keyDown(inputEle, KeyCode.NUM_ONE); + expectOpen(container, true); + }); + it('close after select', () => { const { container } = render(