UNPKG

reactuals

Version:

A useful package providing a collection of 50+ React hooks and utilities to simplify React development.

21 lines (20 loc) 759 B
import { useEffect, useState } from "react"; /** * Tracks the state of a media query. * @param query - The media query string. * @returns A boolean indicating if the query matches. * * Example: * const isLargeScreen = useMediaQuery("(min-width: 1024px)"); * if (isLargeScreen) console.log("Large screen"); */ export function useMediaQuery(query) { const [matches, setMatches] = useState(() => window.matchMedia(query).matches); useEffect(() => { const mediaQueryList = window.matchMedia(query); const listener = (event) => setMatches(event.matches); mediaQueryList.addEventListener("change", listener); return () => mediaQueryList.removeEventListener("change", listener); }, [query]); return matches; }