UNPKG

1.74 kBJavaScriptView Raw
1!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],t):t(e.reactDeviceSwitch={},e.react,null)}(this,function(e,t,i){i=i&&i.hasOwnProperty("default")?i.default:i;var n="MOBILE",r=t.createContext(n),o=function(e){function t(t){e.call(this,t),this.state={deviceType:n},this.resize=this.resize.bind(this)}return e&&(t.__proto__=e),(t.prototype=Object.create(e&&e.prototype)).constructor=t,t.prototype.componentDidMount=function(){"undefined"!=typeof window&&window.matchMedia&&(this.media=window.matchMedia("("+this.props.breakpoint+")"),this.media.addListener(this.resize),this.resize())},t.prototype.componentWillUnmount=function(){this.media&&this.media.removeListener(this.resize)},t.prototype.resize=function(){var e=this.media.matches?"DESKTOP":n;this.state.deviceType!==e&&this.setState({deviceType:e})},t.prototype.render=function(){return h(r.Provider,{value:this.state.deviceType},this.props.children)},t}(t.Component);o.propTypes={breakpoint:i.string.isRequired,children:i.node.isRequired};var p=function(e){var t=e.desktopRender,i=e.mobileRender;return h(r.Consumer,null,function(e){return"DESKTOP"===e&&t?t:e===n&&i?i:null})};p.propTypes={mobileRender:i.oneOfType([i.bool,i.node]),desktopRender:i.oneOfType([i.bool,i.node])},p.defaultProps={mobileRender:!1,desktopRender:!1};var d=function(e){return h(p,{mobileRender:e.children})};d.propTypes={children:i.node.isRequired};var s=function(e){return h(p,{desktopRender:e.children})};s.propTypes={children:i.node.isRequired},e.DeviceSizeListener=o,e.DeviceSwitch=p,e.DeviceMobile=d,e.DeviceDesktop=s});
2//# sourceMappingURL=index.umd.js.map