diff --git a/README.md b/README.md index 9a76c41b..fd37bc75 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,9 @@ const keyboard = useKeyboard() console.log('keyboard isKeyboardShow: ', keyboard.keyboardShown) console.log('keyboard keyboardHeight: ', keyboard.keyboardHeight) +console.log('keyboard keyboardShowing: ', keyboard.keyboardShowing) +console.log('keyboard keyboardHiding: ', keyboard.keyboardHiding) + ``` ### `useInteractionManager` diff --git a/src/useKeyboard.ts b/src/useKeyboard.ts index 77a9540e..b7c5198e 100644 --- a/src/useKeyboard.ts +++ b/src/useKeyboard.ts @@ -14,6 +14,8 @@ const initialValue = { export function useKeyboard() { const [shown, setShown] = useState(false) + const [showing, setShowing] = useState(false) + const [hiding, setHiding] = useState(false) const [coordinates, setCoordinates] = useState<{ start: ScreenRect end: ScreenRect @@ -21,18 +23,22 @@ export function useKeyboard() { const [keyboardHeight, setKeyboardHeight] = useState(0) const handleKeyboardWillShow: KeyboardEventListener = (e) => { + setShowing(true) setCoordinates({start: e.startCoordinates, end: e.endCoordinates}) } const handleKeyboardDidShow: KeyboardEventListener = (e) => { setShown(true) + setShowing(false) setCoordinates({start: e.startCoordinates, end: e.endCoordinates}) setKeyboardHeight(e.endCoordinates.height) } const handleKeyboardWillHide: KeyboardEventListener = (e) => { + setHiding(true) setCoordinates({start: e.startCoordinates, end: e.endCoordinates}) } const handleKeyboardDidHide: KeyboardEventListener = (e) => { setShown(false) + setHiding(false) if (e) { setCoordinates({start: e.startCoordinates, end: e.endCoordinates}) } else { @@ -57,6 +63,8 @@ export function useKeyboard() { return { keyboardShown: shown, + keyboardShowing: showing, + keyboardHiding: hiding, coordinates, keyboardHeight, }