Skip to content

Commit d87857e

Browse files
fix: remove calls to removed Keyboard.removeListener in useIsKeyboardShown (#9457)
1 parent 5ae0bad commit d87857e

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

packages/bottom-tabs/src/utils/useIsKeyboardShown.tsx

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from 'react';
2-
import { Keyboard, Platform } from 'react-native';
2+
import { Keyboard, Platform, EmitterSubscription } from 'react-native';
33

44
export default function useIsKeyboardShown() {
55
const [isKeyboardShown, setIsKeyboardShown] = React.useState(false);
@@ -8,22 +8,22 @@ export default function useIsKeyboardShown() {
88
const handleKeyboardShow = () => setIsKeyboardShown(true);
99
const handleKeyboardHide = () => setIsKeyboardShown(false);
1010

11+
let subscriptions: EmitterSubscription[];
12+
1113
if (Platform.OS === 'ios') {
12-
Keyboard.addListener('keyboardWillShow', handleKeyboardShow);
13-
Keyboard.addListener('keyboardWillHide', handleKeyboardHide);
14+
subscriptions = [
15+
Keyboard.addListener('keyboardWillShow', handleKeyboardShow),
16+
Keyboard.addListener('keyboardWillHide', handleKeyboardHide),
17+
];
1418
} else {
15-
Keyboard.addListener('keyboardDidShow', handleKeyboardShow);
16-
Keyboard.addListener('keyboardDidHide', handleKeyboardHide);
19+
subscriptions = [
20+
Keyboard.addListener('keyboardDidShow', handleKeyboardShow),
21+
Keyboard.addListener('keyboardDidHide', handleKeyboardHide),
22+
];
1723
}
1824

1925
return () => {
20-
if (Platform.OS === 'ios') {
21-
Keyboard.removeListener('keyboardWillShow', handleKeyboardShow);
22-
Keyboard.removeListener('keyboardWillHide', handleKeyboardHide);
23-
} else {
24-
Keyboard.removeListener('keyboardDidShow', handleKeyboardShow);
25-
Keyboard.removeListener('keyboardDidHide', handleKeyboardHide);
26-
}
26+
subscriptions.forEach((s) => s.remove());
2727
};
2828
}, []);
2929

0 commit comments

Comments
 (0)