GeekyAnts / GeekyAnts/NativeBase
Action Sheet Patch
- Dominant language
- TypeScript
- Stars
- 20.4k
- Forks
- 2.4k
- PR merge metrics
- No merged PRs in 30d
Description
Hi! 👋
Firstly, thanks for your work on this project! 🙂
Today I used [patch-package](https://github.com/ds300/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
diff --git a/node_modules/native-base/src/hooks/useKeyboardDismissable.ts b/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
index f3cfa44..bf73475 100644
--- a/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
+++ b/node_modules/native-base/src/hooks/useKeyboardDismissable.ts
@@ -44,16 +44,16 @@ export const useKeyboardDismissable = ({ enabled, callback }: IParams) => {
export function useBackHandler({ enabled, callback }: IParams) {
useEffect(() => {
- let backHandler = () => {
+ if (!enabled) return;
+
+ const subscription = BackHandler.addEventListener('hardwareBackPress', () => {
callback();
return true;
+ });
+
+ return () => {
+ subscription?.remove?.(); // ✅ This is the correct way in RN 0.72+
};
- if (enabled) {
- BackHandler.addEventListener('hardwareBackPress', backHandler);
- } else {
- BackHandler.removeEventListener('hardwareBackPress', backHandler);
- }
- return () =>
- BackHandler.removeEventListener('hardwareBackPress', backHandler);
}, [enabled, callback]);
}
+
```
This issue body was [partially generated by patch-package](https://github.com/ds300/patch-package/issues/296).
Contributor guide
Research direction
Start in node_modules/native-base/src/hooks/useKeyboardDismissable.ts, then locate the corresponding source file in the repository and read useBackHandler. Compare the current implementation with the supplied diff and verify the Action Sheet behavior on the affected React Native version. Done means the patch is incorporated in the project source rather than applied only through patch-package.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100