-
Notifications
You must be signed in to change notification settings - Fork 167
Open
Description
Hi! 👋
Firstly, thanks for your work on this project! 🙂
Today I used patch-package to patch @gluestack-ui/[email protected]
for the project I'm working on.
I am still using v1 and with migration to Expo SDK 53 the BackHandler.removeEventListener
is removed and thus this change is needed.
Here is the diff that solved my problem:
diff --git a/node_modules/@gluestack-ui/hooks/lib/use-keyboard-dismissable/index.js b/node_modules/@gluestack-ui/hooks/lib/use-keyboard-dismissable/index.js
index 7295891..bd6b940 100644
--- a/node_modules/@gluestack-ui/hooks/lib/use-keyboard-dismissable/index.js
+++ b/node_modules/@gluestack-ui/hooks/lib/use-keyboard-dismissable/index.js
@@ -50,13 +50,15 @@ export function useBackHandler({ enabled, callback }) {
callback();
return true;
};
+ let subscription;
if (enabled) {
- BackHandler.addEventListener('hardwareBackPress', backHandler);
+ subscription = BackHandler.addEventListener('hardwareBackPress', backHandler);
}
- else {
- BackHandler.removeEventListener('hardwareBackPress', backHandler);
- }
- return () => BackHandler.removeEventListener('hardwareBackPress', backHandler);
+ return () => {
+ if (subscription && typeof subscription.remove === 'function') {
+ subscription.remove();
+ }
+ };
}
}, [enabled, callback]);
}
diff --git a/node_modules/@gluestack-ui/hooks/src/use-keyboard-dismissable/index.ts b/node_modules/@gluestack-ui/hooks/src/use-keyboard-dismissable/index.ts
index 54979c6..518c20c 100644
--- a/node_modules/@gluestack-ui/hooks/src/use-keyboard-dismissable/index.ts
+++ b/node_modules/@gluestack-ui/hooks/src/use-keyboard-dismissable/index.ts
@@ -60,13 +60,15 @@ export function useBackHandler({ enabled, callback }: IParams) {
callback();
return true;
};
+ let subscription: { remove: () => void } | undefined;
if (enabled) {
- BackHandler.addEventListener('hardwareBackPress', backHandler);
- } else {
- BackHandler.removeEventListener('hardwareBackPress', backHandler);
+ subscription = BackHandler.addEventListener('hardwareBackPress', backHandler);
}
- return () =>
- BackHandler.removeEventListener('hardwareBackPress', backHandler);
+ return () => {
+ if (subscription && typeof subscription.remove === 'function') {
+ subscription.remove();
+ }
+ };
}
}, [enabled, callback]);
}
This issue body was partially generated by patch-package.
Metadata
Metadata
Assignees
Labels
No labels