brackt/app/hooks/useMediaQuery.ts

14 lines
381 B
TypeScript
Raw Normal View History

import { useSyncExternalStore } from "react";
export function useMediaQuery(query: string): boolean {
return useSyncExternalStore(
(callback) => {
const mq = window.matchMedia(query);
mq.addEventListener("change", callback);
return () => mq.removeEventListener("change", callback);
},
() => window.matchMedia(query).matches,
() => false
);
}