From c3fcb7487c79043c0c9c5b4bba1fc1afbd108c16 Mon Sep 17 00:00:00 2001 From: Kendall Garner <17521368+kgarner7@users.noreply.github.com> Date: Tue, 9 Apr 2024 22:11:29 -0700 Subject: [PATCH] [bugfix]: fix album artist order and mild race protection --- .../virtual-grid/virtual-infinite-grid.tsx | 18 ++++++++++-------- .../components/album-artist-list-grid-view.tsx | 18 ++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx index c4ffe5d9..d6b60632 100644 --- a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx +++ b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx @@ -108,17 +108,19 @@ export const VirtualInfiniteGrid = forwardRef( take: end - start, }); - const newData: any[] = [...itemData]; + setItemData((itemData) => { + const newData: any[] = [...itemData]; - let itemIndex = 0; - for (let rowIndex = start; rowIndex < end; rowIndex += 1) { - newData[rowIndex] = data.items[itemIndex]; - itemIndex += 1; - } + let itemIndex = 0; + for (let rowIndex = start; rowIndex < itemCount; rowIndex += 1) { + newData[rowIndex] = data.items[itemIndex]; + itemIndex += 1; + } - setItemData(newData); + return newData; + }); }, - [columnCount, fetchFn, itemData, setItemData], + [columnCount, fetchFn, itemCount], ); const debouncedLoadMoreItems = debounce(loadMoreItems, 500); diff --git a/src/renderer/features/artists/components/album-artist-list-grid-view.tsx b/src/renderer/features/artists/components/album-artist-list-grid-view.tsx index 95ddcfe5..9ceabbb2 100644 --- a/src/renderer/features/artists/components/album-artist-list-grid-view.tsx +++ b/src/renderer/features/artists/components/album-artist-list-grid-view.tsx @@ -11,6 +11,7 @@ import { AlbumArtistListQuery, AlbumArtistListResponse, AlbumArtistListSort, + ArtistListQuery, LibraryItem, } from '/@/renderer/api/types'; import { ALBUMARTIST_CARD_ROWS } from '/@/renderer/components'; @@ -72,16 +73,13 @@ export const AlbumArtistListGridView = ({ itemCount, gridRef }: AlbumArtistListG const fetch = useCallback( async ({ skip: startIndex, take: limit }: { skip: number; take: number }) => { - const queryKey = queryKeys.albumArtists.list( - server?.id || '', - { - ...filter, - }, - { - limit, - startIndex, - }, - ); + const query: ArtistListQuery = { + ...filter, + limit, + startIndex, + }; + + const queryKey = queryKeys.albumArtists.list(server?.id || '', query); const albumArtistsRes = await queryClient.fetchQuery( queryKey,