Files
next-learn/hooks/use-mobile.ts
v0 1833901a29 feat: create dashboard starter with basic layout and metrics
Add initial dashboard page and metric cards for Acme branding.

#VERCEL_SKIP

Co-authored-by: null <162737925+zebulonhermann@users.noreply.github.com>
2025-11-21 05:08:15 +00:00

20 lines
565 B
TypeScript

import * as React from 'react'
const MOBILE_BREAKPOINT = 768
export function useIsMobile() {
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
const onChange = () => {
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
}
mql.addEventListener('change', onChange)
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
return () => mql.removeEventListener('change', onChange)
}, [])
return !!isMobile
}