diff --git a/src/components/records/RecordSearch.js b/src/components/records/RecordSearch.js index 4a3a859a37e48a5d3f8efe50b73caebd51021a63..d06a933723f7ef82e09c0cd0c981586f362a8903 100644 --- a/src/components/records/RecordSearch.js +++ b/src/components/records/RecordSearch.js @@ -92,7 +92,11 @@ export function RecordSearch({ iocName, rowType }) { // update pagination whenever search result total pages change useEffect(() => { setTotalCount((prev) => { - if (prev === pagination.totalCount && prev > 0) { + if ( + prev === pagination.totalCount && + prev > 0 && + prev === records?.totalCount + ) { return prev; } else { return records?.totalCount ?? 0; diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js index b91b07aa0dc3d6c61fdcd8d01a139c209629ae30..c8b4b0e787d46c5095ad33ce35d41acbb50d2e08 100644 --- a/src/views/records/RecordListView.js +++ b/src/views/records/RecordListView.js @@ -52,6 +52,8 @@ export function RecordListView() { { navigateMode: "replace" } ); const [recordFilter, setRecordFilter] = useState(null); + // used to request record list again when tab is switched, but request it only once! (totalRecord is a random number that is generated by ChannelFinder) + const [tabSwitched, setTabSwitched] = useState(false); const handleTabChange = useCallback( (event, tab) => { @@ -74,6 +76,8 @@ export function RecordListView() { } else if (tab === 2) { setRecordFilter("INACTIVE"); } + + setTabSwitched(true); }; useEffect(() => { @@ -108,13 +112,13 @@ export function RecordListView() { // update pagination whenever search result total pages change useEffect(() => { setTotalCount((prev) => { - if (prev === pagination.totalCount && prev > 0) { + if (prev === pagination.totalCount && prev > 0 && !tabSwitched) { return prev; } else { return records?.totalCount ?? 0; } }); - }, [pagination, records?.totalCount, setTotalCount]); + }, [pagination, records?.totalCount, setTotalCount, tabSwitched]); // whenever url state changes, update pagination useEffect(() => { @@ -133,6 +137,7 @@ export function RecordListView() { requestParams.pv_status = recordFilter; requestParams.record_name = deserialize(urlState.query); getRecords(requestParams); + setTabSwitched(false); return () => { abort();