fix: persist page size across main page navigation (#17439)

This commit is contained in:
euvre
2026-08-12 01:10:53 -07:00
committed by GitHub
parent 9cece9ca01
commit bc89010232

View File

@@ -85,27 +85,36 @@ export const useGetPaginationParams = () => {
};
};
const PageSizeStorageKeyPrefix = 'RAGFlowPageSize:';
const getStoredPageSize = (pathname: string) =>
Number(localStorage.getItem(`${PageSizeStorageKeyPrefix}${pathname}`));
export const useSetPaginationParams = () => {
const [queryParameters, setSearchParams] = useSearchParams();
// const newQueryParameters: URLSearchParams = useMemo(
// () => new URLSearchParams(queryParameters.toString()),
// [queryParameters],
// );
const { pathname } = useLocation();
const setPaginationParams = useCallback(
(page: number = 1, pageSize?: number) => {
queryParameters.set('page', page.toString());
if (pageSize) {
queryParameters.set('size', pageSize.toString());
// Persist the page size per main page so it survives navigation
// to other pages, where the URL search params are dropped.
localStorage.setItem(
`${PageSizeStorageKeyPrefix}${pathname}`,
pageSize.toString(),
);
}
setSearchParams(queryParameters);
},
[setSearchParams, queryParameters],
[setSearchParams, queryParameters, pathname],
);
return {
setPaginationParams,
page: Number(queryParameters.get('page')) || 1,
size: Number(queryParameters.get('size')) || 50,
size:
Number(queryParameters.get('size')) || getStoredPageSize(pathname) || 50,
};
};