grafana_bak/public/app/core/hooks/useMediaQueryChange.ts
2025-04-01 10:38:02 +09:00

18 lines
519 B
TypeScript

import { useEffect } from 'react';
export function useMediaQueryChange({
breakpoint,
onChange,
}: {
breakpoint: number;
onChange: (e: MediaQueryListEvent) => void;
}) {
useEffect(() => {
const mediaQuery = window.matchMedia(`(min-width: ${breakpoint}px)`);
const onMediaQueryChange = (e: MediaQueryListEvent) => onChange(e);
mediaQuery.addEventListener('change', onMediaQueryChange);
return () => mediaQuery.removeEventListener('change', onMediaQueryChange);
}, [breakpoint, onChange]);
}