From 0d906283b3b9c943a41ca692365fd8ee48ab71ec Mon Sep 17 00:00:00 2001 From: Krzysztof Piaskowy Date: Wed, 13 Mar 2024 11:02:40 +0100 Subject: [PATCH] fix: Add constraints for velocity in `goBackGesture` screen transition (#2061) ## Description Without this constraint, especially on the simulator, `event.velocity` sometimes has a huge value. This can lead to unintended behavior where even a slight movement can trigger a transition back to the previous screen instead of canceling it. ## Checklist - [x] Ensured that CI passes --- src/gesture-handler/ScreenGestureDetector.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gesture-handler/ScreenGestureDetector.tsx b/src/gesture-handler/ScreenGestureDetector.tsx index 09b667c72c..e7cf5819d8 100644 --- a/src/gesture-handler/ScreenGestureDetector.tsx +++ b/src/gesture-handler/ScreenGestureDetector.tsx @@ -183,8 +183,10 @@ const ScreenGestureDetector = ({ const velocityFactor = 0.3; const screenSize = screenTransitionConfig.value.screenDimensions; - const distanceX = event.translationX + event.velocityX * velocityFactor; - const distanceY = event.translationY + event.velocityY * velocityFactor; + const distanceX = + event.translationX + Math.min(event.velocityX * velocityFactor, 100); + const distanceY = + event.translationY + Math.min(event.velocityY * velocityFactor, 100); const requiredXDistance = screenSize.width / 2; const requiredYDistance = screenSize.height / 2; const isTransitionCanceled = checkIfTransitionCancelled(