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