mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-24 07:15:44 +00:00
feat(FE-338): Slicing UI Halaman Reporting BOP & API integration & refactor debounce input: adding useEffect for sync value
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import SuspenseHelper from '@/components/helper/SuspenseHelper';
|
||||
|
||||
const Layout = ({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) => {
|
||||
return <SuspenseHelper>{children}</SuspenseHelper>;
|
||||
};
|
||||
|
||||
export default Layout;
|
||||
@@ -0,0 +1,5 @@
|
||||
const ReportExpenseDetail = () => {
|
||||
return <div>ReportExpenseDetail</div>;
|
||||
};
|
||||
|
||||
export default ReportExpenseDetail;
|
||||
@@ -0,0 +1,52 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import useSWR from 'swr';
|
||||
import ReportExpenseTable from '@/components/pages/report/expense/ReportExpenseTable';
|
||||
import { ReportExpenseApi } from '@/services/api/report';
|
||||
import { isResponseSuccess } from '@/lib/api-helper';
|
||||
import { ReportExpenseSearchParams } from '@/types/api/report/report-expense';
|
||||
|
||||
const ReportExpense = () => {
|
||||
const [params, setParams] = useState<ReportExpenseSearchParams>({
|
||||
locationId: null,
|
||||
supplierId: null,
|
||||
kandangId: null,
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
category: null,
|
||||
period: '',
|
||||
search: '',
|
||||
});
|
||||
|
||||
const reportUrl = `${ReportExpenseApi.basePath}?${new URLSearchParams({
|
||||
location_id: params.locationId ?? '',
|
||||
supplier_id: params.supplierId ?? '',
|
||||
kandang_id: params.kandangId ?? '',
|
||||
start_date: params.startDate ?? '',
|
||||
end_date: params.endDate ?? '',
|
||||
category: params.category ?? '',
|
||||
period: params.period.toString(),
|
||||
search: params.search,
|
||||
})}`;
|
||||
const { data: reportExpenses } = useSWR(reportUrl, () =>
|
||||
ReportExpenseApi.getAllFetcher(reportUrl)
|
||||
);
|
||||
|
||||
const onSearch = (searchParams: ReportExpenseSearchParams) => {
|
||||
setParams(searchParams);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className='w-full p-4'>
|
||||
<ReportExpenseTable
|
||||
reportExpenses={
|
||||
isResponseSuccess(reportExpenses) ? reportExpenses.data : []
|
||||
}
|
||||
onSearch={onSearch}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default ReportExpense;
|
||||
Reference in New Issue
Block a user