import { useState, useEffect } from 'react'; interface WindowSize { width: number | undefined; height: number | undefined; } export const useWindowSize = (): WindowSize => { const [windowSize, setWindowSize] = useState({ width: undefined, height: undefined, }); useEffect(() => { function handleResize() { setWindowSize({ width: window.innerWidth, height: window.innerHeight, }); } window.addEventListener('resize', handleResize); handleResize(); return () => window.removeEventListener('resize', handleResize); }, []); return windowSize; };