zhang
15 小时以前 af5081bc0d0668d526a204076557a171097ddb8d
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
import UploadIcon from '@mui/icons-material/Upload';
import { useState } from 'react';
import { Button } from 'react-admin';
import ImportModal from './ImportModal';
import ImportTxtModal from './ImportTxtModal';
import ImportXlsxModal from './ImportXlsxModal';
 
const ImportButton = ({
    type = 'csv', // csv, txt, xlsx,
    variant = 'text',
    ...props
}) => {
    const [modalOpen, setModalOpen] = useState(false);
 
    const handleOpenModal = (e) => {
        e.stopPropagation();
        setModalOpen(true);
    };
 
    const handleCloseModal = () => {
        setModalOpen(false);
    };
 
    return (
        <>
            <Button
                variant={variant}
                startIcon={<UploadIcon />}
                label="common.action.import.title"
                onClick={handleOpenModal}
            />
            {type === 'csv' && (<ImportModal open={modalOpen} onClose={handleCloseModal} {...props} />)}
            {type === 'txt' && (<ImportTxtModal open={modalOpen} onClose={handleCloseModal} {...props} />)}
            {type === 'xlsx' && (<ImportXlsxModal open={modalOpen} onClose={handleCloseModal} {...props} />)}
        </>
    );
};
 
export default ImportButton;