Skip to content

BackHandler Fix. #5830

Description

@MuhammadAuonOfficial

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch native-base@3.4.28 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/native-base/src/hooks/useKeyboardDismissable.ts b/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
index f3cfa44..8074119 100644
--- a/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
+++ b/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
@@ -42,18 +42,18 @@ export const useKeyboardDismissable = ({ enabled, callback }: IParams) => {
   useBackHandler({ enabled, callback });
 };
 
+
 export function useBackHandler({ enabled, callback }: IParams) {
   useEffect(() => {
-    let backHandler = () => {
+    if (!enabled) return;
+
+    const backHandler = () => {
       callback();
       return true;
     };
-    if (enabled) {
-      BackHandler.addEventListener('hardwareBackPress', backHandler);
-    } else {
-      BackHandler.removeEventListener('hardwareBackPress', backHandler);
-    }
-    return () =>
-      BackHandler.removeEventListener('hardwareBackPress', backHandler);
+    
+    const subscription = BackHandler.addEventListener('hardwareBackPress', backHandler);
+
+    return () => subscription.remove();
   }, [enabled, callback]);
 }

This issue body was partially generated by patch-package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions