This commit is contained in:
ljy
2026-08-11 01:44:32 +08:00
parent cfafec8a3c
commit 404613a109
130 changed files with 14869 additions and 1452 deletions
+29
View File
@@ -0,0 +1,29 @@
import { useEffect, useState } from 'react'
export function useIsMobile(breakpoint = 768) {
const [isMobile, setIsMobile] = useState<boolean>(() => {
if (typeof window === 'undefined') return false
return window.innerWidth < breakpoint
})
useEffect(() => {
if (typeof window === 'undefined') return
const mql = window.matchMedia(`(max-width: ${breakpoint - 0.02}px)`)
const onChange = (e: MediaQueryListEvent) => {
setIsMobile(e.matches)
}
setIsMobile(mql.matches)
if (mql.addEventListener) {
mql.addEventListener('change', onChange)
return () => mql.removeEventListener('change', onChange)
} else {
mql.addListener(onChange)
return () => mql.removeListener(onChange)
}
}, [breakpoint])
return isMobile
}