UNPKG

@raddix/use-media-query

Version:
23 lines (22 loc) 638 B
// src/index.ts import { useEffect, useState } from "react"; var useMediaQuery = (query) => { const [isMatch, setIsMatch] = useState(false); const getQueryValue = (md) => { if (typeof md === "string") return md; return `(min-width: ${md}px)`; }; useEffect(() => { const newQuery = getQueryValue(query); const mql = window.matchMedia(newQuery); setIsMatch(mql.matches); const handleChange = (e) => setIsMatch(e.matches); mql.addEventListener("change", handleChange); return () => mql.removeEventListener("change", handleChange); }, [query]); return isMatch; }; export { useMediaQuery };