UNPKG

@tamagui/react-native-web-lite

Version:
79 lines (78 loc) 3.91 kB
var currentCentroidXOfTouchesChangedAfter = function () { return 0; }, currentCentroidYOfTouchesChangedAfter = function () { return 0; }, previousCentroidXOfTouchesChangedAfter = function () { return 0; }, previousCentroidYOfTouchesChangedAfter = function () { return 0; }, PanResponder = { _initializeGestureState(gestureState) { gestureState.moveX = 0, gestureState.moveY = 0, gestureState.x0 = 0, gestureState.y0 = 0, gestureState.dx = 0, gestureState.dy = 0, gestureState.vx = 0, gestureState.vy = 0, gestureState.numberActiveTouches = 0, gestureState._accountsForMovesUpTo = 0; }, _updateGestureStateOnMove(gestureState, touchHistory) { gestureState.numberActiveTouches = touchHistory.numberActiveTouches, gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo), gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo); var movedAfter = gestureState._accountsForMovesUpTo, prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter), prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter), nextDX = gestureState.dx + (gestureState.moveX - prevX), nextDY = gestureState.dy + (gestureState.moveY - prevY), dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo; gestureState.vx = (nextDX - gestureState.dx) / dt, gestureState.vy = (nextDY - gestureState.dy) / dt, gestureState.dx = nextDX, gestureState.dy = nextDY, gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp; }, create(config) { var _this = this, interactionState = { handle: null }, gestureState = { stateID: Math.random(), moveX: 0, moveY: 0, x0: 0, y0: 0, dx: 0, dy: 0, vx: 0, vy: 0, numberActiveTouches: 0, _accountsForMovesUpTo: 0 }, panHandlers = { onStartShouldSetResponder: function (evt) { return config.onStartShouldSetPanResponder ? config.onStartShouldSetPanResponder(evt, gestureState) : !1; }, onMoveShouldSetResponder: function (evt) { return config.onMoveShouldSetPanResponder ? config.onMoveShouldSetPanResponder(evt, gestureState) : !1; }, onResponderGrant: function (evt) { _this._initializeGestureState(gestureState), gestureState.x0 = evt.nativeEvent.pageX || 0, gestureState.y0 = evt.nativeEvent.pageY || 0, config.onPanResponderGrant && config.onPanResponderGrant(evt, gestureState); }, onResponderMove: function (evt) { evt.nativeEvent.touches && evt.nativeEvent.touches.length === 1 && _this._updateGestureStateOnMove(gestureState, evt.nativeEvent), config.onPanResponderMove && config.onPanResponderMove(evt, gestureState); }, onResponderRelease: function (evt) { config.onPanResponderRelease && config.onPanResponderRelease(evt, gestureState), interactionState.handle && (interactionState.handle = null); }, onResponderTerminate: function (evt) { config.onPanResponderTerminate && config.onPanResponderTerminate(evt, gestureState), interactionState.handle && (interactionState.handle = null); }, onResponderTerminationRequest: function (evt) { return config.onPanResponderTerminationRequest ? config.onPanResponderTerminationRequest(evt, gestureState) : !0; } }; return { panHandlers, getInteractionHandle() { return interactionState.handle; } }; } }, PanResponder_default = PanResponder; export { PanResponder_default as default }; //# sourceMappingURL=index.native.js.map