import { useEffect, useState } from "react"; import { Keyboard } from "react-native"; const useKeyboard = () => { const [height, setHeight] = useState(0); useEffect(() => { const didShowlistener = Keyboard.addListener( "keyboardDidShow", onKeyboardDidShow ); const didHidelistener = Keyboard.addListener( "keyboardDidHide", onKeyboardDidHide ); return () => { didShowlistener.remove(); didHidelistener.remove(); }; }, []); const onKeyboardDidShow = (frame: any) => { setHeight(frame?.endCoordinates?.height); }; const onKeyboardDidHide = () => { setHeight(0); Keyboard.dismiss(); }; const isHiding = () => height === 0; return { height, isHiding }; }; export default useKeyboard;