diff --git a/src/hooks/useKeyboardDismissable.ts b/src/hooks/useKeyboardDismissable.ts index f3cfa44402..5574f73060 100644 --- a/src/hooks/useKeyboardDismissable.ts +++ b/src/hooks/useKeyboardDismissable.ts @@ -1,6 +1,6 @@ import React from 'react'; import { useEffect } from 'react'; -import { BackHandler } from 'react-native'; +import { BackHandler, NativeEventSubscription } from 'react-native'; type IParams = { enabled?: boolean; @@ -44,16 +44,15 @@ export const useKeyboardDismissable = ({ enabled, callback }: IParams) => { export function useBackHandler({ enabled, callback }: IParams) { useEffect(() => { - let backHandler = () => { - callback(); - return true; - }; + let subscription: NativeEventSubscription | null = null; if (enabled) { - BackHandler.addEventListener('hardwareBackPress', backHandler); - } else { - BackHandler.removeEventListener('hardwareBackPress', backHandler); + subscription = BackHandler.addEventListener('hardwareBackPress', () => { + callback(); + return true; + }); } - return () => - BackHandler.removeEventListener('hardwareBackPress', backHandler); + return () => { + subscription?.remove(); + }; }, [enabled, callback]); }