fix: correct initial state values and improve pagination handling in TableList component

This commit is contained in:
2025-10-20 15:41:16 +07:00
parent d2c755c03d
commit 6a9bbb2b5e

View File

@@ -34,9 +34,9 @@ const TableList = memo(function TableList({
const [data, setData] = useState([]);
const [pagingResponse, setPagingResponse] = useState({
totalData: '',
perPage: '',
totalPage: '',
totalData: 0,
perPage: 0,
totalPage: 0,
});
const [pagination, setPagination] = useState({
@@ -62,30 +62,38 @@ const TableList = memo(function TableList({
};
const param = new URLSearchParams({ ...paging, ...queryParams });
const resData = await getData(param);
if (resData) {
setTimeout(() => {
setGridLoading(false);
}, 900);
} else {
setGridLoading(false);
return;
}
setData(resData.data.data ?? []);
setFilterData(resData.data.data ?? []);
const dataToSet = resData.data?.data ?? resData.data ?? [];
setData(dataToSet);
setFilterData(dataToSet);
if (resData.status == 200) {
setPagingResponse({
totalData: resData.paging.total_limit,
perPage: resData.paging.page_total,
totalPage: resData.paging.total_page,
});
const pagingData = resData.data?.paging;
setPagination((prev) => ({
...prev,
current: resData.paging.current_page,
limit: resData.paging.current_limit,
total: resData.paging.total_limit,
}));
if (pagingData) {
setPagingResponse({
totalData: pagingData.total || 0,
perPage: pagingData.limit || 0,
totalPage: pagingData.page_total || 0,
});
setPagination((prev) => ({
...prev,
current: pagingData.page || 1,
limit: pagingData.limit || 10,
total: pagingData.total || 0,
}));
}
}
};
@@ -93,7 +101,7 @@ const TableList = memo(function TableList({
setPagination((prev) => ({
...prev,
current: page,
pageSize,
limit: pageSize,
}));
filter(page, pageSize);
};
@@ -138,7 +146,7 @@ const TableList = memo(function TableList({
<Row justify="space-between" align="middle">
<Col>
<div>
Menampilkan {pagingResponse.totalPage} Data dari {pagingResponse.perPage}{' '}
Menampilkan {pagingResponse.totalData} Data dari {pagingResponse.totalPage}{' '}
Halaman
</div>
</Col>
@@ -148,7 +156,7 @@ const TableList = memo(function TableList({
onChange={handlePaginationChange}
onShowSizeChange={handlePaginationChange}
current={pagination.current}
pageSize={pagination.pageSize}
pageSize={pagination.limit}
total={pagination.total}
/>
</Col>