UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

151 lines (125 loc) 4.26 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 _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 _styles = require("../styles"); var _LocaleProvider = require("../LocaleProvider"); var _CircularProgress = _interopRequireDefault(require("../CircularProgress")); var _Typography = _interopRequireDefault(require("../Typography")); var _Divider = _interopRequireDefault(require("../Divider")); /** * @ignore - do not document. */ var styles = function styles(theme) { return { root: { display: 'flex', justifyContent: 'center', alignItems: 'center', paddingTop: theme.spacing(1), paddingBottom: theme.spacing(1) }, progressBox: { display: 'flex' }, progress: { marginRight: theme.spacing(1) }, end: { width: '100%', display: 'flex', alignItems: 'center' }, divider: { margin: "0 ".concat(theme.spacing(2), "px"), flex: 1 } }; }; var Loading = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Loading, _React$Component); function Loading() { (0, _classCallCheck2.default)(this, Loading); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Loading).apply(this, arguments)); } (0, _createClass2.default)(Loading, [{ key: "render", value: function render() { var _this$props = this.props, classes = _this$props.classes, size = _this$props.size, CircularProgressProps = _this$props.CircularProgressProps, color = _this$props.color, content = _this$props.content, status = _this$props.status, message = _this$props.message; return _react.default.createElement("div", { className: classes.root }, status === 'loading' && _react.default.createElement("div", { className: classes.progressBox }, _react.default.createElement(_CircularProgress.default, (0, _extends2.default)({ className: classes.progress, size: size, color: color }, CircularProgressProps)), _react.default.createElement(_Typography.default, null, content)), status === 'end' && _react.default.createElement("div", { className: classes.end }, _react.default.createElement(_Divider.default, { className: classes.divider }), _react.default.createElement(_Typography.default, { variant: "caption" }, message), _react.default.createElement(_Divider.default, { className: classes.divider }))); } }]); return Loading; }(_react.default.Component); Loading.defaultProps = { size: 24, color: 'primary', status: 'closed', content: 'loading...', message: 'No more content' }; Loading.propTypes = { /** * Override or extend the styles applied to the component. * See [CSS API](#css-api) below for more details. */ CircularProgressProps: _propTypes.default.object, /** * the status of Loading */ classes: _propTypes.default.object.isRequired, /** * size of icon */ color: _propTypes.default.string, /** * color of icon */ content: _propTypes.default.string, /** * tips to end */ size: _propTypes.default.number, status: _propTypes.default.oneOf(['loading', 'end', 'closed']) }; var _default = (0, _styles.withStyles)(styles, { withTheme: true })((0, _LocaleProvider.withLocale)({ name: 'Loading' })(Loading)); exports.default = _default;