Published on

useMediaQuery Hook React

useMediaQuery Hook React

useMediaQuery Hook React

useMediaQuery Code and Usage

useMediaQuery is a hook to apply styles based on a specified media query.

import { useState, useEffect } from "react";

const useMediaQuery = (query) => {
  const mediaQuery = window.matchMedia(query);
  const [matches, setMatches] = useState(mediaQuery.matches);

  useEffect(() => {
    const handleMediaChange = (event) => {
      setMatches(event.matches);
    };

    mediaQuery.addEventListener("change", handleMediaChange);

    return () => {
      mediaQuery.removeEventListener("change", handleMediaChange);
    };
  }, [mediaQuery]);

  return matches;
};

// Usage
const MediaQueryExample = () => {
  const isSmallScreen = useMediaQuery("(max-width: 768px)");

  return (
    <div>
      {isSmallScreen ? <p>Small screen layout</p> : <p>Large screen layout</p>}
    </div>
  );
};

Previous Article