enable refresh for all home carousels, and fix favorite/rating on home

This commit is contained in:
Kendall Garner
2026-01-24 14:54:29 -08:00
parent 974313c30b
commit 6e4cd6912b
3 changed files with 46 additions and 4 deletions
@@ -15,6 +15,7 @@ import {
PlaylistSongListResponse,
Song,
SongDetailResponse,
SongListResponse,
TopSongListResponse,
} from '/@/shared/types/domain-types';
@@ -155,7 +156,12 @@ export const applyFavoriteOptimisticUpdates = (
queryKey: infiniteListQueryKey,
});
infiniteListQueries.forEach(([queryKey, data]) => {
const homeQueries = queryClient.getQueriesData({
exact: false,
queryKey: ['home', 'album'],
});
infiniteListQueries.concat(homeQueries).forEach(([queryKey, data]) => {
if (data) {
pendingUpdates.push({
previousData: data,
@@ -538,6 +544,33 @@ export const applyFavoriteOptimisticUpdates = (
}
});
const homeQueries = queryClient.getQueriesData({
exact: false,
queryKey: ['home', 'song'],
});
homeQueries.concat(homeQueries).forEach(([queryKey, data]) => {
if (data) {
pendingUpdates.push({
previousData: data,
queryKey,
updater: (
current:
| undefined
| { pageParams: string[]; pages: SongListResponse[] },
) => {
if (!current) return current;
const updatedPages = updateItemsInPages<Song, SongListResponse>(
current.pages.filter((p): p is SongListResponse => !!p),
itemIdSet,
(item) => createFavoriteUpdater<Song>(item),
);
return updatedPages ? { ...current, pages: updatedPages } : current;
},
});
}
});
break;
}
}
@@ -149,7 +149,12 @@ export const applyRatingOptimisticUpdates = (
queryKey: infiniteListQueryKey,
});
infiniteListQueries.forEach(([queryKey, data]) => {
const homeQueries = queryClient.getQueriesData({
exact: false,
queryKey: ['home', 'album'],
});
infiniteListQueries.concat(homeQueries).forEach(([queryKey, data]) => {
if (data) {
pendingUpdates.push({
previousData: data,