export function isMobile()

in projects/deliberation_at_scale/packages/frontend/hooks/useIsMobile.ts [10:35]


export function isMobile(opts: any = {}) {
    let ua = opts.ua;
    if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent;
    if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') {
        ua = ua.headers['user-agent'];
    }
    if (typeof ua !== 'string') return false;

    let result =
      (mobileRE.test(ua) && !notMobileRE.test(ua)) ||
      (!!opts.tablet && tabletRE.test(ua));

    if (
        !result &&
      opts.tablet &&
      opts.featureDetect &&
      navigator &&
      navigator.maxTouchPoints > 1 &&
      ua.indexOf('Macintosh') !== -1 &&
      ua.indexOf('Safari') !== -1
    ) {
        result = true;
    }

    return result;
}