import { t } from '@lingui/macro'; import { Button, DatePicker, Form, Select } from 'antd'; import { SbtPageHeader } from 'components/page-header'; import { ReportOverViewTable } from 'components/report-detail'; import { Dayjs } from 'dayjs'; import { useOverViewReport } from 'queries/report'; import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { DownloadOutlined } from '@ant-design/icons'; import { downloadDashboardReport } from 'request/report'; export interface ReportFormValues { duration: string; dateRange: [Dayjs, Dayjs]; subsidiary: string; } const Dashboard = () => { const navigate = useNavigate(); const [duration, setDuration] = useState('30d'); const [subsidiary, setSubsidiary] = useState('all'); const [form] = Form.useForm(); const [pagination, setPagination] = useState({ page: 1, page_size: 10, }); const [fromData, setFormData] = useState<{ start_date: string; end_date: string; subsidiary: string; }>({ start_date: '', end_date: '', subsidiary: '', }); const { isLoading, data } = useOverViewReport({ start_date: fromData.start_date, end_date: fromData.end_date, subsidiary: fromData.subsidiary, page: pagination.page, page_size: 30, }); const handleSubmit = (values: ReportFormValues) => { console.log('check values >>>', values); setFormData({ start_date: values.dateRange[0].format('YYYY-MM-DDTHH:mm:ssZ'), end_date: values.dateRange[1].format('YYYY-MM-DDTHH:mm:ssZ'), subsidiary: values.subsidiary, }); }; const handleDownloadReport = async () => { console.log('duration >>>', duration); console.log('subsidiary >>>', subsidiary); const {file, filename} = await downloadDashboardReport(duration, subsidiary); const anchorElement = document.createElement('a'); anchorElement.href = URL.createObjectURL(file); anchorElement.download = filename; document.body.appendChild(anchorElement); anchorElement.click(); // Clean up document.body.removeChild(anchorElement); URL.revokeObjectURL(anchorElement.href); }; return ( <> } />
{/* TODO: Remove this when the Dashboard page is refactored */} { setSubsidiary(value); }} />
); }; export default Dashboard;