@quentin-sommer/react-useragent
Version:
react-useragent React component
3 lines (2 loc) • 2.34 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("prop-types")),t=require("react"),n=e(t),o=require("ua-parser-js");function i(){return(i=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function a(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.__proto__=r}var s=["computer","windows","linux","mac","mobile","tablet","android","ios","firefox","chrome","edge","safari"],u=n.createContext({uaResults:{},parser:{}}),p=function(e){function r(r){var t;t=e.call(this,r)||this;var n=new o.UAParser,i={android:!1,ios:!1,mobile:!1,tablet:!1,windows:!1,mac:!1,linux:!1,computer:!1,firefox:!1,chrome:!1,edge:!1,safari:!1};return n.setUA(r.ua),i.android="Android"===n.getOS().name,i.ios="iOS"===n.getOS().name,i.mobile="mobile"===n.getDevice().type,i.tablet="tablet"===n.getDevice().type,i.windows="Windows"===n.getOS().name,i.mac="Mac OS"===n.getOS().name,i.linux="Linux"===n.getOS().name,i.computer=i.windows||i.mac||i.linux||void 0===n.getDevice().type,i.firefox="Firefox"===n.getBrowser().name,i.chrome="Chrome"===n.getBrowser().name,i.edge="Edge"===n.getBrowser().name,i.safari="Safari"===n.getBrowser().name,t.uaParser=n,t.uaResults=i,t}return a(r,e),r.prototype.render=function(){return n.createElement(u.Provider,{value:{parser:this.uaParser,uaResults:this.uaResults}},this.props.children)},r}(n.Component);p.propTypes={ua:r.string.isRequired,children:r.element.isRequired};var l=function(e){function r(){return e.apply(this,arguments)||this}return a(r,e),r.prototype.render=function(){var e=this.props,r=e.children,t=e.returnFullParser,n=this.context,o=Object.keys(this.props).filter((function(e){return-1!==s.indexOf(e)})),i=o.some((function(e){return n.uaResults[e]})),a="function"==typeof r;return 0!==o.length?a?r(i):i?r:null:a?r(t?n.parser:n.uaResults):null},r}(t.Component);l.contextType=u,l.defaultProps={returnFullParser:!1},l.propTypes=i({},s.reduce((function(e,t){var n;return i({},e,((n={})[t]=r.bool,n))}),{}),{returnFullParser:r.bool}),exports.UAContext=u,exports.UserAgent=l,exports.UserAgentProvider=p;
//# sourceMappingURL=react-useragent.cjs.production.min.js.map