ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
66 lines • 2.15 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var useDeleteController_1 = require("./useDeleteController");
var util_1 = require("../../util");
/**
* Prepare callback for a Delete button with undo support
* @deprecated prefer the useDeleteController hook instead
* @example
*
* import React from 'react';
* import ActionDelete from '@mui/icons-material/Delete';
* import { Button, useDeleteWithUndoController } from 'react-admin';
*
* const DeleteButton = ({
* resource,
* record,
* redirect,
* onClick,
* ...rest
* }) => {
* const { isPending, handleDelete } = useDeleteWithUndoController({
* resource,
* record,
* redirect,
* onClick,
* });
*
* return (
* <Button
* onClick={handleDelete}
* disabled={isPending}
* label="ra.action.delete"
* {...rest}
* >
* <ActionDelete />
* </Button>
* );
* };
*/
var useDeleteWithUndoController = function (props) {
var onClick = props.onClick;
var _a = (0, useDeleteController_1.useDeleteController)(__assign(__assign({}, props), { mutationMode: 'undoable' })), isPending = _a.isPending, controllerHandleDelete = _a.handleDelete;
var handleDelete = (0, util_1.useEvent)(function (event) {
if (event && event.stopPropagation) {
event.stopPropagation();
}
controllerHandleDelete();
if (typeof onClick === 'function') {
onClick(event);
}
});
return { isPending: isPending, isLoading: isPending, handleDelete: handleDelete };
};
exports.default = useDeleteWithUndoController;
//# sourceMappingURL=useDeleteWithUndoController.js.map