mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-08 23:21:58 +02:00
27 lines
728 B
TypeScript
27 lines
728 B
TypeScript
import { useState, useEffect } from 'react';
|
|
|
|
const MOBILE_BREAKPOINT = 768;
|
|
|
|
export function useIsMobile(): boolean {
|
|
const [isMobile, setIsMobile] = useState(() =>
|
|
typeof window !== 'undefined' ? window.innerWidth < MOBILE_BREAKPOINT : false
|
|
);
|
|
|
|
useEffect(() => {
|
|
const mediaQuery = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
|
|
const handleChange = (e: MediaQueryListEvent) => {
|
|
setIsMobile(e.matches);
|
|
};
|
|
|
|
// Set initial value
|
|
setIsMobile(mediaQuery.matches);
|
|
|
|
// Modern browsers support addEventListener
|
|
mediaQuery.addEventListener('change', handleChange);
|
|
return () => mediaQuery.removeEventListener('change', handleChange);
|
|
}, []);
|
|
|
|
return isMobile;
|
|
}
|