import React, { useCallback, useState } from "react";
|
import DeleteSweepIcon from '@mui/icons-material/DeleteSweep';
|
import {
|
useNotify,
|
useRefresh,
|
Button as RaButton,
|
} from 'react-admin';
|
import ConfirmButton from "../components/ConfirmButton";
|
import request from '@/utils/request';
|
|
const LaneDeleteAllButton = () => {
|
const notify = useNotify();
|
const refresh = useRefresh();
|
const [loading, setLoading] = useState(false);
|
|
const handleDeleteAll = useCallback(() => {
|
setLoading(true);
|
request.post("/lane/remove/all").then(res => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
notify(msg || 'common.response.success', { type: 'success', messageArgs: { _: msg } });
|
refresh();
|
} else {
|
notify(msg || 'common.response.fail', { type: 'error', messageArgs: { _: msg } });
|
}
|
}).catch(error => {
|
notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
|
}).finally(() => {
|
setLoading(false);
|
});
|
}, [notify, refresh]);
|
|
return (
|
<ConfirmButton
|
label="page.lane.actions.deleteAll"
|
onConfirm={handleDeleteAll}
|
disabled={loading}
|
renderButton={({ buttonProps }) => (
|
<RaButton
|
{...buttonProps}
|
label="page.lane.actions.deleteAll"
|
color="error"
|
size="small"
|
startIcon={<DeleteSweepIcon />}
|
sx={{
|
fontWeight: 600,
|
textTransform: 'none',
|
}}
|
/>
|
)}
|
/>
|
);
|
};
|
|
export default LaneDeleteAllButton;
|