[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
);