diff --git a/native/chat/swipeable-message.react.js b/native/chat/swipeable-message.react.js --- a/native/chat/swipeable-message.react.js +++ b/native/chat/swipeable-message.react.js @@ -211,17 +211,17 @@ const translateX = useSharedValue(0); const swipeEvent = useAnimatedGestureHandler( { - onStart: (event: PanGestureEvent, ctx: { [string]: mixed }) => { + onStart: (event: Partial, ctx: { [string]: mixed }) => { ctx.translationAtStart = translateX.value; cancelAnimation(translateX); }, - onActive: (event: PanGestureEvent, ctx: { [string]: mixed }) => { + onActive: (event: Partial, ctx: { [string]: mixed }) => { const { translationAtStart } = ctx; if (typeof translationAtStart !== 'number') { throw new Error('translationAtStart should be number'); } - const translationX = translationAtStart + event.translationX; + const translationX = translationAtStart + (event.translationX ?? 0); const baseActiveTranslation = isViewer ? Math.min(translationX, 0) : Math.max(translationX, 0); @@ -245,7 +245,7 @@ ctx.prevPastSecondaryThreshold = pastSecondaryThreshold; }, - onEnd: (event: PanGestureEvent) => { + onEnd: (event: Partial) => { const absValue = Math.abs(translateX.value); if (absValue >= secondaryThreshold && secondaryActionExists) { runOnJS(secondaryAction)(); @@ -253,7 +253,10 @@ runOnJS(primaryAction)(); } - translateX.value = withSpring(0, makeSpringConfig(event.velocityX)); + translateX.value = withSpring( + 0, + makeSpringConfig(event.velocityX ?? 0), + ); }, }, [