UNPKG

1.58 kBJavaScriptView Raw
1function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("react"),i=(e(t),e(require("prop-types"))),r="MOBILE",o=t.createContext(r),n=function(e){function t(t){e.call(this,t),this.state={deviceType:r},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":r;this.state.deviceType!==e&&this.setState({deviceType:e})},t.prototype.render=function(){return h(o.Provider,{value:this.state.deviceType},this.props.children)},t}(t.Component);n.propTypes={breakpoint:i.string.isRequired,children:i.node.isRequired};var s=function(e){var t=e.desktopRender,i=e.mobileRender;return h(o.Consumer,null,function(e){return"DESKTOP"===e&&t?t:e===r&&i?i:null})};s.propTypes={mobileRender:i.oneOfType([i.bool,i.node]),desktopRender:i.oneOfType([i.bool,i.node])},s.defaultProps={mobileRender:!1,desktopRender:!1};var p=function(e){return h(s,{mobileRender:e.children})};p.propTypes={children:i.node.isRequired};var d=function(e){return h(s,{desktopRender:e.children})};d.propTypes={children:i.node.isRequired},exports.DeviceSizeListener=n,exports.DeviceSwitch=s,exports.DeviceMobile=p,exports.DeviceDesktop=d;
2//# sourceMappingURL=index.js.map