#
vincentlu
昨天 c65a357fc8b907af755e1ef6a2c201e31eb71e94
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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;