Skip to content

Commit

Permalink
Add new MouseTransition, extend HTML5toTouch to use MouseTransition
Browse files Browse the repository at this point in the history
  • Loading branch information
LouisBrunner committed Jan 6, 2018
1 parent de171c0 commit 25eb78d
Show file tree
Hide file tree
Showing 10 changed files with 34 additions and 10 deletions.
2 changes: 1 addition & 1 deletion dist/RDMBHTML5toTouch.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/ReactDnDMultiBackend.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/dnd-multi-backend.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/examples_react-dnd-multi-backend.min.js

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions packages/dnd-multi-backend/src/Transitions.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,10 @@ export const HTML5DragTransition = createTransition('dragstart', (event) => {
}
return false;
});

export const MouseTransition = createTransition('mousedown', (event) => {
if (event.type) {
return event.type.indexOf('touch') === -1 && event.type.indexOf('mouse') !== -1;
}
return false;
});
14 changes: 14 additions & 0 deletions packages/dnd-multi-backend/src/__tests__/Transitions_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,18 @@ describe('Transitions collection', () => {
expect(Transitions.TouchTransition.check({click: true})).to.equal(false);
});
});

describe('MouseTransition object', () => {
it('calls createTransition correctly', () => {
expect(Transitions.MouseTransition._isMBTransition).to.equal(true);
expect(Transitions.MouseTransition.event).to.equal('mousedown');

expect(Transitions.MouseTransition.check({touches: true})).to.equal(false);
expect(Transitions.MouseTransition.check({click: true})).to.equal(false);
expect(Transitions.MouseTransition.check({type: 'abc'})).to.equal(false);
expect(Transitions.MouseTransition.check({type: 'xyztouchxyz'})).to.equal(false);
expect(Transitions.MouseTransition.check({type: 'xyztouchamousexyz'})).to.equal(false);
expect(Transitions.MouseTransition.check({type: 'xyzmousexyz'})).to.equal(true);
});
});
});
3 changes: 2 additions & 1 deletion packages/dnd-multi-backend/src/__tests__/index_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import * as Module from '../index';

import MultiBackend from '../MultiBackend';

import { HTML5DragTransition, TouchTransition } from '../Transitions';
import { HTML5DragTransition, TouchTransition, MouseTransition } from '../Transitions';
import createTransition from '../createTransition';


Expand All @@ -21,6 +21,7 @@ describe('ReactDnDMultiBackend module', () => {
it('exports utils components', () => {
expect(Module.HTML5DragTransition).to.equal(HTML5DragTransition);
expect(Module.TouchTransition).to.equal(TouchTransition);
expect(Module.MouseTransition).to.equal(MouseTransition);
expect(Module.createTransition).to.equal(createTransition);
});
});
4 changes: 2 additions & 2 deletions packages/dnd-multi-backend/src/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import MultiBackend from './MultiBackend';
import { HTML5DragTransition, TouchTransition } from './Transitions';
import { HTML5DragTransition, TouchTransition, MouseTransition } from './Transitions';
import createTransition from './createTransition';

export { HTML5DragTransition, TouchTransition, createTransition };
export { HTML5DragTransition, TouchTransition, MouseTransition, createTransition };

export default (managerOrOptions) => {
if (managerOrOptions.getMonitor) {
Expand Down
3 changes: 2 additions & 1 deletion packages/react-dnd-multi-backend/src/HTML5toTouch.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import HTML5Backend from 'react-dnd-html5-backend';
import TouchBackend from 'react-dnd-touch-backend';

import { TouchTransition } from 'dnd-multi-backend';
import { TouchTransition, MouseTransition } from 'dnd-multi-backend';

export default {
backends: [
{
backend: HTML5Backend,
transition: MouseTransition,
},
{
backend: TouchBackend({enableMouseEvents: true}),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable no-unused-expressions */
import { expect } from 'tests/framework';
import HTML5toTouch from '../HTML5toTouch';
import { TouchTransition } from 'dnd-multi-backend';
import { TouchTransition, MouseTransition } from 'dnd-multi-backend';

describe('HTML5toTouch pipeline', () => {
it('has the HTML5 and Touch backends', () => {
Expand All @@ -11,7 +11,8 @@ describe('HTML5toTouch pipeline', () => {

expect(HTML5toTouch.backends[0]).to.be.an.instanceof(Object);
expect(HTML5toTouch.backends[0].backend).not.to.be.undefined;
expect(HTML5toTouch.backends[0].transition).to.be.undefined;
expect(HTML5toTouch.backends[0].preview).to.be.undefined;
expect(HTML5toTouch.backends[0].transition).to.equal(MouseTransition);

expect(HTML5toTouch.backends[1]).to.be.an.instanceof(Object);
expect(HTML5toTouch.backends[1].backend).not.to.be.undefined;
Expand Down

0 comments on commit 25eb78d

Please sign in to comment.