diff --git a/packages/react-native-gesture-handler/apple/RNGestureHandlerDetector.mm b/packages/react-native-gesture-handler/apple/RNGestureHandlerDetector.mm index c313759013..de67ea1694 100644 --- a/packages/react-native-gesture-handler/apple/RNGestureHandlerDetector.mm +++ b/packages/react-native-gesture-handler/apple/RNGestureHandlerDetector.mm @@ -95,11 +95,12 @@ - (void)dispatchGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHan - (void)dispatchAnimatedGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerEvent)event { if (_eventEmitter != nullptr) { - std::dynamic_pointer_cast(_eventEmitter)->onGestureHandlerAnimatedEvent({ - .state = event.state, - .handlerTag = event.handlerTag, - .handlerData = event.handlerData, - }); + std::dynamic_pointer_cast(_eventEmitter) + ->onGestureHandlerAnimatedEvent({ + .state = event.state, + .handlerTag = event.handlerTag, + .handlerData = event.handlerData, + }); } } diff --git a/packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx b/packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx index 3a1a0ad502..3797e4244b 100644 --- a/packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx +++ b/packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx @@ -43,7 +43,7 @@ import { HitSlop, } from '../handlers/gestureHandlerCommon'; import { - PanGestureStateChangeEvent, + PanGestureEvent, usePanGesture, useTapGesture, } from '../v3/hooks/gestures'; @@ -434,7 +434,7 @@ const DrawerLayout = forwardRef( ); const handleRelease = useCallback( - (event: PanGestureStateChangeEvent) => { + (event: PanGestureEvent) => { 'worklet'; let { translationX: dragX, velocityX, x: touchX } = event; diff --git a/packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx b/packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx index 9724c2f730..5717376b5d 100644 --- a/packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +++ b/packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx @@ -17,8 +17,7 @@ import { SwipeDirection, } from './ReanimatedSwipeableProps'; import { - PanGestureStateChangeEvent, - PanGestureUpdateEvent, + PanGestureEvent, usePanGesture, useTapGesture, } from '../../v3/hooks/gestures'; @@ -403,7 +402,7 @@ const Swipeable = (props: SwipeableProps) => { ); const handleRelease = useCallback( - (event: PanGestureStateChangeEvent) => { + (event: PanGestureEvent) => { 'worklet'; const { velocityX } = event; userDrag.value = event.translationX; @@ -477,7 +476,7 @@ const Swipeable = (props: SwipeableProps) => { block: blocksExternalGesture, hitSlop: hitSlop, onActivate: updateElementWidths, - onUpdate: (event: PanGestureUpdateEvent) => { + onUpdate: (event: PanGestureEvent) => { 'worklet'; userDrag.value = event.translationX; @@ -501,7 +500,7 @@ const Swipeable = (props: SwipeableProps) => { updateAnimatedEvent(); }, - onDeactivate: (event: PanGestureStateChangeEvent) => { + onDeactivate: (event: PanGestureEvent) => { 'worklet'; handleRelease(event); }, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/callbacks/stateChangeHandler.ts b/packages/react-native-gesture-handler/src/v3/hooks/callbacks/stateChangeHandler.ts index 2f0602e4d0..d5d93ed785 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/callbacks/stateChangeHandler.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/callbacks/stateChangeHandler.ts @@ -7,7 +7,7 @@ import { StateChangeEventWithHandlerData, } from '../../types'; import { - flattenEvent, + flattenAndFilterEvent, isEventForHandlerWithTag, maybeExtractNativeEvent, runCallback, @@ -24,22 +24,23 @@ export function getStateChangeHandler( const eventWithData = maybeExtractNativeEvent( sourceEvent ) as GestureStateChangeEventWithHandlerData; - const event = flattenEvent(eventWithData); + const event = flattenAndFilterEvent(eventWithData); - if (!isEventForHandlerWithTag(handlerTag, event)) { + if (!isEventForHandlerWithTag(handlerTag, eventWithData)) { return; } - if (event.oldState === State.UNDETERMINED && event.state === State.BEGAN) { + const { state, oldState } = eventWithData; + + if (oldState === State.UNDETERMINED && state === State.BEGAN) { runCallback(CALLBACK_TYPE.BEGAN, callbacks, event); } else if ( - (event.oldState === State.BEGAN || - event.oldState === State.UNDETERMINED) && - event.state === State.ACTIVE + (oldState === State.BEGAN || oldState === State.UNDETERMINED) && + state === State.ACTIVE ) { runCallback(CALLBACK_TYPE.START, callbacks, event); - } else if (event.oldState !== event.state && event.state === State.END) { - if (event.oldState === State.ACTIVE) { + } else if (oldState !== state && state === State.END) { + if (oldState === State.ACTIVE) { runCallback(CALLBACK_TYPE.END, callbacks, event, true); } runCallback(CALLBACK_TYPE.FINALIZE, callbacks, event, true); @@ -48,10 +49,10 @@ export function getStateChangeHandler( context.lastUpdateEvent = undefined; } } else if ( - (event.state === State.FAILED || event.state === State.CANCELLED) && - event.state !== event.oldState + (state === State.FAILED || state === State.CANCELLED) && + state !== oldState ) { - if (event.oldState === State.ACTIVE) { + if (oldState === State.ACTIVE) { runCallback(CALLBACK_TYPE.END, callbacks, event, false); } runCallback(CALLBACK_TYPE.FINALIZE, callbacks, event, false); diff --git a/packages/react-native-gesture-handler/src/v3/hooks/callbacks/updateHandler.ts b/packages/react-native-gesture-handler/src/v3/hooks/callbacks/updateHandler.ts index aa8b7c2917..a59c9e3621 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/callbacks/updateHandler.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/callbacks/updateHandler.ts @@ -8,7 +8,7 @@ import { UpdateEventWithHandlerData, } from '../../types'; import { - flattenEvent, + flattenAndFilterEvent, isEventForHandlerWithTag, maybeExtractNativeEvent, runCallback, @@ -34,9 +34,9 @@ export function getUpdateHandler( ) : eventWithData; - const event = flattenEvent(eventWithChanges); + const event = flattenAndFilterEvent(eventWithChanges); - if (!isEventForHandlerWithTag(handlerTag, event)) { + if (!isEventForHandlerWithTag(handlerTag, eventWithData)) { return; } diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/fling/useFlingGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/fling/useFlingGesture.ts index b318414f50..3f59712238 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/fling/useFlingGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/fling/useFlingGesture.ts @@ -4,8 +4,7 @@ import { SingleGesture, SingleGestureName, WithSharedValue, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { useClonedAndRemappedConfig } from '../../utils'; @@ -28,10 +27,7 @@ type FlingGestureInternalConfig = BaseDiscreteGestureConfig< export type FlingGestureConfig = ExcludeInternalConfigProps; -export type FlingGestureStateChangeEvent = - GestureStateChangeEvent; - -export type FlingGestureUpdateEvent = GestureUpdateEvent; +export type FlingGestureEvent = GestureEvent; export type FlingGesture = SingleGesture< FlingHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/hover/useHoverGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/hover/useHoverGesture.ts index 106d35957f..1c32c76fc3 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/hover/useHoverGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/hover/useHoverGesture.ts @@ -7,8 +7,7 @@ import { HandlerData, SingleGestureName, WithSharedValue, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { @@ -40,10 +39,7 @@ type HoverGestureInternalConfig = BaseGestureConfig< export type HoverGestureConfig = ExcludeInternalConfigProps; -export type HoverGestureStateChangeEvent = - GestureStateChangeEvent; - -export type HoverGestureUpdateEvent = GestureUpdateEvent; +export type HoverGestureEvent = GestureEvent; export type HoverGesture = SingleGesture< HoverHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/index.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/index.ts index 4d0b5573a4..98b41c2ea0 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/index.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/index.ts @@ -1,111 +1,59 @@ +import type { FlingGestureEvent, FlingGesture } from './fling/useFlingGesture'; +import type { HoverGestureEvent, HoverGesture } from './hover/useHoverGesture'; import type { - FlingGestureStateChangeEvent, - FlingGestureUpdateEvent, - FlingGesture, -} from './fling/useFlingGesture'; -import type { - HoverGestureStateChangeEvent, - HoverGestureUpdateEvent, - HoverGesture, -} from './hover/useHoverGesture'; -import type { - LongPressGestureStateChangeEvent, - LongPressGestureUpdateEvent, + LongPressGestureEvent, LongPressGesture, } from './longPress/useLongPressGesture'; import type { - ManualGestureStateChangeEvent, - ManualGestureUpdateEvent, + ManualGestureEvent, ManualGesture, } from './manual/useManualGesture'; import type { - NativeGestureStateChangeEvent, - NativeGestureUpdateEvent, + NativeGestureEvent, NativeGesture, } from './native/useNativeGesture'; +import type { PanGestureEvent, PanGesture } from './pan/usePanGesture'; +import type { PinchGestureEvent, PinchGesture } from './pinch/usePinchGesture'; import type { - PanGestureStateChangeEvent, - PanGestureUpdateEvent, - PanGesture, -} from './pan/usePanGesture'; -import type { - PinchGestureStateChangeEvent, - PinchGestureUpdateEvent, - PinchGesture, -} from './pinch/usePinchGesture'; -import type { - RotationGestureStateChangeEvent, - RotationGestureUpdateEvent, + RotationGestureEvent, RotationGesture, } from './rotation/useRotationGesture'; -import type { - TapGestureStateChangeEvent, - TapGestureUpdateEvent, - TapGesture, -} from './tap/useTapGesture'; +import type { TapGestureEvent, TapGesture } from './tap/useTapGesture'; export type { TapGestureConfig } from './tap/useTapGesture'; -export type { TapGesture, TapGestureStateChangeEvent, TapGestureUpdateEvent }; +export type { TapGesture, TapGestureEvent }; export { useTapGesture } from './tap/useTapGesture'; export type { FlingGestureConfig } from './fling/useFlingGesture'; -export type { - FlingGesture, - FlingGestureStateChangeEvent, - FlingGestureUpdateEvent, -}; +export type { FlingGesture, FlingGestureEvent }; export { useFlingGesture } from './fling/useFlingGesture'; export type { LongPressGestureConfig } from './longPress/useLongPressGesture'; -export type { - LongPressGesture, - LongPressGestureStateChangeEvent, - LongPressGestureUpdateEvent, -}; +export type { LongPressGesture, LongPressGestureEvent }; export { useLongPressGesture } from './longPress/useLongPressGesture'; export type { PinchGestureConfig } from './pinch/usePinchGesture'; -export type { - PinchGesture, - PinchGestureStateChangeEvent, - PinchGestureUpdateEvent, -}; +export type { PinchGesture, PinchGestureEvent }; export { usePinchGesture } from './pinch/usePinchGesture'; export type { RotationGestureConfig } from './rotation/useRotationGesture'; -export type { - RotationGesture, - RotationGestureStateChangeEvent, - RotationGestureUpdateEvent, -}; +export type { RotationGesture, RotationGestureEvent }; export { useRotationGesture } from './rotation/useRotationGesture'; export type { HoverGestureConfig } from './hover/useHoverGesture'; -export type { - HoverGesture, - HoverGestureStateChangeEvent, - HoverGestureUpdateEvent, -}; +export type { HoverGesture, HoverGestureEvent }; export { useHoverGesture } from './hover/useHoverGesture'; export type { ManualGestureConfig } from './manual/useManualGesture'; -export type { - ManualGesture, - ManualGestureStateChangeEvent, - ManualGestureUpdateEvent, -}; +export type { ManualGesture, ManualGestureEvent }; export { useManualGesture } from './manual/useManualGesture'; export type { NativeViewGestureConfig } from './native/useNativeGesture'; -export type { - NativeGesture, - NativeGestureStateChangeEvent, - NativeGestureUpdateEvent, -}; +export type { NativeGesture, NativeGestureEvent }; export { useNativeGesture } from './native/useNativeGesture'; export type { PanGestureConfig } from './pan/usePanGesture'; -export type { PanGesture, PanGestureStateChangeEvent, PanGestureUpdateEvent }; +export type { PanGesture, PanGestureEvent }; export { usePanGesture } from './pan/usePanGesture'; export type SingleGesture = @@ -119,22 +67,12 @@ export type SingleGesture = | NativeGesture | PanGesture; -export type SingleGestureStateChangeEvent = - | TapGestureStateChangeEvent - | FlingGestureStateChangeEvent - | LongPressGestureStateChangeEvent - | RotationGestureStateChangeEvent - | HoverGestureStateChangeEvent - | ManualGestureStateChangeEvent - | NativeGestureStateChangeEvent - | PanGestureStateChangeEvent; - -export type SingleGestureUpdateEvent = - | TapGestureUpdateEvent - | FlingGestureUpdateEvent - | LongPressGestureUpdateEvent - | RotationGestureUpdateEvent - | HoverGestureUpdateEvent - | ManualGestureUpdateEvent - | NativeGestureUpdateEvent - | PanGestureUpdateEvent; +export type SingleGestureEvent = + | TapGestureEvent + | FlingGestureEvent + | LongPressGestureEvent + | RotationGestureEvent + | HoverGestureEvent + | ManualGestureEvent + | NativeGestureEvent + | PanGestureEvent; diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/longPress/useLongPressGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/longPress/useLongPressGesture.ts index 1f08f7d6e5..9f480cf9c1 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/longPress/useLongPressGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/longPress/useLongPressGesture.ts @@ -4,8 +4,7 @@ import { SingleGesture, SingleGestureName, WithSharedValue, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { useClonedAndRemappedConfig } from '../../utils'; @@ -37,11 +36,7 @@ type LongPressGestureInternalConfig = BaseDiscreteGestureConfig< LongPressGestureInternalProperties >; -export type LongPressGestureStateChangeEvent = - GestureStateChangeEvent; - -export type LongPressGestureUpdateEvent = - GestureUpdateEvent; +export type LongPressGestureEvent = GestureEvent; export type LongPressGesture = SingleGesture< LongPressHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/manual/useManualGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/manual/useManualGesture.ts index d3cde68390..c4ffef7d54 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/manual/useManualGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/manual/useManualGesture.ts @@ -3,8 +3,7 @@ import { ExcludeInternalConfigProps, SingleGesture, SingleGestureName, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { useClonedAndRemappedConfig } from '../../utils'; @@ -22,9 +21,7 @@ type ManualGestureInternalConfig = BaseGestureConfig< export type ManualGestureConfig = ExcludeInternalConfigProps; -export type ManualGestureStateChangeEvent = - GestureStateChangeEvent; -export type ManualGestureUpdateEvent = GestureUpdateEvent; +export type ManualGestureEvent = GestureEvent; export type ManualGesture = SingleGesture< ManualHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/native/useNativeGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/native/useNativeGesture.ts index 76e10065ae..80482d9e2d 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/native/useNativeGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/native/useNativeGesture.ts @@ -4,8 +4,7 @@ import { SingleGesture, SingleGestureName, WithSharedValue, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { useClonedAndRemappedConfig } from '../../utils'; @@ -26,11 +25,7 @@ type NativeViewGestureInternalConfig = BaseDiscreteGestureConfig< export type NativeViewGestureConfig = ExcludeInternalConfigProps; -export type NativeGestureStateChangeEvent = - GestureStateChangeEvent; - -export type NativeGestureUpdateEvent = - GestureUpdateEvent; +export type NativeGestureEvent = GestureEvent; export type NativeGesture = SingleGesture< NativeViewHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/pan/usePanGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/pan/usePanGesture.ts index d495a28df9..b155c30635 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/pan/usePanGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/pan/usePanGesture.ts @@ -6,8 +6,7 @@ import { HandlerData, SingleGestureName, WithSharedValue, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { @@ -50,10 +49,7 @@ type PanGestureInternalConfig = BaseGestureConfig< PanGestureInternalProperties >; -export type PanGestureStateChangeEvent = - GestureStateChangeEvent; - -export type PanGestureUpdateEvent = GestureUpdateEvent; +export type PanGestureEvent = GestureEvent; export type PanGesture = SingleGesture< PanHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/pinch/usePinchGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/pinch/usePinchGesture.ts index 3d85e434cf..e42a9e89ff 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/pinch/usePinchGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/pinch/usePinchGesture.ts @@ -4,8 +4,7 @@ import { SingleGesture, HandlerData, SingleGestureName, - GestureUpdateEvent, - GestureStateChangeEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { @@ -32,10 +31,7 @@ type PinchGestureInternalConfig = BaseGestureConfig< export type PinchGestureConfig = ExcludeInternalConfigProps; -export type PinchGestureStateChangeEvent = - GestureStateChangeEvent; - -export type PinchGestureUpdateEvent = GestureUpdateEvent; +export type PinchGestureEvent = GestureEvent; export type PinchGesture = SingleGesture< PinchHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/rotation/useRotationGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/rotation/useRotationGesture.ts index a02b6f0898..96124a0d06 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/rotation/useRotationGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/rotation/useRotationGesture.ts @@ -4,8 +4,7 @@ import { SingleGesture, HandlerData, SingleGestureName, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from '../../../types'; import { useGesture } from '../../useGesture'; import { @@ -32,11 +31,7 @@ type RotationGestureInternalConfig = BaseGestureConfig< export type RotationGestureConfig = ExcludeInternalConfigProps; -export type RotationGestureStateChangeEvent = - GestureStateChangeEvent; - -export type RotationGestureUpdateEvent = - GestureUpdateEvent; +export type RotationGestureEvent = GestureEvent; export type RotationGesture = SingleGesture< RotationHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/gestures/tap/useTapGesture.ts b/packages/react-native-gesture-handler/src/v3/hooks/gestures/tap/useTapGesture.ts index 899a37fb61..dbd243de41 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/gestures/tap/useTapGesture.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/gestures/tap/useTapGesture.ts @@ -1,8 +1,7 @@ import { BaseDiscreteGestureConfig, ExcludeInternalConfigProps, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, DiscreteSingleGesture, SingleGestureName, WithSharedValue, @@ -29,10 +28,7 @@ export type TapGestureConfig = ExcludeInternalConfigProps< BaseDiscreteGestureConfig >; -export type TapGestureStateChangeEvent = - GestureStateChangeEvent; - -export type TapGestureUpdateEvent = GestureUpdateEvent; +export type TapGestureEvent = GestureEvent; export type TapGesture = DiscreteSingleGesture< TapHandlerData, diff --git a/packages/react-native-gesture-handler/src/v3/hooks/utils/eventUtils.ts b/packages/react-native-gesture-handler/src/v3/hooks/utils/eventUtils.ts index 9d401e6a6c..43ebdd6c72 100644 --- a/packages/react-native-gesture-handler/src/v3/hooks/utils/eventUtils.ts +++ b/packages/react-native-gesture-handler/src/v3/hooks/utils/eventUtils.ts @@ -7,9 +7,7 @@ import { GestureHandlerEventWithHandlerData, GestureStateChangeEventWithHandlerData, GestureUpdateEventWithHandlerData, - GestureUpdateEvent, - GestureStateChangeEvent, - UnpackedGestureHandlerEvent, + GestureEvent, } from '../../types'; import { GestureTouchEvent } from '../../../handlers/gestureHandlerCommon'; import { tagMessage } from '../../../utils'; @@ -33,26 +31,19 @@ export function maybeExtractNativeEvent( return isNativeEvent(event) ? event.nativeEvent : event; } -export function flattenEvent( - event: GestureStateChangeEventWithHandlerData -): GestureStateChangeEvent; -export function flattenEvent( - event: GestureUpdateEventWithHandlerData -): GestureUpdateEvent; -export function flattenEvent( +export function flattenAndFilterEvent( event: | GestureUpdateEventWithHandlerData | GestureStateChangeEventWithHandlerData -) { +): GestureEvent { 'worklet'; - const { handlerData, ...rest } = event; - return { ...rest, ...handlerData }; + return { ...event.handlerData }; } export function isEventForHandlerWithTag( handlerTag: number, - event: UnpackedGestureHandlerEvent + event: GestureUpdateEventWithHandlerData | GestureTouchEvent ) { 'worklet'; @@ -61,7 +52,7 @@ export function isEventForHandlerWithTag( export function isNativeAnimatedEvent( callback: - | ((event: GestureUpdateEvent) => void) + | ((event: GestureEvent) => void) | AnimatedEvent | undefined ): callback is AnimatedEvent { diff --git a/packages/react-native-gesture-handler/src/v3/types/ConfigTypes.ts b/packages/react-native-gesture-handler/src/v3/types/ConfigTypes.ts index b907d4c66d..aa043e8249 100644 --- a/packages/react-native-gesture-handler/src/v3/types/ConfigTypes.ts +++ b/packages/react-native-gesture-handler/src/v3/types/ConfigTypes.ts @@ -9,25 +9,19 @@ import { import { AnimatedEvent, ChangeCalculatorType, - GestureStateChangeEvent, - GestureUpdateEvent, + GestureEvent, } from './EventTypes'; import { WithSharedValue } from './ReanimatedTypes'; export type GestureCallbacks = { - onBegin?: (event: GestureStateChangeEvent) => void; - onActivate?: (event: GestureStateChangeEvent) => void; + onBegin?: (event: GestureEvent) => void; + onActivate?: (event: GestureEvent) => void; onDeactivate?: ( - event: GestureStateChangeEvent, + event: GestureEvent, didSucceed: boolean ) => void; - onFinalize?: ( - event: GestureStateChangeEvent, - didSucceed: boolean - ) => void; - onUpdate?: - | ((event: GestureUpdateEvent) => void) - | AnimatedEvent; + onFinalize?: (event: GestureEvent, didSucceed: boolean) => void; + onUpdate?: ((event: GestureEvent) => void) | AnimatedEvent; onTouchesDown?: (event: GestureTouchEvent) => void; onTouchesMove?: (event: GestureTouchEvent) => void; onTouchesUp?: (event: GestureTouchEvent) => void; diff --git a/packages/react-native-gesture-handler/src/v3/types/EventTypes.ts b/packages/react-native-gesture-handler/src/v3/types/EventTypes.ts index 118af33fd6..41a8408e95 100644 --- a/packages/react-native-gesture-handler/src/v3/types/EventTypes.ts +++ b/packages/react-native-gesture-handler/src/v3/types/EventTypes.ts @@ -49,13 +49,10 @@ export type TouchEvent = | GestureTouchEvent | NativeSyntheticEvent; -export type GestureStateChangeEvent = StateChangeEventPayload & - THandlerData; -export type GestureUpdateEvent = EventPayload & THandlerData; +export type GestureEvent = THandlerData; export type UnpackedGestureHandlerEvent = - | GestureStateChangeEvent - | GestureUpdateEvent + | GestureEvent | GestureTouchEvent; // This is not how Animated.event is typed in React Native. We add _argMapping in order to