12345678910111213141516171819202122232425262728293031 |
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- * @providesModule TouchEventUtils
- */
- const TouchEventUtils = {
- /**
- * Utility function for common case of extracting out the primary touch from a
- * touch event.
- * - `touchEnd` events usually do not have the `touches` property.
- * http://stackoverflow.com/questions/3666929/
- * mobile-sarai-touchend-event-not-firing-when-last-touch-is-removed
- *
- * @param {Event} nativeEvent Native event that may or may not be a touch.
- * @return {TouchesObject?} an object with pageX and pageY or null.
- */
- extractSingleTouch: function (nativeEvent) {
- const touches = nativeEvent.touches;
- const changedTouches = nativeEvent.changedTouches;
- const hasTouches = touches && touches.length > 0;
- const hasChangedTouches = changedTouches && changedTouches.length > 0;
- return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;
- }
- };
- module.exports = TouchEventUtils;
|