@bootstrap-styled/ra-ui
Version:
UI components for react-admin
73 lines (57 loc) • 2.53 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.CloneButton = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _shouldUpdate = _interopRequireDefault(require("recompose/shouldUpdate"));
var _Queue = _interopRequireDefault(require("@material-ui/icons/Queue"));
var _reactRouterDom = require("react-router-dom");
var _Button = _interopRequireDefault(require("./Button"));
var stopPropagation = function stopPropagation(e) {
return e.stopPropagation();
};
var omitId = function omitId(_ref) {
var id = _ref.id,
rest = (0, _objectWithoutProperties2.default)(_ref, ["id"]);
return rest;
};
var CloneButton = function CloneButton(_ref2) {
var _ref2$basePath = _ref2.basePath,
basePath = _ref2$basePath === void 0 ? '' : _ref2$basePath,
_ref2$label = _ref2.label,
label = _ref2$label === void 0 ? 'ra.action.clone' : _ref2$label,
_ref2$record = _ref2.record,
record = _ref2$record === void 0 ? {} : _ref2$record,
_ref2$icon = _ref2.icon,
icon = _ref2$icon === void 0 ? _react.default.createElement(_Queue.default, null) : _ref2$icon,
rest = (0, _objectWithoutProperties2.default)(_ref2, ["basePath", "label", "record", "icon"]);
return _react.default.createElement(_Button.default, (0, _extends2.default)({
tag: _reactRouterDom.Link,
to: {
pathname: "".concat(basePath, "/create"),
state: {
record: omitId(record)
}
},
label: label,
onClick: stopPropagation
}, rest), icon);
};
exports.CloneButton = CloneButton;
CloneButton.propTypes = {
basePath: _propTypes.default.string,
className: _propTypes.default.string,
label: _propTypes.default.string,
record: _propTypes.default.object,
icon: _propTypes.default.element
};
var enhance = (0, _shouldUpdate.default)(function (props, nextProps) {
return props.translate !== nextProps.translate || props.record && nextProps.record && props.record !== nextProps.record || props.basePath !== nextProps.basePath || props.record == null && nextProps.record != null;
});
var _default = enhance(CloneButton);
exports.default = _default;