[bugfix]: fix album artist order and mild race protection

This commit is contained in:
Kendall Garner 2024-04-09 22:11:29 -07:00
parent 15c6ef382a
commit c3fcb7487c
No known key found for this signature in database
GPG key ID: 18D2767419676C87
2 changed files with 18 additions and 18 deletions

View file

@ -108,17 +108,19 @@ export const VirtualInfiniteGrid = forwardRef(
take: end - start, take: end - start,
}); });
const newData: any[] = [...itemData]; setItemData((itemData) => {
const newData: any[] = [...itemData];
let itemIndex = 0; let itemIndex = 0;
for (let rowIndex = start; rowIndex < end; rowIndex += 1) { for (let rowIndex = start; rowIndex < itemCount; rowIndex += 1) {
newData[rowIndex] = data.items[itemIndex]; newData[rowIndex] = data.items[itemIndex];
itemIndex += 1; itemIndex += 1;
} }
setItemData(newData); return newData;
});
}, },
[columnCount, fetchFn, itemData, setItemData], [columnCount, fetchFn, itemCount],
); );
const debouncedLoadMoreItems = debounce(loadMoreItems, 500); const debouncedLoadMoreItems = debounce(loadMoreItems, 500);

View file

@ -11,6 +11,7 @@ import {
AlbumArtistListQuery, AlbumArtistListQuery,
AlbumArtistListResponse, AlbumArtistListResponse,
AlbumArtistListSort, AlbumArtistListSort,
ArtistListQuery,
LibraryItem, LibraryItem,
} from '/@/renderer/api/types'; } from '/@/renderer/api/types';
import { ALBUMARTIST_CARD_ROWS } from '/@/renderer/components'; import { ALBUMARTIST_CARD_ROWS } from '/@/renderer/components';
@ -72,16 +73,13 @@ export const AlbumArtistListGridView = ({ itemCount, gridRef }: AlbumArtistListG
const fetch = useCallback( const fetch = useCallback(
async ({ skip: startIndex, take: limit }: { skip: number; take: number }) => { async ({ skip: startIndex, take: limit }: { skip: number; take: number }) => {
const queryKey = queryKeys.albumArtists.list( const query: ArtistListQuery = {
server?.id || '', ...filter,
{ limit,
...filter, startIndex,
}, };
{
limit, const queryKey = queryKeys.albumArtists.list(server?.id || '', query);
startIndex,
},
);
const albumArtistsRes = await queryClient.fetchQuery( const albumArtistsRes = await queryClient.fetchQuery(
queryKey, queryKey,