mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-13 04:13:35 +08:00
fix: persist page size across main page navigation (#17439)
This commit is contained in:
@@ -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,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user