/** * Utility functions for device detection */ export function isMobileDevice(): boolean { if (typeof window === 'undefined') { return false; } // Check user agent const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera; // Common mobile device patterns const mobileRegex = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i; // Check screen width (mobile devices typically have smaller screens) const isSmallScreen = window.innerWidth <= 768; // Check for touch support const hasTouchScreen = 'ontouchstart' in window || navigator.maxTouchPoints > 0; return mobileRegex.test(userAgent) || (isSmallScreen && hasTouchScreen); } export function getDeviceType(): 'mobile' | 'desktop' { return isMobileDevice() ? 'mobile' : 'desktop'; }