| 7 | }; |
| 8 | |
| 9 | export function useWindowDimensions(): WindowDimensions { |
| 10 | const [windowDimensions, setWindowDimensions] = |
| 11 | React.useState<WindowDimensions>({ |
| 12 | width: 0, |
| 13 | height: 0, |
| 14 | }); |
| 15 | React.useEffect(() => { |
| 16 | const handleResize = debounce(() => { |
| 17 | setWindowDimensions({ |
| 18 | width: window.innerWidth, |
| 19 | height: window.innerHeight, |
| 20 | }); |
| 21 | }, 100); |
| 22 | handleResize(); |
| 23 | window.addEventListener("resize", handleResize); |
| 24 | return (): void => window.removeEventListener("resize", handleResize); |
| 25 | }, []); |
| 26 | |
| 27 | return windowDimensions; |
| 28 | } |
| 29 | |
| 30 | export function useIsMobile(breakpoint = 998) { |
| 31 | const { width } = useWindowDimensions(); |