| | |
| | | import React, { useCallback, useState } from "react"; |
| | | import DeleteSweepIcon from '@mui/icons-material/DeleteSweep'; |
| | | import { |
| | | useDataProvider, |
| | | useNotify, |
| | | useRefresh, |
| | | Button as RaButton, |
| | | } from 'react-admin'; |
| | | import ConfirmButton from "../components/ConfirmButton"; |
| | | import request from '@/utils/request'; |
| | | |
| | | const LaneDeleteAllButton = () => { |
| | | const dataProvider = useDataProvider(); |
| | | const notify = useNotify(); |
| | | const refresh = useRefresh(); |
| | | const [loading, setLoading] = useState(false); |
| | | |
| | | const handleConfirm = useCallback(() => { |
| | | const handleDeleteAll = useCallback(() => { |
| | | setLoading(true); |
| | | dataProvider.delete('lane', { |
| | | id: '__purge_all__', |
| | | meta: { deleteAll: true }, |
| | | }).then(() => { |
| | | notify('page.lane.actions.deleteAllSuccess', { type: 'info' }); |
| | | refresh(); |
| | | }).catch((error) => { |
| | | console.error(error); |
| | | notify('page.lane.actions.deleteAllError', { type: 'error' }); |
| | | 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); |
| | | }); |
| | | }, [dataProvider, notify, refresh]); |
| | | }, [notify, refresh]); |
| | | |
| | | return ( |
| | | <ConfirmButton |
| | | label="page.lane.actions.deleteAll" |
| | | onConfirm={handleConfirm} |
| | | onConfirm={handleDeleteAll} |
| | | disabled={loading} |
| | | renderButton={({ buttonProps }) => ( |
| | | <RaButton |