From 6b12b40aa41743751c8583149caf048111864ef6 Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:37:31 +0100 Subject: [PATCH] Profile: Fix skipped animation on fast touchpads (#6454) --- src/hooks/scroll/useTopOverscroll.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hooks/scroll/useTopOverscroll.tsx b/src/hooks/scroll/useTopOverscroll.tsx index ea430a0f5..c23858bc4 100644 --- a/src/hooks/scroll/useTopOverscroll.tsx +++ b/src/hooks/scroll/useTopOverscroll.tsx @@ -2,6 +2,7 @@ import { type ElementRef, useEffect, useRef, useSignal } from '@teact'; import { requestMutation } from '../../lib/fasterdom/fasterdom'; import stopEvent from '../../util/stopEvent'; +import useEffectWithPrevDeps from '../useEffectWithPrevDeps'; import useLastCallback from '../useLastCallback'; type State = 'overscroll' | 'animating' | 'normal'; @@ -205,7 +206,8 @@ export default function useTopOverscroll({ }; }, [containerRef, isDisabled, getState]); - useEffect(() => { + useEffectWithPrevDeps(([prevIsOverscrolled]) => { + if (prevIsOverscrolled === isOverscrolled) return; if (!isOverscrolled && getState() === 'animating') { return; // We're animating towards this state }