Skip to content

Commit 8ac6c1e

Browse files
committed
[react-interactions] Prevent duplicate onPress firing for keyboard Enter
1 parent a1ff9fd commit 8ac6c1e

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

packages/react-interactions/events/src/dom/Press.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@ function isValidKey(e): boolean {
106106

107107
function handlePreventDefault(preventDefault: ?boolean, e: any): void {
108108
const key = e.key;
109-
if (preventDefault !== false && (key === ' ' || key === 'Enter')) {
109+
if (
110+
preventDefault !== false &&
111+
(key === ' ' || key === 'Enter' || key === 'Spacebar')
112+
) {
110113
e.preventDefault();
111114
}
112115
}

packages/react-interactions/events/src/dom/PressLegacy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ const pressResponderImpl = {
570570
metaKey,
571571
shiftKey,
572572
} = (nativeEvent: MouseEvent);
573-
if (nativeEvent.key === ' ') {
573+
if (isValidKeyboardEvent(nativeEvent)) {
574574
nativeEvent.preventDefault();
575575
} else if (
576576
props.preventDefault !== false &&

packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -914,8 +914,7 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
914914
ReactDOM.render(<Component />, container);
915915

916916
const target = createEventTarget(ref.current);
917-
target.keydown({key: 'Enter'});
918-
target.click({preventDefault});
917+
target.keydown({key: 'Enter', preventDefault});
919918
target.keyup({key: 'Enter'});
920919
expect(preventDefault).toBeCalled();
921920
expect(onPress).toHaveBeenCalledWith(

0 commit comments

Comments
 (0)