react-useragent
Version:
Utility to add user agent information to your react components
82 lines (66 loc) • 2.24 kB
JavaScript
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 };