@appello/mobile
Version:
Common package with many useful features for mobile development
26 lines (25 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useKeyboardListener = void 0;
const react_1 = require("react");
const react_native_1 = require("react-native");
const useKeyboardListener = (props = {}) => {
const { onOpen, onClose } = props;
const [keyboardHeight, setKeyboardHeight] = (0, react_1.useState)(0);
(0, react_1.useEffect)(() => {
const showSubscription = react_native_1.Keyboard.addListener('keyboardDidShow', e => {
setKeyboardHeight(e.endCoordinates.height);
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
});
const hideSubscription = react_native_1.Keyboard.addListener('keyboardDidHide', () => {
setKeyboardHeight(0);
onClose === null || onClose === void 0 ? void 0 : onClose();
});
return () => {
showSubscription.remove();
hideSubscription.remove();
};
}, []);
return keyboardHeight;
};
exports.useKeyboardListener = useKeyboardListener;