53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
 | 
						|
import React from 'react';
 | 
						|
import { f7 } from 'framework7-react';
 | 
						|
import { Dom7 } from 'framework7'
 | 
						|
 | 
						|
class WrapDevice {
 | 
						|
    constructor(){
 | 
						|
        const ua = navigator.userAgent,
 | 
						|
            isMobile = /Mobile(\/|\s|;)/.test(ua);
 | 
						|
 | 
						|
        this.isPhone = /(iPhone|iPod)/.test(ua) ||
 | 
						|
            (!/(Silk)/.test(ua) && (/(Android)/.test(ua) && !/Galaxy Tab S6|SCH-I800|Lenovo YT-X705X/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
 | 
						|
            (/(BlackBerry|BB)/.test(ua) && isMobile) ||
 | 
						|
            /(Windows Phone)/.test(ua);
 | 
						|
 | 
						|
        this.isTablet = !this.isPhone && (/iPad/.test(ua) || /Android/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
 | 
						|
            (/MSIE 10/.test(ua) && /; Touch/.test(ua)));
 | 
						|
    }
 | 
						|
 | 
						|
    initDom() {
 | 
						|
        const $$ = Dom7;
 | 
						|
        if ( this.sailfish ) {
 | 
						|
            $$('html').addClass('sailfish');
 | 
						|
        }
 | 
						|
 | 
						|
        $$('html').addClass(this.phone ? 'phone' : 'tablet');
 | 
						|
        // $$(window).on('resize', _.bind(this.onWindowResize, this));
 | 
						|
    }
 | 
						|
 | 
						|
    get phone() {
 | 
						|
        return this.isPhone
 | 
						|
    }
 | 
						|
 | 
						|
    get tablet() {
 | 
						|
        return this.isTablet
 | 
						|
    }
 | 
						|
 | 
						|
    get sailfish() {
 | 
						|
        return /Sailfish/.test(navigator.userAgent) || /Jolla/.test(navigator.userAgent);
 | 
						|
    }
 | 
						|
 | 
						|
    get android() {
 | 
						|
        return f7.device.android;
 | 
						|
    }
 | 
						|
 | 
						|
    get ios() {
 | 
						|
        return f7.device.ios;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
const device = new WrapDevice();
 | 
						|
export {device as Device};
 |