UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

67 lines (65 loc) 2.7 kB
"use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var React = require('react'); var BaseDecorator_1 = require('./BaseDecorator'); (function (ResponsiveMode) { ResponsiveMode[ResponsiveMode["small"] = 0] = "small"; ResponsiveMode[ResponsiveMode["medium"] = 1] = "medium"; ResponsiveMode[ResponsiveMode["large"] = 2] = "large"; ResponsiveMode[ResponsiveMode["xLarge"] = 3] = "xLarge"; ResponsiveMode[ResponsiveMode["xxLarge"] = 4] = "xxLarge"; ResponsiveMode[ResponsiveMode["xxxLarge"] = 5] = "xxxLarge"; })(exports.ResponsiveMode || (exports.ResponsiveMode = {})); var ResponsiveMode = exports.ResponsiveMode; var RESPONSIVE_MAX_CONSTRAINT = [ 479, 639, 1023, 1365, 1919, 99999999 ]; function withResponsiveMode(ComposedComponent) { return (function (_super) { __extends(WithResponsiveMode, _super); function WithResponsiveMode() { _super.call(this); this._updateComposedComponentRef = this._updateComposedComponentRef.bind(this); this.state = { responsiveMode: this._getResponsiveMode() }; } WithResponsiveMode.prototype.componentWillMount = function () { var _this = this; this._events.on(window, 'resize', function () { var responsiveMode = _this._getResponsiveMode(); if (responsiveMode !== _this.state.responsiveMode) { _this.setState({ responsiveMode: responsiveMode }); } }); }; WithResponsiveMode.prototype.componentWillUnmount = function () { this._events.dispose(); }; WithResponsiveMode.prototype.render = function () { var responsiveMode = this.state.responsiveMode; return (React.createElement(ComposedComponent, React.__spread({ref: this._updateComposedComponentRef, responsiveMode: responsiveMode}, this.props))); }; WithResponsiveMode.prototype._getResponsiveMode = function () { var responsiveMode = ResponsiveMode.small; while (window.innerWidth > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) { responsiveMode++; } return responsiveMode; }; return WithResponsiveMode; }(BaseDecorator_1.BaseDecorator)); } exports.withResponsiveMode = withResponsiveMode; //# sourceMappingURL=withResponsiveMode.js.map