sbt-idp/cope2n-fe/src/pages/dashboard/index.tsx

118 lines
3.0 KiB
TypeScript
Raw Normal View History

2024-01-31 04:08:20 +00:00
import { t } from '@lingui/macro';
2024-02-01 05:54:12 +00:00
import { Button, DatePicker, Form, Select } from 'antd';
2024-01-31 04:08:20 +00:00
import { SbtPageHeader } from 'components/page-header';
2024-01-31 09:54:39 +00:00
import { ReportOverViewTable } from 'components/report-detail';
2024-01-31 04:08:20 +00:00
import { Dayjs } from 'dayjs';
2024-02-01 05:54:12 +00:00
import { useOverViewReport } from 'queries/report';
import { useState } from 'react';
2024-01-31 04:08:20 +00:00
import { useNavigate } from 'react-router-dom';
export interface ReportFormValues {
dateRange: [Dayjs, Dayjs];
2024-01-31 09:54:39 +00:00
subsidiary: string;
2024-01-31 04:08:20 +00:00
}
const Dashboard = () => {
const navigate = useNavigate();
2024-02-01 05:54:12 +00:00
const [form] = Form.useForm<ReportFormValues>();
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,
2024-02-02 06:42:56 +00:00
page: pagination.page,
page_size: 30,
2024-02-01 05:54:12 +00:00
});
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,
});
};
2024-01-31 04:08:20 +00:00
return (
<>
<SbtPageHeader
title={t`Dashboard`}
extra={
2024-01-31 09:54:39 +00:00
<>
{/* <Button type='primary' icon={<DownloadOutlined />}>
Download
</Button> */}
2024-02-01 05:54:12 +00:00
{/* <Button type='primary' onClick={() => navigate('/reports')}>
2024-01-31 09:54:39 +00:00
{t`Go to Report page`}
2024-02-01 05:54:12 +00:00
</Button> */}
2024-01-31 09:54:39 +00:00
</>
2024-01-31 04:08:20 +00:00
}
/>
2024-02-01 05:54:12 +00:00
<Form
2024-01-31 09:54:39 +00:00
form={form}
style={{ display: 'flex', flexDirection: 'row', gap: 10 }}
onFinish={handleSubmit}
>
<Form.Item
name='dateRange'
label={t`Date`}
rules={[
{
required: true,
message: 'Please select a date range',
},
]}
>
<DatePicker.RangePicker />
</Form.Item>
2024-01-31 04:08:20 +00:00
2024-01-31 09:54:39 +00:00
<Form.Item
name='subsidiary'
label={t`Subsidiary`}
rules={[
{
required: true,
message: 'Please select a subsidiary',
},
]}
>
<Select
placeholder='Select a subsidiary'
style={{ width: 200 }}
options={[
{ value: 'all', label: 'ALL' },
{ value: 'sesp', label: 'SESP' },
{ value: 'seau', label: 'SEAU' },
]}
allowClear
/>
</Form.Item>
<Form.Item>
2024-02-01 05:54:12 +00:00
<Button type='primary' htmlType='submit' style={{ height: 38 }}>
2024-01-31 09:54:39 +00:00
Submit
</Button>
</Form.Item>
2024-02-01 05:54:12 +00:00
</Form>
<ReportOverViewTable
pagination={pagination}
setPagination={setPagination}
isLoading={isLoading}
data={data}
/>
2024-01-31 04:08:20 +00:00
</>
);
};
export default Dashboard;