Skip to content

Instantly share code, notes, and snippets.

@acro5piano
Last active April 10, 2021 07:29
Show Gist options
  • Save acro5piano/1f4909988df74047df09f44405041da2 to your computer and use it in GitHub Desktop.
Save acro5piano/1f4909988df74047df09f44405041da2 to your computer and use it in GitHub Desktop.
A react hook to handle keyboard show/hide
const { inputting } = useInputting()
<div style={{ height: inputting ? '50vh' : '100vh' }}>
...
export function useInputting() {
const [inputting, setInputting] = useState(false)
useEffect(() => {
const handler = () => {
setInputting((st) => !st)
}
document.addEventListener('focusin', handler)
document.addEventListener('focusout', handler)
return () => {
document.removeEventListener('focusin', handler)
document.removeEventListener('focusout', handler)
}
}, [])
return { inputting }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment