function isPortraitAndNarrow(): boolean { return window.innerWidth < window.innerHeight && window.innerWidth < 768; } export function isMobileDevice(): boolean { const toMatch = [ /Android/i, /webOS/i, /iPhone/i, /iPad/i, /iPod/i, /BlackBerry/i, /Windows Phone/i ]; const isMobileUserAgent = toMatch.some((toMatchItem) => { return navigator.userAgent.match(toMatchItem); }); return isMobileUserAgent || isPortraitAndNarrow(); }