UNPKG

react-useragent

Version:

Utility to add user agent information to your react components

90 lines (71 loc) 2.66 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var _extends = _interopDefault(require('babel-runtime/helpers/extends')); var _Object$getPrototypeOf = _interopDefault(require('babel-runtime/core-js/object/get-prototype-of')); var _classCallCheck = _interopDefault(require('babel-runtime/helpers/classCallCheck')); var _createClass = _interopDefault(require('babel-runtime/helpers/createClass')); var _possibleConstructorReturn = _interopDefault(require('babel-runtime/helpers/possibleConstructorReturn')); var _inherits = _interopDefault(require('babel-runtime/helpers/inherits')); var React = require('react'); var React__default = _interopDefault(React); var MobileDetect = _interopDefault(require('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__default.createElement(ComposedComponent, _extends({ ua: this.state.ua }, this.props)); } }]); return _class; }(React.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; }(React.Component); exports.withUserAgent = withUserAgent; exports.UserAgent = UserAgent;