import { jsx as _jsx } from "react/jsx-runtime";
import React from 'react';
import { Button, message } from 'antd';
import { useRequest, useToggle } from 'ahooks';
import DownloadOutlined from '@ant-design/icons/DownloadOutlined';
import download from 'downloadjs';
export const ExportFile = (props) => {
    const { exportText = '导出', styleCss = {
        float: 'right',
        height: '30px',
        lineHeight: '30px',
    }, service, params, icon, type, fileName = Date.now(), } = props;
    const { run, loading } = useRequest(service, {
        manual: true,
        throttleWait: 10000,
        onSuccess(res) {
            if (res.message && res.success != true) {
                message.warning(res.message);
            }
            else {
                download(res, `${fileName}.${type || 'csv'}`);
            }
        },
        onError(res) {
            message.error(res.message);
        },
    });
    function onExportFile() {
        run(params);
    }
    return (_jsx("div", Object.assign({ style: styleCss }, { children: _jsx(Button, Object.assign({ type: "link", onClick: onExportFile, loading: loading, icon: icon || _jsx(DownloadOutlined, {}) }, { children: exportText })) })));
};