13 lines
484 B
TypeScript
13 lines
484 B
TypeScript
import { useState, useEffect } from 'preact/hooks';
|
|
|
|
export function useIsMobile(breakpoint = 768) {
|
|
const [isMobile, setIsMobile] = useState(window.innerWidth < breakpoint);
|
|
useEffect(() => {
|
|
const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`);
|
|
const handler = (e: MediaQueryListEvent) => setIsMobile(e.matches);
|
|
mq.addEventListener('change', handler);
|
|
return () => mq.removeEventListener('change', handler);
|
|
}, [breakpoint]);
|
|
return isMobile;
|
|
}
|