UNPKG

react-native-gesture-handler

Version:

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

55 lines (46 loc) 1.47 kB
import { isJestEnv } from '../utils'; import { GestureType } from './gestures/gesture'; import { GestureEvent, HandlerStateChangeEvent } from './gestureHandlerCommon'; export const handlerIDToTag: Record<string, number> = {}; const gestures = new Map<number, GestureType>(); const oldHandlers = new Map<number, GestureHandlerCallbacks>(); const testIDs = new Map<string, number>(); export function registerHandler( handlerTag: number, handler: GestureType, testID?: string ) { gestures.set(handlerTag, handler); if (isJestEnv() && testID) { testIDs.set(testID, handlerTag); } } export function registerOldGestureHandler( handlerTag: number, handler: GestureHandlerCallbacks ) { oldHandlers.set(handlerTag, handler); } export function unregisterHandler(handlerTag: number, testID?: string) { gestures.delete(handlerTag); if (isJestEnv() && testID) { testIDs.delete(testID); } } export function findHandler(handlerTag: number) { return gestures.get(handlerTag); } export function findOldGestureHandler(handlerTag: number) { return oldHandlers.get(handlerTag); } export function findHandlerByTestID(testID: string) { const handlerTag = testIDs.get(testID); if (handlerTag !== undefined) { return findHandler(handlerTag) ?? null; } return null; } export interface GestureHandlerCallbacks { onGestureEvent: (event: GestureEvent<any>) => void; onGestureStateChange: (event: HandlerStateChangeEvent<any>) => void; }