@samitouri / QOS-React-2 / commits / 6514e4a179

React Flare: fix PressLegacy preventDefault issue (#18904)

Dominic Gannaway committed May 13, 2020 at 13:59 UTC 6514e4a179d7f7759f5aca348477c1299a4235ad
2 files changed +12 -3
packages/react-interactions/events/src/dom/PressLegacy.js
+10 -2
@@ -586,7 +586,11 @@ const pressResponderImpl = {
586 !ctrlKey &&
587 !altKey
588 ) {
589 - nativeEvent.preventDefault();
589 + // Prevent spacebar press from scrolling the window
590 + const key = nativeEvent.key;
591 + if (key === ' ' || key === 'Spacebar') {
592 + nativeEvent.preventDefault();
593 + }
594 state.shouldPreventClick = true;
595 }
596 } else {
@@ -637,7 +641,11 @@ const pressResponderImpl = {
641 addRootEventTypes(context, state);
642 } else {
643 // Prevent spacebar press from scrolling the window
640 - if (isValidKeyboardEvent(nativeEvent) && nativeEvent.key === ' ') {
644 + const key = nativeEvent.key;
645 + if (
646 + isValidKeyboardEvent(nativeEvent) &&
647 + (key === ' ' || key === 'Spacebar')
648 + ) {
649 nativeEvent.preventDefault();
650 }
651 }
packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js
+2 -1
@@ -1054,8 +1054,9 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
1054 ReactDOM.render(<Component />, container);
1055
1056 const target = createEventTarget(ref.current);
1057 - target.keydown({key: 'Enter', preventDefault});
1057 + target.keydown({key: 'Enter'});
1058 target.keyup({key: 'Enter'});
1059 + target.click({preventDefault});
1060 expect(preventDefault).toBeCalled();
1061 expect(onPress).toHaveBeenCalledWith(
1062 expect.objectContaining({defaultPrevented: true}),