@centreon/react-components
Version:
react components used by centreon web frontend
91 lines (71 loc) • 2.66 kB
JavaScript
"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 _react = _interopRequireDefault(require("react"));
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress"));
var _styles = require("@material-ui/core/styles");
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
var _ThemeProvider = _interopRequireDefault(require("@material-ui/styles/ThemeProvider"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var theme = (0, _styles.createMuiTheme)({
palette: {
primary: {
main: '#1174cb'
}
}
});
var SaveButton = function SaveButton(_ref) {
var succeeded = _ref.succeeded,
loading = _ref.loading,
tooltipLabel = _ref.tooltipLabel,
rest = (0, _objectWithoutProperties2["default"])(_ref, ["succeeded", "loading", "tooltipLabel"]);
var ButtonContent = function ButtonContent() {
if (succeeded) {
return _react["default"].createElement(_Check["default"], null);
}
if (loading) {
return _react["default"].createElement(_CircularProgress["default"], {
size: 30
});
}
return _react["default"].createElement(_Save["default"], null);
};
return _react["default"].createElement(_Tooltip["default"], {
title: tooltipLabel,
placement: "bottom"
}, _react["default"].createElement(_ThemeProvider["default"], {
theme: theme
}, _react["default"].createElement(_Button["default"], (0, _extends2["default"])({
variant: "contained",
color: "primary",
style: {
width: 40,
height: 40
},
"aria-label": "save button"
}, rest), ButtonContent())));
};
SaveButton.defaultProps = {
succeeded: false,
disabled: false,
loading: false,
tooltipLabel: 'Save',
onClick: function onClick() {}
};
SaveButton.propTypes = {
succeeded: _propTypes["default"].bool,
disabled: _propTypes["default"].bool,
loading: _propTypes["default"].bool,
tooltipLabel: _propTypes["default"].string,
onClick: _propTypes["default"].func
};
var _default = SaveButton;
exports["default"] = _default;