UNPKG

@diagramers/admin

Version:

Diagramers Admin Template - React starter for admin dashboards.

27 lines (23 loc) 658 B
import { useState, useEffect } from 'react'; export const useWindowSize = () => { const [windowSize, setWindowSize] = useState({ width: undefined, height: undefined, }); useEffect(() => { let resizeTimer = -1; function handleResize() { clearTimeout(resizeTimer); resizeTimer = setTimeout(() => { setWindowSize({ width: window.innerWidth, height: window.innerHeight }); }, 50); } window.addEventListener('resize', handleResize); handleResize(); return () => { clearTimeout(resizeTimer); window.removeEventListener('resize', handleResize); }; }, []); return windowSize; };