UNPKG

@eureca/eureca-ui

Version:

UI component library of Eureca's user and admin apps

19 lines (17 loc) 645 B
import { useState, useEffect } from 'react'; function useWindowSize() { const isWindowClient = typeof window === 'object'; const [windowSize, setWindowSize] = useState( isWindowClient ? { width: window.innerWidth, height: window.innerHeight } : undefined ); useEffect(() => { const setSize = () => setWindowSize({ width: window.innerWidth, height: window.innerHeight }); if (!isWindowClient) { return undefined; } window.addEventListener('resize', setSize); return () => window.removeEventListener('resize', setSize); }, [isWindowClient, setWindowSize]); return windowSize; } export { useWindowSize };