@samitouri / QOS-React-2 / commits / f7ec65eeba

[react-interactions] Make events non-passive to allow preventDefault (#17136)

Dominic Gannaway committed Oct 21, 2019 at 22:37 UTC f7ec65eeba6ca9194a09d317fbeb46fd79530b09
2 files changed +16 -5
packages/react-interactions/events/src/dom/PressLegacy.js
+11 -4
@@ -114,11 +114,18 @@ const DEFAULT_PRESS_RETENTION_OFFSET = {
114 };
115
116 const targetEventTypes = hasPointerEvents
117 - ? ['keydown_active', 'pointerdown', 'click_active']
118 - : ['keydown_active', 'touchstart', 'mousedown', 'click_active'];
117 + ? ['keydown_active', 'pointerdown_active', 'click_active']
118 + : ['keydown_active', 'touchstart', 'mousedown_active', 'click_active'];
119
120 const rootEventTypes = hasPointerEvents
121 - ? ['pointerup', 'pointermove', 'pointercancel', 'click', 'keyup', 'scroll']
121 + ? [
122 + 'pointerup_active',
123 + 'pointermove',
124 + 'pointercancel',
125 + 'click',
126 + 'keyup',
127 + 'scroll',
128 + ]
129 : [
130 'click',
131 'keyup',
@@ -128,7 +135,7 @@ const rootEventTypes = hasPointerEvents
135 'touchcancel',
136 // Used as a 'cancel' signal for mouse interactions
137 'dragstart',
131 - 'mouseup',
138 + 'mouseup_active',
139 'touchend',
140 ];
141
packages/react-interactions/events/src/dom/__tests__/PressLegacy-test.internal.js
+5 -1
@@ -1134,11 +1134,13 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
1134
1135 it('event.preventDefault works as expected', () => {
1136 const onPress = jest.fn(e => e.preventDefault());
1137 + const onPressStart = jest.fn(e => e.preventDefault());
1138 + const onPressEnd = jest.fn(e => e.preventDefault());
1139 const preventDefault = jest.fn();
1140 const buttonRef = React.createRef();
1141
1142 const Component = () => {
1141 - const listener = usePress({onPress});
1143 + const listener = usePress({onPress, onPressStart, onPressEnd});
1144 return <button ref={buttonRef} listeners={listener} />;
1145 };
1146 ReactDOM.render(<Component />, container);
@@ -1147,5 +1149,7 @@ describe.each(environmentTable)('Press responder', hasPointerEvents => {
1149 target.pointerdown();
1150 target.pointerup({preventDefault});
1151 expect(preventDefault).toBeCalled();
1152 + expect(onPressStart).toBeCalled();
1153 + expect(onPressEnd).toBeCalled();
1154 });
1155 });