diff --git a/src/renderer/components/virtual-table/hooks/use-virtual-table.ts b/src/renderer/components/virtual-table/hooks/use-virtual-table.ts index e4673dde..9ced8c58 100644 --- a/src/renderer/components/virtual-table/hooks/use-virtual-table.ts +++ b/src/renderer/components/virtual-table/hooks/use-virtual-table.ts @@ -176,11 +176,12 @@ export const useVirtualTable = ({ const { data } = args; setSearchParams( - { - ...(data.currentPage && { currentPage: String(data.currentPage) }), - ...(data.itemsPerPage && { itemsPerPage: String(data.itemsPerPage) }), - ...(data.totalItems && { totalItems: String(data.totalItems) }), - ...(data.totalPages && { totalPages: String(data.totalPages) }), + (params) => { + if (data.currentPage) params.set('currentPage', String(data.currentPage)); + if (data.itemsPerPage) params.set('itemsPerPage', String(data.itemsPerPage)); + if (data.totalItems) params.set('totalItems', String(data.totalItems)); + if (data.totalPages) params.set('totalPages', String(data.totalPages)); + return params; }, { replace: true }, ); @@ -204,10 +205,12 @@ export const useVirtualTable = ({ if (isSearchParams) { setSearchParams( - { - itemsPerPage: String(event.api.paginationGetPageSize()), - totalItems: String(event.api.paginationGetRowCount()), - totalPages: String(event.api.paginationGetTotalPages() + 1), + (params) => { + params.set('currentPage', String(event.api?.paginationGetCurrentPage())); + params.set('itemsPerPage', String(event.api?.paginationGetPageSize())); + params.set('totalItems', String(event.api?.paginationGetRowCount())); + params.set('totalPages', String(event.api?.paginationGetTotalPages() + 1)); + return params; }, { replace: true }, ); diff --git a/src/renderer/features/albums/components/album-list-grid-view.tsx b/src/renderer/features/albums/components/album-list-grid-view.tsx index f10cc0bc..824effbf 100644 --- a/src/renderer/features/albums/components/album-list-grid-view.tsx +++ b/src/renderer/features/albums/components/album-list-grid-view.tsx @@ -130,7 +130,13 @@ export const AlbumListGridView = ({ gridRef, itemCount }: any) => { const handleGridScroll = useCallback( (e: ListOnScrollProps) => { if (id) { - setSearchParams({ scrollOffset: String(e.scrollOffset) }); + setSearchParams( + (params) => { + params.set('scrollOffset', String(e.scrollOffset)); + return params; + }, + { replace: true }, + ); } else { setGrid({ data: { scrollOffset: e.scrollOffset }, key: pageKey }); }