add optimistic update for favorite/ratings mutations

This commit is contained in:
jeffvli
2025-11-23 03:40:53 -08:00
parent 0bc3ea51ec
commit 84419820b8
19 changed files with 975 additions and 324 deletions
+45
View File
@@ -71,6 +71,18 @@ export const queryKeys: Record<
return [serverId, 'albumArtists', 'detail'] as const;
},
infiniteList: (serverId: string, query?: AlbumArtistListQuery) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination) {
return [serverId, 'albumArtists', 'infiniteList', filter, pagination] as const;
}
if (query) {
return [serverId, 'albumArtists', 'infiniteList', filter] as const;
}
return [serverId, 'albumArtists', 'infiniteList'] as const;
},
list: (serverId: string, query?: AlbumArtistListQuery) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination) {
@@ -118,6 +130,27 @@ export const queryKeys: Record<
return [serverId, 'albums', 'detail'] as const;
},
infiniteList: (serverId: string, query?: AlbumListQuery, artistId?: string) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination && artistId) {
return [serverId, 'albums', 'infiniteList', artistId, filter, pagination] as const;
}
if (query && pagination) {
return [serverId, 'albums', 'infiniteList', filter, pagination] as const;
}
if (query && artistId) {
return [serverId, 'albums', 'infiniteList', artistId, filter] as const;
}
if (query) {
return [serverId, 'albums', 'infiniteList', filter] as const;
}
return [serverId, 'albums', 'infiniteList'] as const;
},
list: (serverId: string, query?: AlbumListQuery, artistId?: string) => {
const { filter, pagination } = splitPaginatedQuery(query);
@@ -165,6 +198,18 @@ export const queryKeys: Record<
return [serverId, 'artists', 'count'] as const;
},
infiniteList: (serverId: string, query?: ArtistListQuery) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination) {
return [serverId, 'artists', 'infiniteList', filter, pagination] as const;
}
if (query) {
return [serverId, 'artists', 'infiniteList', filter] as const;
}
return [serverId, 'artists', 'infiniteList'] as const;
},
list: (serverId: string, query?: ArtistListQuery) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination) {