UNPKG

react-useragent

Version:

Utility to add user agent information to your react components

82 lines (66 loc) 2.24 kB
import _extends from 'babel-runtime/helpers/extends'; import _Object$getPrototypeOf from 'babel-runtime/core-js/object/get-prototype-of'; import _classCallCheck from 'babel-runtime/helpers/classCallCheck'; import _createClass from 'babel-runtime/helpers/createClass'; import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn'; import _inherits from 'babel-runtime/helpers/inherits'; import React, { Component } from 'react'; import MobileDetect from 'mobile-detect'; var getUserAgent = function getUserAgent() { var md = new MobileDetect(window.navigator.userAgent); var state = { ua: { mobile: md.mobile(), phone: md.phone(), tablet: md.tablet(), os: md.os(), md: md } }; return state; }; var withUserAgent = function withUserAgent(ComposedComponent) { return function (_Component) { _inherits(_class, _Component); function _class(props) { _classCallCheck(this, _class); var _this = _possibleConstructorReturn(this, (_class.__proto__ || _Object$getPrototypeOf(_class)).call(this, props)); _this.state = getUserAgent(); return _this; } _createClass(_class, [{ key: "render", value: function render() { return React.createElement(ComposedComponent, _extends({ ua: this.state.ua }, this.props)); } }]); return _class; }(Component); }; var UserAgent = function (_Component2) { _inherits(UserAgent, _Component2); function UserAgent(props) { _classCallCheck(this, UserAgent); var _this2 = _possibleConstructorReturn(this, (UserAgent.__proto__ || _Object$getPrototypeOf(UserAgent)).call(this, props)); _this2.state = getUserAgent(); return _this2; } _createClass(UserAgent, [{ key: "render", value: function render() { var _props = this.props, children = _props.children, render = _props.render; if (children) { return children(this.state); } if (render) { return render(this.state); } console.error("Component UserAgent:", "no children or render prop are present"); return null; } }]); return UserAgent; }(Component); export { withUserAgent, UserAgent };