From b0ad1cc6d23eb9279637850b9540adcab6e45aa0 Mon Sep 17 00:00:00 2001 From: maitamgk Date: Thu, 5 Mar 2026 11:13:07 +0700 Subject: [PATCH] feat(utils): add device detection utilities Co-authored-by: maitamgk <169973104+maitamgk@users.noreply.github.com> --- src/utils/deviceDetect.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/utils/deviceDetect.ts diff --git a/src/utils/deviceDetect.ts b/src/utils/deviceDetect.ts new file mode 100644 index 0000000..3b2f92a --- /dev/null +++ b/src/utils/deviceDetect.ts @@ -0,0 +1,28 @@ +// Device detection utilities +export function isMobileDevice(): boolean { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); +} + +export function isIOSDevice(): boolean { + return /iPad|iPhone|iPod/.test(navigator.userAgent); +} + +export function isTouchDevice(): boolean { + return 'ontouchstart' in window || navigator.maxTouchPoints > 0; +} + +export function getDeviceType(): 'mobile' | 'tablet' | 'desktop' { + const width = window.innerWidth; + if (width < 768) return 'mobile'; + if (width < 1024) return 'tablet'; + return 'desktop'; +} + +export function getBrowserName(): string { + const ua = navigator.userAgent; + if (ua.includes('Firefox')) return 'Firefox'; + if (ua.includes('Chrome')) return 'Chrome'; + if (ua.includes('Safari')) return 'Safari'; + if (ua.includes('Edge')) return 'Edge'; + return 'Unknown'; +}