import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from "@mui/material"; import { Fragment, useState } from "react"; import { SimpleForm, BooleanInput, useTranslate, RaRecord, useNotify, useRedirect, useDelete, NotificationType, useDeleteMany, Identifier, useUnselectAll } from "react-admin"; import ActionDelete from "@mui/icons-material/Delete"; import ActionCheck from "@mui/icons-material/CheckCircle"; import AlertError from "@mui/icons-material/ErrorOutline"; interface DeleteRoomButtonProps { selectedIds: Identifier[]; confirmTitle: string; confirmContent: string; } const resourceName = "rooms"; const DeleteRoomButton: React.FC = (props) => { const translate = useTranslate(); const [open, setOpen] = useState(false); const [block, setBlock] = useState(false); const notify = useNotify(); const redirect = useRedirect(); const [deleteMany, { isLoading }] = useDeleteMany(); const unselectAll = useUnselectAll(resourceName); const recordIds = props.selectedIds; const handleDialogOpen = () => setOpen(true); const handleDialogClose = () => setOpen(false); const handleDelete = (values: {block: boolean}) => { deleteMany( resourceName, { ids: recordIds, meta: values }, { onSuccess: () => { notify("resources.rooms.action.erase.success"); handleDialogClose(); unselectAll(); redirect("/rooms"); }, onError: (error) => notify("resources.rooms.action.erase.failure", { type: 'error' as NotificationType }), } ); }; const handleConfirm = () => { setOpen(false); handleDelete({ block: block }); }; return ( {translate(props.confirmTitle)} {translate(props.confirmContent)} ) => setBlock(event.target.checked)} label="resources.rooms.action.erase.fields.block" defaultValue={false} /> ); }; export default DeleteRoomButton;