@botonic/react
Version:
Build Chatbots using React
27 lines (22 loc) • 728 B
text/typescript
import { useEffect, useState } from 'react'
export const useVirtualKeyboardDetection = (originalHeight: number) => {
const [isVirtualKeyboardVisible, setIsVirtualKeyboardVisible] =
useState(false)
useEffect(() => {
const handleResize = () => {
if (window.visualViewport) {
if (window.visualViewport.height < originalHeight) {
setIsVirtualKeyboardVisible(true)
return
}
setIsVirtualKeyboardVisible(false)
return
}
}
window.visualViewport?.addEventListener('resize', handleResize)
return () => {
window.visualViewport?.removeEventListener('resize', handleResize)
}
}, [originalHeight])
return { isVirtualKeyboardVisible }
}