MCPcopy Index your code
hub / github.com/callstack/react-native-paper / useIsKeyboardShown

Function useIsKeyboardShown

src/utils/useIsKeyboardShown.tsx:8–55  ·  view source on GitHub ↗
({ onShow, onHide }: Props)

Source from the content-addressed store, hash-verified

6 onHide: () => void;
7};
8export default function useIsKeyboardShown({ onShow, onHide }: Props) {
9 React.useEffect(() => {
10 let willShowSubscription: NativeEventSubscription | undefined;
11 let willHideSubscription: NativeEventSubscription | undefined;
12 let didShowSubscription: NativeEventSubscription | undefined;
13 let didHideSubscription: NativeEventSubscription | undefined;
14
15 if (Platform.OS === 'ios') {
16 willShowSubscription = Keyboard.addListener('keyboardWillShow', onShow);
17 willHideSubscription = Keyboard.addListener('keyboardWillHide', onHide);
18 } else {
19 didShowSubscription = Keyboard.addListener('keyboardDidShow', onShow);
20 didHideSubscription = Keyboard.addListener('keyboardDidHide', onHide);
21 }
22
23 return () => {
24 if (Platform.OS === 'ios') {
25 if (willShowSubscription?.remove) {
26 willShowSubscription.remove();
27 } else {
28 // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions
29 Keyboard.removeListener('keyboardWillShow', onShow);
30 }
31
32 if (willHideSubscription?.remove) {
33 willHideSubscription.remove();
34 } else {
35 // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions
36 Keyboard.removeListener('keyboardWillHide', onHide);
37 }
38 } else {
39 if (didShowSubscription?.remove) {
40 didShowSubscription.remove();
41 } else {
42 // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions
43 Keyboard.removeListener('keyboardDidShow', onShow);
44 }
45
46 if (didHideSubscription?.remove) {
47 didHideSubscription.remove();
48 } else {
49 // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions
50 Keyboard.removeListener('keyboardDidHide', onHide);
51 }
52 }
53 };
54 }, [onHide, onShow]);
55}

Callers 1

BottomNavigationBarFunction · 0.85

Calls 1

removeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…