UNPKG

@bootstrap-styled/ra-ui

Version:
161 lines (124 loc) 6.17 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.sanitizeRestProps = 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 _Delete = _interopRequireDefault(require("@material-ui/icons/Delete")); var _classnames = _interopRequireDefault(require("classnames")); var _raCore = require("ra-core"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _color = _interopRequireDefault(require("@bootstrap-styled/color")); var _lodash = require("lodash"); var _Button = _interopRequireDefault(require("./Button")); var sanitizeRestProps = function sanitizeRestProps(_ref) { var basePath = _ref.basePath, dispatchCrudDelete = _ref.dispatchCrudDelete, filterValues = _ref.filterValues, handleSubmit = _ref.handleSubmit, handleSubmitWithRedirect = _ref.handleSubmitWithRedirect, invalid = _ref.invalid, label = _ref.label, pristine = _ref.pristine, resource = _ref.resource, saving = _ref.saving, selectedIds = _ref.selectedIds, startUndoable = _ref.startUndoable, undoable = _ref.undoable, redirect = _ref.redirect, submitOnEnter = _ref.submitOnEnter, rest = (0, _objectWithoutProperties2.default)(_ref, ["basePath", "dispatchCrudDelete", "filterValues", "handleSubmit", "handleSubmitWithRedirect", "invalid", "label", "pristine", "resource", "saving", "selectedIds", "startUndoable", "undoable", "redirect", "submitOnEnter"]); return rest; }; exports.sanitizeRestProps = sanitizeRestProps; var StyledButton = (0, _styledComponents.default)(_Button.default).withConfig({ displayName: "DeleteWithUndoButton__StyledButton", componentId: "sc-1g93w87-0" })(["", ""], function (props) { return "\n color: ".concat(props.theme.$red, " \n &:hover {\n background-color: ").concat((0, _color.default)(props.theme.$red).fade(0.12).toString(), "\n }\n "); }); var DeleteWithUndoButton = function (_Component) { (0, _inherits2.default)(DeleteWithUndoButton, _Component); function DeleteWithUndoButton() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, DeleteWithUndoButton); 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)(DeleteWithUndoButton)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleDelete", function (event) { event.stopPropagation(); var _this$props = _this.props, startUndoable = _this$props.startUndoable, resource = _this$props.resource, record = _this$props.record, basePath = _this$props.basePath, redirect = _this$props.redirect, onClick = _this$props.onClick; startUndoable((0, _raCore.crudDelete)(resource, record.id, record, basePath, redirect)); if (typeof onClick === 'function') { onClick(); } }); return _this; } (0, _createClass2.default)(DeleteWithUndoButton, [{ key: "render", value: function render() { var _omit = (0, _lodash.omit)(this.props, ['theme']), _omit$label = _omit.label, label = _omit$label === void 0 ? 'ra.action.delete' : _omit$label, className = _omit.className, icon = _omit.icon, onClick = _omit.onClick, rest = (0, _objectWithoutProperties2.default)(_omit, ["label", "className", "icon", "onClick"]); return _react.default.createElement(StyledButton, (0, _extends2.default)({ onClick: this.handleDelete, label: label, className: (0, _classnames.default)('ra-delete-button', className) }, sanitizeRestProps(rest)), icon); } }]); return DeleteWithUndoButton; }(_react.Component); DeleteWithUndoButton.propTypes = { basePath: _propTypes.default.string, className: _propTypes.default.string, label: _propTypes.default.string, record: _propTypes.default.object, redirect: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.func]), resource: _propTypes.default.string.isRequired, startUndoable: _propTypes.default.func, translate: _propTypes.default.func, icon: _propTypes.default.element, theme: _propTypes.default.shape({ $red: _propTypes.default.string }) }; DeleteWithUndoButton.defaultProps = { redirect: 'list', undoable: true, icon: _react.default.createElement(_Delete.default, null), theme: { $red: '#d9534f' } }; var _default = (0, _compose.default)((0, _reactRedux.connect)(null, { startUndoable: _raCore.startUndoable }), _raCore.translate)(DeleteWithUndoButton); exports.default = _default;