Skip to content

Instantly share code, notes, and snippets.

@tgmarinho
Created May 11, 2023 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tgmarinho/1c689c975c3678a68456c41dfe910c7d to your computer and use it in GitHub Desktop.
Save tgmarinho/1c689c975c3678a68456c41dfe910c7d to your computer and use it in GitHub Desktop.
react hook useDeviceDetect
const getMobileDetect = (userAgent: string) => {
const isAndroid = (): boolean => Boolean(userAgent.match(/Android/i))
const isIos = (): boolean => Boolean(userAgent.match(/iPhone|iPad|iPod/i))
const isOpera = (): boolean => Boolean(userAgent.match(/Opera Mini/i))
const isWindows = (): boolean => Boolean(userAgent.match(/IEMobile/i))
const isSSR = (): boolean => Boolean(userAgent.match(/SSR/i))
const isMobile = (): boolean => Boolean(isAndroid() || isIos() || isOpera() || isWindows())
const isDesktop = (): boolean => Boolean(!isMobile() && !isSSR())
return {
isMobile,
isDesktop,
isAndroid,
isIos,
isSSR,
}
}
export const useDeviceDetect = () => {
const userAgent = typeof navigator === 'undefined' ? 'SSR' : navigator.userAgent
return getMobileDetect(userAgent)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment