From 57228ad567293fe72fc6aa03a111344debba9af6 Mon Sep 17 00:00:00 2001 From: Brian Yeh Date: Wed, 14 Jan 2026 10:33:01 +0800 Subject: [PATCH] fix: remove event listener undefined error --- src/hooks/useKeyboardDismissable.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) 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]); }