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

[Flare] Small Swipe/Drag fixes (#15825)

Dominic Gannaway committed Jun 5, 2019 at 17:51 UTC c72dceffbce0856711d0fde0fb4f2a312734d591
3 files changed +21 -13
packages/react-events/src/Drag.js
+4 -1
@@ -166,7 +166,10 @@ const DragResponder = {
166 const y = (obj: any).screenY;
167 state.x = x;
168 state.y = y;
169 - if (!state.isDragging && x !== state.startX && y !== state.startY) {
169 + if (x === state.startX && y === state.startY) {
170 + return;
171 + }
172 + if (!state.isDragging) {
173 let shouldEnableDragging = true;
174
175 if (
packages/react-events/src/Swipe.js
+8 -6
@@ -53,12 +53,14 @@ function createSwipeEvent(
53 target: Element | Document,
54 eventData?: EventData,
55 ): SwipeEvent {
56 - return {
57 - target,
58 - type,
59 - timeStamp: context.getTimeStamp(),
60 - ...eventData,
61 - };
56 + return context.objectAssign(
57 + {
58 + target,
59 + type,
60 + timeStamp: context.getTimeStamp(),
61 + },
62 + eventData,
63 + );
64 }
65
66 function dispatchSwipeEvent(
packages/react-events/src/__tests__/Drag-test.internal.js
+9 -6
@@ -155,7 +155,7 @@ describe('Drag event responder', () => {
155 ReactDOM.render(<Component />, container);
156
157 const mouseOverEvent = document.createEvent('MouseEvents');
158 - mouseOverEvent.initEvent('mousedown', true, true);
158 + mouseOverEvent.initEvent('mousedown', true, true, window, 1, 0, 0);
159 divRef.current.dispatchEvent(mouseOverEvent);
160
161 const mouseMoveEvent = document.createEvent('MouseEvents');
@@ -166,8 +166,8 @@ describe('Drag event responder', () => {
166 true,
167 window,
168 1,
169 - index,
170 - index,
169 + index + 1,
170 + index + 1,
171 50,
172 50,
173 );
@@ -178,12 +178,15 @@ describe('Drag event responder', () => {
178 mouseUpEvent.initEvent('mouseup', true, true);
179 divRef.current.dispatchEvent(mouseUpEvent);
180 expect(events).toHaveLength(20);
181 - let index = 0;
181 expect(events).toEqual(
182 expect.arrayContaining([
183 expect.objectContaining({
185 - diffX: index,
186 - diffY: index++,
184 + diffX: 2,
185 + diffY: 2,
186 + }),
187 + expect.objectContaining({
188 + diffX: 21,
189 + diffY: 21,
190 }),
191 ]),
192 );