Пример #1
0
 extractEvents: function(
     topLevelType,
     topLevelTarget,
     topLevelTargetID,
     nativeEvent) {
   if (!isStartish(topLevelType) && !isEndish(topLevelType)) {
     return null;
   }
   var event = null;
   var distance = getDistance(startCoords, nativeEvent);
   if (isEndish(topLevelType) && distance < tapMoveThreshold) {
     event = SyntheticUIEvent.getPooled(
       eventTypes.touchTap,
       topLevelTargetID,
       nativeEvent
     );
   }
   if (isStartish(topLevelType)) {
     startCoords.x = getAxisCoordOfEvent(Axis.x, nativeEvent);
     startCoords.y = getAxisCoordOfEvent(Axis.y, nativeEvent);
   } else if (isEndish(topLevelType)) {
     startCoords.x = 0;
     startCoords.y = 0;
   }
   EventPropagators.accumulateTwoPhaseDispatches(event);
   return event;
 }
Пример #2
0
 extractEvents: function(
   topLevelType: mixed,
   targetInst: mixed,
   nativeEvent: _Touch,
   nativeEventTarget: EventTarget,
 ) {
   if (!isStartish(topLevelType) && !isEndish(topLevelType)) {
     return null;
   }
   // on ios, there is a delay after touch event and synthetic
   // mouse events, so that user can perform double tap
   // solution: ignore mouse events following touchevent within small timeframe
   if (touchEvents.indexOf(topLevelType) !== -1) {
     usedTouch = true;
     usedTouchTime = Date.now();
   } else {
     if (usedTouch && Date.now() - usedTouchTime < TOUCH_DELAY) {
       return null;
     }
   }
   var event = null;
   var distance = getDistance(startCoords, nativeEvent);
   if (isEndish(topLevelType) && distance < tapMoveThreshold) {
     event = SyntheticUIEvent.getPooled(
       eventTypes.touchTap,
       targetInst,
       nativeEvent,
       nativeEventTarget,
     );
   }
   if (isStartish(topLevelType)) {
     startCoords.x = getAxisCoordOfEvent(Axis.x, nativeEvent);
     startCoords.y = getAxisCoordOfEvent(Axis.y, nativeEvent);
   } else if (isEndish(topLevelType)) {
     startCoords.x = 0;
     startCoords.y = 0;
   }
   EventPropagators.accumulateTwoPhaseDispatches(event);
   return event;
 },