UNPKG

react-native-gesture-handler

Version:

Declarative API exposing native platform touch and gesture system to React Native

87 lines (75 loc) 2.65 kB
import { BaseGestureConfig, BaseGesture } from './gesture'; import { TapGestureConfig } from '../TapGestureHandler'; import type { TapGestureHandlerEventPayload } from '../GestureHandlerEventPayload'; export class TapGesture extends BaseGesture<TapGestureHandlerEventPayload> { public config: BaseGestureConfig & TapGestureConfig = {}; constructor() { super(); this.handlerName = 'TapGestureHandler'; this.shouldCancelWhenOutside(true); } /** * Minimum number of pointers (fingers) required to be placed before the gesture activates. * Should be a positive integer. The default value is 1. * @param minPointers */ minPointers(minPointers: number) { this.config.minPointers = minPointers; return this; } /** * Number of tap gestures required to activate the gesture. * The default value is 1. * @param count */ numberOfTaps(count: number) { this.config.numberOfTaps = count; return this; } /** * Maximum distance, expressed in points, that defines how far the finger is allowed to travel during a tap gesture. * @param maxDist * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdistancevalue-number */ maxDistance(maxDist: number) { this.config.maxDist = maxDist; return this; } /** * Maximum time, expressed in milliseconds, that defines how fast a finger must be released after a touch. * The default value is 500. * @param duration */ maxDuration(duration: number) { this.config.maxDurationMs = duration; return this; } /** * Maximum time, expressed in milliseconds, that can pass before the next tap — if many taps are required. * The default value is 500. * @param delay */ maxDelay(delay: number) { this.config.maxDelayMs = delay; return this; } /** * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the X axis during a tap gesture. * @param delta * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltaxvalue-number */ maxDeltaX(delta: number) { this.config.maxDeltaX = delta; return this; } /** * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the Y axis during a tap gesture. * @param delta * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltayvalue-number */ maxDeltaY(delta: number) { this.config.maxDeltaY = delta; return this; } } export type TapGestureType = InstanceType<typeof TapGesture>;