You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
550 B
TypeScript
22 lines
550 B
TypeScript
import {useState, useEffect} from 'react'
|
|
|
|
function getWindowDimensions() {
|
|
const {innerWidth: width, innerHeight: height } = window
|
|
return {width, height}
|
|
}
|
|
|
|
export function useWindowDimensions() {
|
|
const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())
|
|
|
|
useEffect(() => {
|
|
function handleResize() {
|
|
setWindowDimensions(getWindowDimensions())
|
|
}
|
|
window.addEventListener('resize', handleResize)
|
|
return () => window.removeEventListener('resize', handleResize)
|
|
|
|
}, [])
|
|
|
|
return windowDimensions
|
|
}
|