code: function gestureEnd(element, clientX, clientY) {
  
    // Examine velocity of last movement to see if user is flicking.
    const velocity = element[previousVelocityKey];
    const flickThresholdVelocity = 800; // speed in pixels/second
  
    let flickPositive;
    if (velocity >= flickThresholdVelocity) {
      // Flicked right/down at high speed.
      flickPositive = true;
    } else if (velocity <= -flickThresholdVelocity) {
      // Flicked left/up at high speed.
      flickPositive = false;
    } else {
      // Finished at low speed.
      const swipeFraction = getSwipeFraction(element, clientX, clientY);
      if (swipeFraction <= -0.5) {
        flickPositive = false;
      } else if (swipeFraction >= 0.5) {
        flickPositive = true;
      }
    }
  
    if (typeof flickPositive !== 'undefined') {
      const vertical = element.state.swipeAxis === 'vertical';
      const gesture = vertical ?
        (flickPositive ? symbols.swipeDown : symbols.swipeUp) :
        (flickPositive ? symbols.swipeRight : symbols.swipeLeft);
      // If component has method for indicated gesture, invoke it.
      if (gesture && element[gesture]) {
        element[gesture]();
      }
    }
  
    element.setState({ swipeFraction: null });
  }
docs: /*
  Invoked when the user has finished a touch operation.
   /* eslint-disable no-unused-vars