useMediaQuery.ts 502 B

123456789101112131415
  1. import { useEffect, useState } from 'react';
  2. const MOBILE_BREAKPOINT_PX = 768;
  3. export function useMediaQuery(breakpoint: number = MOBILE_BREAKPOINT_PX) {
  4. const [isMobile, setIsMobile] = useState<boolean>(() => window.innerWidth <= breakpoint);
  5. useEffect(() => {
  6. const onResize = () => setIsMobile(window.innerWidth <= breakpoint);
  7. window.addEventListener('resize', onResize);
  8. return () => window.removeEventListener('resize', onResize);
  9. }, [breakpoint]);
  10. return { isMobile };
  11. }