From b4fc1682004a11d819bf223d861ea0e7830f82e3 Mon Sep 17 00:00:00 2001 From: Ray Deck Date: Wed, 6 May 2020 22:07:41 -0500 Subject: [PATCH 1/2] Adding hiding and showing state flags to useKeyboard --- src/useKeyboard.ts | 8 ++++++++ 1 file changed, 8 insertions(+) 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, } From 39cd1a602e8c5bc4fbf06a036f987faeb74719cc Mon Sep 17 00:00:00 2001 From: Ray Deck Date: Wed, 6 May 2020 22:57:23 -0500 Subject: [PATCH 2/2] Adding refernces to keyboardShowing and hiding to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) 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`