device.js 2.1 KB

123456789101112131415161718192021222324252627282930313233
  1. export const isDesktop = () => window.innerWidth > 900;
  2. export const isTabletOrMobile = () => window.innerWidth <= 900;
  3. export const isMobile = () => window.innerWidth < 640;
  4. export const isIEEdge = navigator.userAgent.indexOf('Edge') > -1;
  5. export const isIEEdgeChromium = navigator.userAgent.indexOf('Edg/') > -1;
  6. export const isIE11 = navigator.userAgent.indexOf('Trident/7.0') > -1;
  7. export const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
  8. export const isIE = isIEEdge || isIE11;
  9. // https://stackoverflow.com/a/58064481
  10. export const isIEEdgeLegacy = isIEEdge && !isIEEdgeChromium;
  11. const checkForIOS13 = (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
  12. export const isIOS = window.navigator.userAgent.match(/(iPad|iPhone|iPod)/i) || checkForIOS13;
  13. export const isAndroid = window.navigator.userAgent.match(/Android/i);
  14. export const isMobileDevice = isIOS || isAndroid || window.navigator.userAgent.match(/webOS|BlackBerry|IEMobile|Opera Mini/i);
  15. export const isMobileDeviceFunc = () => window.navigator.userAgent.match(/(iPad|iPhone|iPod)/i) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) || window.navigator.userAgent.match(/Android/i) || window.navigator.userAgent.match(/webOS|BlackBerry|IEMobile|Opera Mini/i);
  16. export const isMac = navigator.appVersion.indexOf('Mac') > -1;
  17. export const isWindows = navigator.appVersion.indexOf('Windows') > -1;
  18. export const isChrome = (function() {
  19. // opera, edge, and maxthon have chrome in their useragent string so we need to be careful!
  20. const opera = window.navigator.userAgent.match(/OPR/);
  21. const maxthon = window.navigator.userAgent.match(/Maxthon/);
  22. const edge = window.navigator.userAgent.match(/Edge/);
  23. return (window.navigator.userAgent.match(/Chrome\/(.*?) /) && !opera && !maxthon && !edge);
  24. })();
  25. export const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (/^((?!chrome|android).)*$/.test(navigator.userAgent) && isIOS);
  26. export const isChromeOniOS = window.navigator.userAgent.match(/CriOS\/(.*?) /);
  27. export const isFirefoxOniOS = window.navigator.userAgent.match(/(FxiOS)\/(.*?) /);