Zipline-Android-App/hooks/isKeyboardOpen.ts
2025-02-08 21:36:49 +01:00

29 lines
645 B
TypeScript

import { useEffect, useState } from "react";
import { Keyboard } from "react-native";
export const useDetectKeyboardOpen = (defaultValue: boolean) => {
const [isKeyboardOpen, setIsKeyboardOpen] = useState<boolean>(defaultValue);
useEffect(() => {
const keyboardDidShowListener = Keyboard.addListener(
"keyboardDidShow",
() => {
setIsKeyboardOpen(true);
},
);
const keyboardDidHideListener = Keyboard.addListener(
"keyboardDidHide",
() => {
setIsKeyboardOpen(false);
},
);
return () => {
keyboardDidShowListener.remove();
keyboardDidHideListener.remove();
};
}, []);
return isKeyboardOpen;
};