UNPKG

@material-ui/core

Version:

React components that implement Google's Material Design.

139 lines (106 loc) 4.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics")); var _utils = require("@material-ui/utils"); var _createMuiTheme = _interopRequireDefault(require("./createMuiTheme")); var _themeListener = _interopRequireDefault(require("./themeListener")); /* eslint-disable no-underscore-dangle */ var defaultTheme; function getDefaultTheme() { if (defaultTheme) { return defaultTheme; } defaultTheme = (0, _createMuiTheme.default)({ typography: { suppressWarning: true } }); return defaultTheme; } // Provide the theme object as a property to the input component. var withThemeOld = function withThemeOld() { return function (Component) { var WithTheme = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(WithTheme, _React$Component); function WithTheme(props, context) { var _this; (0, _classCallCheck2.default)(this, WithTheme); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(WithTheme).call(this)); _this.state = { // We use || as the function call is lazy evaluated. theme: _themeListener.default.initial(context) || getDefaultTheme() }; return _this; } (0, _createClass2.default)(WithTheme, [{ key: "componentDidMount", value: function componentDidMount() { var _this2 = this; this.unsubscribeId = _themeListener.default.subscribe(this.context, function (theme) { _this2.setState({ theme: theme }); }); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { if (this.unsubscribeId !== null) { _themeListener.default.unsubscribe(this.context, this.unsubscribeId); } } }, { key: "render", value: function render() { var _this$props = this.props, innerRef = _this$props.innerRef, other = (0, _objectWithoutProperties2.default)(_this$props, ["innerRef"]); return _react.default.createElement(Component, (0, _extends2.default)({ theme: this.state.theme, ref: innerRef }, other)); } }]); return WithTheme; }(_react.default.Component); process.env.NODE_ENV !== "production" ? WithTheme.propTypes = { /** * Use that property to pass a ref callback to the decorated component. */ innerRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]) } : void 0; WithTheme.contextTypes = _themeListener.default.contextTypes; if (process.env.NODE_ENV !== 'production') { WithTheme.displayName = "WithTheme(".concat((0, _utils.getDisplayName)(Component), ")"); } (0, _hoistNonReactStatics.default)(WithTheme, Component); if (process.env.NODE_ENV !== 'production') { // Exposed for test purposes. WithTheme.Naked = Component; } return WithTheme; }; }; /* istanbul ignore if */ if (!_utils.ponyfillGlobal.__MUI_STYLES__) { _utils.ponyfillGlobal.__MUI_STYLES__ = {}; } if (!_utils.ponyfillGlobal.__MUI_STYLES__.withTheme) { _utils.ponyfillGlobal.__MUI_STYLES__.withTheme = withThemeOld; } var _default = _utils.ponyfillGlobal.__MUI_STYLES__.withTheme; exports.default = _default;