import { Checkbox, DialogContent, FormGroup, Stack, Tooltip } from "@mui/material"; import { useCallback, useState } from "react"; import { useTranslation } from "react-i18next"; import { batchDeleteEntities } from "../../../api/api.ts"; import { useAppDispatch } from "../../../redux/hooks.ts"; import { SmallFormControlLabel } from "../../Common/StyledComponents.tsx"; import DialogAccordion from "../../Dialogs/DialogAccordion.tsx"; import DraggableDialog, { StyledDialogContentText } from "../../Dialogs/DraggableDialog.tsx"; export interface EntityDeleteDialogProps { entityID?: number[]; open: boolean; onClose?: () => void; onDelete?: () => void; } const EntityDeleteDialog = ({ entityID, open, onDelete, onClose }: EntityDeleteDialogProps) => { const { t } = useTranslation("dashboard"); const dispatch = useAppDispatch(); const [force, setForce] = useState(false); const [deleting, setDeleting] = useState(false); const onAccept = useCallback(() => { if (entityID) { setDeleting?.(true); dispatch(batchDeleteEntities({ ids: entityID, force })) .then(() => { onDelete?.(); onClose?.(); }) .finally(() => { setDeleting?.(false); }); } }, [entityID, force, setDeleting]); return ( {t("entity.confirmBatchDelete", { num: entityID?.length })} setForce(e.target.checked)} checked={force} />} label={t("entity.forceDelete")} /> ); }; export default EntityDeleteDialog;