Skip to content

Commit

Permalink
[Flare] Small Swipe/Drag fixes (facebook#15825)
Browse files Browse the repository at this point in the history
  • Loading branch information
trueadm authored and rickhanlonii committed Jun 25, 2019
1 parent 71df942 commit 21fa6dd
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 13 deletions.
5 changes: 4 additions & 1 deletion packages/react-events/src/Drag.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,10 @@ const DragResponder = {
const y = (obj: any).screenY;
state.x = x;
state.y = y;
if (!state.isDragging && x !== state.startX && y !== state.startY) {
if (x === state.startX && y === state.startY) {
return;
}
if (!state.isDragging) {
let shouldEnableDragging = true;

if (
Expand Down
14 changes: 8 additions & 6 deletions packages/react-events/src/Swipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,14 @@ function createSwipeEvent(
target: Element | Document,
eventData?: EventData,
): SwipeEvent {
return {
target,
type,
timeStamp: context.getTimeStamp(),
...eventData,
};
return context.objectAssign(
{
target,
type,
timeStamp: context.getTimeStamp(),
},
eventData,
);
}

function dispatchSwipeEvent(
Expand Down
15 changes: 9 additions & 6 deletions packages/react-events/src/__tests__/Drag-test.internal.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ describe('Drag event responder', () => {
ReactDOM.render(<Component />, container);

const mouseOverEvent = document.createEvent('MouseEvents');
mouseOverEvent.initEvent('mousedown', true, true);
mouseOverEvent.initEvent('mousedown', true, true, window, 1, 0, 0);
divRef.current.dispatchEvent(mouseOverEvent);

const mouseMoveEvent = document.createEvent('MouseEvents');
Expand All @@ -166,8 +166,8 @@ describe('Drag event responder', () => {
true,
window,
1,
index,
index,
index + 1,
index + 1,
50,
50,
);
Expand All @@ -178,12 +178,15 @@ describe('Drag event responder', () => {
mouseUpEvent.initEvent('mouseup', true, true);
divRef.current.dispatchEvent(mouseUpEvent);
expect(events).toHaveLength(20);
let index = 0;
expect(events).toEqual(
expect.arrayContaining([
expect.objectContaining({
diffX: index,
diffY: index++,
diffX: 2,
diffY: 2,
}),
expect.objectContaining({
diffX: 21,
diffY: 21,
}),
]),
);
Expand Down

0 comments on commit 21fa6dd

Please sign in to comment.