UNPKG

@bootstrap-styled/ra-ui

Version:
171 lines (135 loc) 6.54 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.SaveButton = 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 _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactRedux = require("react-redux"); var _compose = _interopRequireDefault(require("recompose/compose")); var _Button = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Button")); var _Save = _interopRequireDefault(require("@material-ui/icons/Save")); var _classnames = _interopRequireDefault(require("classnames")); var _raCore = require("ra-core"); var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress")); var sanitizeRestProps = function sanitizeRestProps(_ref) { var basePath = _ref.basePath, className = _ref.className, saving = _ref.saving, label = _ref.label, invalid = _ref.invalid, translate = _ref.translate, handleSubmit = _ref.handleSubmit, handleSubmitWithRedirect = _ref.handleSubmitWithRedirect, submitOnEnter = _ref.submitOnEnter, redirect = _ref.redirect, locale = _ref.locale, showNotification = _ref.showNotification, rest = (0, _objectWithoutProperties2.default)(_ref, ["basePath", "className", "saving", "label", "invalid", "translate", "handleSubmit", "handleSubmitWithRedirect", "submitOnEnter", "redirect", "locale", "showNotification"]); return rest; }; var SaveButton = function (_Component) { (0, _inherits2.default)(SaveButton, _Component); function SaveButton() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, SaveButton); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(SaveButton)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleClick", function (e) { var _this$props = _this.props, handleSubmitWithRedirect = _this$props.handleSubmitWithRedirect, invalid = _this$props.invalid, redirect = _this$props.redirect, saving = _this$props.saving, showNotification = _this$props.showNotification, onClick = _this$props.onClick; if (saving) { e.preventDefault(); } else { if (invalid) { showNotification('ra.message.invalid_form', 'warning'); } if (e) { e.preventDefault(); } handleSubmitWithRedirect(redirect)(); } if (typeof onClick === 'function') { onClick(); } }); return _this; } (0, _createClass2.default)(SaveButton, [{ key: "render", value: function render() { var _this$props2 = this.props, className = _this$props2.className, invalid = _this$props2.invalid, _this$props2$label = _this$props2.label, label = _this$props2$label === void 0 ? 'ra.action.save' : _this$props2$label, pristine = _this$props2.pristine, redirect = _this$props2.redirect, saving = _this$props2.saving, submitOnEnter = _this$props2.submitOnEnter, translate = _this$props2.translate, icon = _this$props2.icon, onClick = _this$props2.onClick, rest = (0, _objectWithoutProperties2.default)(_this$props2, ["className", "invalid", "label", "pristine", "redirect", "saving", "submitOnEnter", "translate", "icon", "onClick"]); var type = submitOnEnter ? 'submit' : 'button'; return _react.default.createElement(_Button.default, (0, _extends2.default)({ className: (0, _classnames.default)(className, 'cursor-pointer d-flex align-items-center'), type: type, onClick: this.handleClick, color: "primary" }, sanitizeRestProps(rest)), saving && saving.redirect === redirect ? _react.default.createElement(_CircularProgress.default, { size: 25, thickness: 2 }) : _react.default.cloneElement(icon, { className: 'pr-2' }), label && translate(label, { _: label })); } }]); return SaveButton; }(_react.Component); exports.SaveButton = SaveButton; (0, _defineProperty2.default)(SaveButton, "propTypes", { className: _propTypes.default.string, handleSubmitWithRedirect: _propTypes.default.func, invalid: _propTypes.default.bool, label: _propTypes.default.string, pristine: _propTypes.default.bool, redirect: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.func]), saving: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]), showNotification: _propTypes.default.func, submitOnEnter: _propTypes.default.bool, translate: _propTypes.default.func.isRequired, icon: _propTypes.default.element }); (0, _defineProperty2.default)(SaveButton, "defaultProps", { handleSubmitWithRedirect: function handleSubmitWithRedirect() { return function () {}; }, icon: _react.default.createElement(_Save.default, null) }); var enhance = (0, _compose.default)(_raCore.translate, (0, _reactRedux.connect)(undefined, { showNotification: _raCore.showNotification })); var _default = enhance(SaveButton); exports.default = _default;