import { useEffect, useState } from "react";
import { Keyboard, LayoutAnimation, Platform } from "react-native";
export function useKeyboardHeight(): number {
const [height, setHeight] = useState(0);
useEffect(() => {
const showEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';
const hideEvent = Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide';
const showSub = Keyboard.addListener(showEvent, (e) => {
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
setHeight(e.endCoordinates.height);
});
const hideSub = Keyboard.addListener(hideEvent, () => {
LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
setHeight(0);
});
return () => {
showSub.remove();
hideSub.remove();
};
}, []);
return height;
}