this repo has no description
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}