UNPKG

use-ua-parser-js

Version:

React Hook for UAParser.js - Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.

109 lines (91 loc) 2.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var UAParser = require('ua-parser-js'); function isMobile(details) { return details.type === 'mobile'; } function isTouchDevice(details) { return ['mobile', 'tablet', 'wearable'].includes(details.type || ''); } var uaParser = /*#__PURE__*/new UAParser.UAParser(); // Access window.navigator.userAgent only once, this prevents browser from re-rendering var defaultUAString = window.navigator.userAgent; function useUA(uastring) { if (uastring === void 0) { uastring = defaultUAString; } return React.useMemo(function () { try { uaParser.setUA(uastring); return { os: uaParser.getOS(), browser: uaParser.getBrowser(), cpu: uaParser.getCPU(), device: uaParser.getDevice(), engine: uaParser.getEngine() }; } catch (err) { return null; } }, [uastring]); } function useDevice(uastring) { if (uastring === void 0) { uastring = defaultUAString; } return React.useMemo(function () { try { uaParser.setUA(uastring); return uaParser.getDevice(); } catch (err) { return null; } }, [uastring]); } function useBrowser(uastring) { if (uastring === void 0) { uastring = defaultUAString; } return React.useMemo(function () { try { uaParser.setUA(uastring); return uaParser.getBrowser(); } catch (err) { return null; } }, [uastring]); } function useCPU(uastring) { if (uastring === void 0) { uastring = defaultUAString; } return React.useMemo(function () { try { uaParser.setUA(uastring); return uaParser.getCPU(); } catch (err) { return null; } }, [uastring]); } function useEngine(uastring) { if (uastring === void 0) { uastring = defaultUAString; } return React.useMemo(function () { try { uaParser.setUA(uastring); return uaParser.getEngine(); } catch (err) { return null; } }, [uastring]); } exports.isMobile = isMobile; exports.isTouchDevice = isTouchDevice; exports.useBrowser = useBrowser; exports.useCPU = useCPU; exports.useDevice = useDevice; exports.useEngine = useEngine; exports.useUA = useUA; //# sourceMappingURL=use-ua-parser-js.cjs.development.js.map