parent
35ba440636
commit
ef3c8d2eac
@ -0,0 +1,37 @@ |
||||
import { useEffect, useState } from "react"; |
||||
|
||||
interface WindowDimension { |
||||
width: number; |
||||
height: number; |
||||
} |
||||
|
||||
function getWindowDimension() { |
||||
const { innerWidth: width, innerHeight: height } = window; |
||||
return { |
||||
width, |
||||
height, |
||||
}; |
||||
} |
||||
|
||||
export function useWindowDimension(): WindowDimension { |
||||
const [windowSize, setWindowDimension] = useState<WindowDimension>({ |
||||
width: 0, |
||||
height: 0, |
||||
}); |
||||
|
||||
useEffect(() => { |
||||
const handleResize = () => { |
||||
setWindowDimension(getWindowDimension()); |
||||
}; |
||||
|
||||
// Set size at the first client-side load
|
||||
handleResize(); |
||||
window.addEventListener("resize", handleResize); |
||||
|
||||
return () => { |
||||
window.removeEventListener("resize", handleResize); |
||||
}; |
||||
}, []); |
||||
|
||||
return windowSize; |
||||
} |
Loading…
Reference in new issue