mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 04:50:12 +02:00
handle favorite/update in similarArtists
This commit is contained in:
@@ -215,13 +215,36 @@ export const applyFavoriteOptimisticUpdates = (
|
||||
queryClient.setQueryData(
|
||||
queryKey,
|
||||
(prev: AlbumArtistDetailResponse | undefined) => {
|
||||
if (prev && itemIdSet.has(prev.id)) {
|
||||
if (!prev) {
|
||||
return prev;
|
||||
}
|
||||
|
||||
// Update the main artist if it matches
|
||||
if (itemIdSet.has(prev.id)) {
|
||||
return {
|
||||
...prev,
|
||||
userFavorite: isFavorite,
|
||||
};
|
||||
}
|
||||
|
||||
// Update similar artists if any match
|
||||
if (prev.similarArtists && prev.similarArtists.length > 0) {
|
||||
const hasMatchingSimilarArtist = prev.similarArtists.some(
|
||||
(artist) => itemIdSet.has(artist.id),
|
||||
);
|
||||
|
||||
if (hasMatchingSimilarArtist) {
|
||||
return {
|
||||
...prev,
|
||||
similarArtists: prev.similarArtists.map((artist) =>
|
||||
itemIdSet.has(artist.id)
|
||||
? { ...artist, userFavorite: isFavorite }
|
||||
: artist,
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return prev;
|
||||
},
|
||||
);
|
||||
|
||||
@@ -184,9 +184,33 @@ export const applyRatingOptimisticUpdates = (
|
||||
queryClient.setQueryData(
|
||||
queryKey,
|
||||
(prev: AlbumArtistDetailResponse | undefined) => {
|
||||
if (prev && itemIdSet.has(prev.id)) {
|
||||
if (!prev) {
|
||||
return prev;
|
||||
}
|
||||
|
||||
// Update the main artist if it matches
|
||||
if (itemIdSet.has(prev.id)) {
|
||||
return { ...prev, userRating: rating };
|
||||
}
|
||||
|
||||
// Update similar artists if any match
|
||||
if (prev.similarArtists && prev.similarArtists.length > 0) {
|
||||
const hasMatchingSimilarArtist = prev.similarArtists.some(
|
||||
(artist) => itemIdSet.has(artist.id),
|
||||
);
|
||||
|
||||
if (hasMatchingSimilarArtist) {
|
||||
return {
|
||||
...prev,
|
||||
similarArtists: prev.similarArtists.map((artist) =>
|
||||
itemIdSet.has(artist.id)
|
||||
? { ...artist, userRating: rating }
|
||||
: artist,
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return prev;
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user