react-native-gesture-handler
Version:
Declarative API exposing native platform touch and gesture system to React Native
35 lines (31 loc) • 884 B
text/typescript
/* eslint-disable eslint-comments/no-unlimited-disable */
/* eslint-disable */
import GestureHandler, { HammerInputExt } from './GestureHandler';
import { PixelRatio } from 'react-native';
abstract class DraggingGestureHandler extends GestureHandler {
get shouldEnableGestureOnSetup() {
return true;
}
transformNativeEvent({
deltaX,
deltaY,
velocityX,
velocityY,
center: { x, y },
}: HammerInputExt) {
// @ts-ignore FIXME(TS)
const rect = this.view!.getBoundingClientRect();
const ratio = PixelRatio.get();
return {
translationX: deltaX - (this.__initialX || 0),
translationY: deltaY - (this.__initialY || 0),
absoluteX: x,
absoluteY: y,
velocityX: velocityX * ratio,
velocityY: velocityY * ratio,
x: x - rect.left,
y: y - rect.top,
};
}
}
export default DraggingGestureHandler;