From 02f5e49909ed859b9c88c974ce8ab55366b8a577 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Wed, 22 Jul 2015 13:52:18 -0700 Subject: [PATCH] touch move works --- .../app/routes/Hikes/components/Question.jsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/common/app/routes/Hikes/components/Question.jsx b/common/app/routes/Hikes/components/Question.jsx index 72378a4447..cac42e3682 100644 --- a/common/app/routes/Hikes/components/Question.jsx +++ b/common/app/routes/Hikes/components/Question.jsx @@ -11,7 +11,7 @@ import { } from 'react-bootstrap'; const debug = debugFactory('freecc:hikes'); -const ANSWER_THRESHOLD = 250; +const ANSWER_THRESHOLD = 200; export default React.createClass({ displayName: 'Question', @@ -45,7 +45,10 @@ export default React.createClass({ }; }, - handleMouseDown({ pageX, pageY }) { + handleMouseDown({ pageX, pageY, touches }) { + if (touches) { + ({ pageX, pageY } = touches[0]); + } const { mouse: [pressX, pressY] } = this.state; const dx = pageX - pressX; const dy = pageY - pressY; @@ -72,7 +75,15 @@ export default React.createClass({ }, handleMouseMove(answer) { - return ({ pageX, pageY }) => { + return (e) => { + let { pageX, pageY, touches } = e; + + if (touches) { + e.preventDefault(); + // these reassins the values of pageX, pageY from touches + ({ pageX, pageY } = touches[0]); + } + const { isPressed, delta: [dx, dy] } = this.state; if (isPressed) { const mouse = [pageX - dx, pageY - dy]; @@ -208,6 +219,9 @@ export default React.createClass({ onMouseLeave={ this.handleMouseUp } onMouseMove={ this.handleMouseMove(answer) } onMouseUp={ this.handleMouseUp } + onTouchEnd={ this.handleMouseUp } + onTouchMove={ this.handleMouseMove(answer) } + onTouchStart={ this.handleMouseDown } style={ style }>

{ question }