// Credit: https://www.netlify.com/blog/2020/12/05/building-a-custom-react-media-query-hook-for-more-responsive-apps/ import { useState, useEffect } from "react"; const useMediaQuery = (query: string) => { const [matches, setMatches] = useState(false); useEffect(() => { const media = window.matchMedia(query); if (media.matches !== matches) { setMatches(media.matches); } const listener = () => { setMatches(media.matches); }; media.addEventListener("change", listener); return () => media.removeEventListener("change", listener); }, [matches, query]); return matches; } export const IsDark = () => useMediaQuery("(prefers-color-scheme: dark"); export default useMediaQuery;