UNPKG

react-native-gesture-handler

Version:

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

52 lines (48 loc) 1.25 kB
import { useMemo } from 'react'; import type { ReanimatedContext } from '../../../handlers/gestures/reanimatedWrapper'; import type { BaseGestureConfig, GestureCallbacks, GestureHandlerEventWithHandlerData, } from '../../types'; import { eventHandler } from './eventHandler'; export function useGestureEventHandler< TConfig, THandlerData, TExtendedHandlerData extends THandlerData, >( handlerTag: number, handlers: GestureCallbacks<THandlerData, TExtendedHandlerData>, config: BaseGestureConfig<TConfig, THandlerData, TExtendedHandlerData> ) { const jsContext: ReanimatedContext<TExtendedHandlerData> = useMemo(() => { return { lastUpdateEvent: undefined, }; }, []); return useMemo(() => { return ( event: GestureHandlerEventWithHandlerData< THandlerData, TExtendedHandlerData > ) => { eventHandler( handlerTag, event, handlers, config.changeEventCalculator, jsContext, !!config.dispatchesAnimatedEvents, config.fillInDefaultValues ); }; }, [ handlerTag, handlers, config.changeEventCalculator, config.dispatchesAnimatedEvents, config.fillInDefaultValues, jsContext, ]); }