handle more rating/favorite mutation cases

This commit is contained in:
jeffvli
2025-11-21 21:46:08 -08:00
parent ca78149ba3
commit 606aaa0d56
3 changed files with 45 additions and 7 deletions
@@ -48,7 +48,6 @@ export const useCreateFavorite = (args: MutationHookArgs) => {
onSuccess: (_data, variables) => {
if (variables.query.type === LibraryItem.SONG) {
remote?.updateFavorite(true, variables.apiClientProps.serverId, variables.query.id);
// setQueueFavorite(variables.query.id, true);
setFavoriteEvent(variables.query.id, true);
}
@@ -84,12 +83,25 @@ export const useCreateFavorite = (args: MutationHookArgs) => {
break;
}
case LibraryItem.PLAYLIST_SONG:
case LibraryItem.QUEUE_SONG:
case LibraryItem.SONG: {
const queryKey = queryKeys.songs.detail(variables.apiClientProps.serverId);
const songDetailQueryKey = queryKeys.songs.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey,
queryKey: songDetailQueryKey,
});
const albumDetailQueryKey = queryKeys.albums.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey: albumDetailQueryKey,
});
break;
@@ -85,12 +85,25 @@ export const useDeleteFavorite = (args: MutationHookArgs) => {
break;
}
case LibraryItem.PLAYLIST_SONG:
case LibraryItem.QUEUE_SONG:
case LibraryItem.SONG: {
const queryKey = queryKeys.songs.detail(variables.apiClientProps.serverId);
const songDetailQueryKey = queryKeys.songs.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey,
queryKey: songDetailQueryKey,
});
const albumDetailQueryKey = queryKeys.albums.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey: albumDetailQueryKey,
});
break;
@@ -77,12 +77,25 @@ export const useSetRating = (args: MutationHookArgs) => {
break;
}
case LibraryItem.PLAYLIST_SONG:
case LibraryItem.QUEUE_SONG:
case LibraryItem.SONG: {
const queryKey = queryKeys.songs.detail(variables.apiClientProps.serverId);
const songDetailQueryKey = queryKeys.songs.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey,
queryKey: songDetailQueryKey,
});
const albumDetailQueryKey = queryKeys.albums.detail(
variables.apiClientProps.serverId,
);
queryClient.invalidateQueries({
exact: false,
queryKey: albumDetailQueryKey,
});
break;