Files
docmost/frontend/src/hooks/use-media-query.ts
T
Philipinho 5b6dbcc5bb Add sidebar
2023-08-29 00:15:48 +01:00

23 lines
530 B
TypeScript

import { useEffect, useState } from 'react';
export function useMediaQuery(query: string): boolean {
const [matches, setMatches] = useState<boolean>(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;
}