this repo has no description
at main 28 lines 559 B view raw
1import { useLayoutEffect, useState } from 'preact/hooks'; 2 3export default function useWindowSize() { 4 const [size, setSize] = useState({ 5 width: null, 6 height: null, 7 }); 8 9 useLayoutEffect(() => { 10 const handleResize = () => { 11 setSize({ 12 width: window.innerWidth, 13 height: window.innerHeight, 14 }); 15 }; 16 17 handleResize(); 18 window.addEventListener('resize', handleResize, { 19 passive: true, 20 }); 21 22 return () => { 23 window.removeEventListener('resize', handleResize); 24 }; 25 }, []); 26 27 return size; 28}