From ff6367785fb50fb4930f7422930fb4a5d2f10a90 Mon Sep 17 00:00:00 2001 From: Lxxyx Date: Thu, 12 Sep 2019 00:01:29 +0800 Subject: [PATCH 1/2] fix: keyboard endCoordinates maybe null fix keyboard endCoordinates maybe null and android not have startCoordinates https://github.com/facebook/react-native/blob/master/Libraries/Components/Keyboard/Keyboard.js#L52 --- lib/useKeyboard.js | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/useKeyboard.js b/lib/useKeyboard.js index 12648966..c2d3ac7a 100644 --- a/lib/useKeyboard.js +++ b/lib/useKeyboard.js @@ -1,52 +1,52 @@ -import React, { useEffect, useState } from 'react' -import { Keyboard } from 'react-native' +import React, { useEffect, useState } from "react"; +import { Keyboard } from "react-native"; export default function useKeyboard() { - const [keyboard, setKeyboard] = useState({ Keyboard }) + const [keyboard, setKeyboard] = useState({ Keyboard }); function keyboardShown(e) { setKeyboard({ isKeyboardShow: true, Keyboard, - endCoordinates: e.endCoordinates, - startCoordinates: e.startCoordinates - }) + endCoordinates: e ? e.endCoordinates : null, + startCoordinates: e ? e.startCoordinates : null + }); } function keyboardHidden(e) { setKeyboard({ isKeyboardShow: false, Keyboard, - endCoordinates: e.endCoordinates, - startCoordinates: e.startCoordinates - }) + endCoordinates: e ? e.endCoordinates : null, + startCoordinates: e ? e.startCoordinates : null + }); } useEffect(() => { keyboardDidShowListener = Keyboard.addListener( - 'keyboardWillShow', + "keyboardWillShow", keyboardHidden - ) + ); keyboardDidShowListener = Keyboard.addListener( - 'keyboardDidShow', + "keyboardDidShow", keyboardShown - ) + ); keyboardDidShowListener = Keyboard.addListener( - 'keyboardWillHide', + "keyboardWillHide", keyboardShown - ) + ); keyboardDidHideListener = Keyboard.addListener( - 'keyboardDidHide', + "keyboardDidHide", keyboardHidden - ) + ); return () => { - keyboardDidShowListener.remove() - keyboardDidHideListener.remove() - } - }, []) - return keyboard + keyboardDidShowListener.remove(); + keyboardDidHideListener.remove(); + }; + }, []); + return keyboard; } From 3aabf2c26d66aff31bdc94ba6319d57e39a9670f Mon Sep 17 00:00:00 2001 From: Lxxyx Date: Thu, 12 Sep 2019 00:03:41 +0800 Subject: [PATCH 2/2] style: format code --- lib/useKeyboard.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/useKeyboard.js b/lib/useKeyboard.js index c2d3ac7a..915b189e 100644 --- a/lib/useKeyboard.js +++ b/lib/useKeyboard.js @@ -1,8 +1,8 @@ -import React, { useEffect, useState } from "react"; -import { Keyboard } from "react-native"; +import React, { useEffect, useState } from 'react' +import { Keyboard } from 'react-native' export default function useKeyboard() { - const [keyboard, setKeyboard] = useState({ Keyboard }); + const [keyboard, setKeyboard] = useState({ Keyboard }) function keyboardShown(e) { setKeyboard({ @@ -10,7 +10,7 @@ export default function useKeyboard() { Keyboard, endCoordinates: e ? e.endCoordinates : null, startCoordinates: e ? e.startCoordinates : null - }); + }) } function keyboardHidden(e) { @@ -19,34 +19,34 @@ export default function useKeyboard() { Keyboard, endCoordinates: e ? e.endCoordinates : null, startCoordinates: e ? e.startCoordinates : null - }); + }) } useEffect(() => { keyboardDidShowListener = Keyboard.addListener( - "keyboardWillShow", + 'keyboardWillShow', keyboardHidden - ); + ) keyboardDidShowListener = Keyboard.addListener( - "keyboardDidShow", + 'keyboardDidShow', keyboardShown - ); + ) keyboardDidShowListener = Keyboard.addListener( - "keyboardWillHide", + 'keyboardWillHide', keyboardShown - ); + ) keyboardDidHideListener = Keyboard.addListener( - "keyboardDidHide", + 'keyboardDidHide', keyboardHidden - ); + ) return () => { - keyboardDidShowListener.remove(); - keyboardDidHideListener.remove(); - }; - }, []); - return keyboard; + keyboardDidShowListener.remove() + keyboardDidHideListener.remove() + } + }, []) + return keyboard }