import { useEffect, useState } from 'react' const isClient = typeof window === 'object' function getSize() { return { width: isClient ? window.innerWidth : undefined, height: isClient ? window.innerHeight : undefined, } } // https://usehooks.com/useWindowSize/ export function useWindowSize() { const [windowSize, setWindowSize] = useState(getSize) useEffect(() => { function handleResize() { setWindowSize(getSize()) } if (isClient) { window.addEventListener('resize', handleResize) return () => { window.removeEventListener('resize', handleResize) } } return undefined }, []) return windowSize }