From d6029f29ccf8879de999f9cb45eabdcdd0b779cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Miko=C5=82ajczak?= Date: Thu, 18 Jan 2024 13:47:39 +0100 Subject: [PATCH] clean up interaction on screen transition --- src/hooks/useAutoFocusInput.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/hooks/useAutoFocusInput.ts b/src/hooks/useAutoFocusInput.ts index 20d0dee1f407..e8e7c1187a63 100644 --- a/src/hooks/useAutoFocusInput.ts +++ b/src/hooks/useAutoFocusInput.ts @@ -23,10 +23,14 @@ export default function useAutoFocusInput(): UseAutoFocusInput { if (!isScreenTransitionEnded || !isInputInitialized || !inputRef.current || !isSplashHidden) { return; } - InteractionManager.runAfterInteractions(() => { + const focusTaskHandle = InteractionManager.runAfterInteractions(() => { inputRef.current?.focus(); setIsScreenTransitionEnded(false); }); + + return () => { + focusTaskHandle.cancel(); + }; }, [isScreenTransitionEnded, isInputInitialized, isSplashHidden]); useFocusEffect( @@ -35,12 +39,12 @@ export default function useAutoFocusInput(): UseAutoFocusInput { setIsScreenTransitionEnded(true); }, CONST.ANIMATED_TRANSITION); return () => { + setIsScreenTransitionEnded(false); if (!focusTimeoutRef.current) { return; } clearTimeout(focusTimeoutRef.current); }; - // eslint-disable-next-line react-hooks/exhaustive-deps }, []), );