diff --git a/src/hooks/pagination.js b/src/hooks/pagination.js index 7631f1dfd88c6a4359e97134b057f0aa3a5ffe54..e976fec5d732879248f1a0e760f020bcdae0a1ca 100644 --- a/src/hooks/pagination.js +++ b/src/hooks/pagination.js @@ -52,6 +52,7 @@ export const usePagination = ({ return { pagination, - setPagination + setPagination, + setTotalCount }; }; diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js index ac35ce4a6629e26ea14f0a0a6cafda6fa38b28d0..81f7db29d349b4e9fbbb106e048aa19f686a2517 100644 --- a/src/views/records/RecordListView.js +++ b/src/views/records/RecordListView.js @@ -98,7 +98,7 @@ export function RecordListView() { const rowsPerPage = [20, 50]; - const { pagination, setPagination } = usePagination({ + const { pagination, setPagination, setTotalCount } = usePagination({ rowsPerPageOptions: rowsPerPage, initLimit: urlPagination.rows ?? rowsPerPage[0], initPage: urlPagination.page ?? 0 @@ -106,8 +106,14 @@ export function RecordListView() { // update pagination whenever search result total pages change useEffect(() => { - setPagination({ totalCount: records?.totalCount ?? 0 }); - }, [setPagination, records?.totalCount]); + setTotalCount((prev) => { + if (prev === pagination.totalCount && prev > 0) { + return prev; + } else { + return records?.totalCount ?? 0; + } + }); + }, [pagination, records?.totalCount, setTotalCount]); // whenever url state changes, update pagination useEffect(() => {