From dc5414284a00aa373f3525f181c8363006d2b35a Mon Sep 17 00:00:00 2001 From: jeffvli Date: Fri, 16 Jan 2026 04:35:06 -0800 Subject: [PATCH] invalidate recentlyPlayed and mostPlayed carousels on scrobble submission --- src/renderer/features/home/routes/home-route.tsx | 2 ++ .../player/mutations/scrobble-mutation.ts | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/renderer/features/home/routes/home-route.tsx b/src/renderer/features/home/routes/home-route.tsx index d4b25eb20..d87ac370d 100644 --- a/src/renderer/features/home/routes/home-route.tsx +++ b/src/renderer/features/home/routes/home-route.tsx @@ -133,6 +133,7 @@ const HomeRoute = () => { containerQuery={containerQuery} enableRefresh={carousel.enableRefresh} key={`carousel-${carousel.uniqueId}`} + queryKey={['home', carousel.uniqueId] as const} rowCount={1} sortBy={carousel.sortBy as AlbumListSort} sortOrder={carousel.sortOrder} @@ -147,6 +148,7 @@ const HomeRoute = () => { containerQuery={containerQuery} enableRefresh={carousel.enableRefresh} key={`carousel-${carousel.uniqueId}`} + queryKey={['home', carousel.uniqueId] as const} rowCount={1} sortBy={carousel.sortBy as SongListSort} sortOrder={carousel.sortOrder} diff --git a/src/renderer/features/player/mutations/scrobble-mutation.ts b/src/renderer/features/player/mutations/scrobble-mutation.ts index 6381be4d8..ef9aa21ad 100644 --- a/src/renderer/features/player/mutations/scrobble-mutation.ts +++ b/src/renderer/features/player/mutations/scrobble-mutation.ts @@ -20,16 +20,27 @@ export const useSendScrobble = (options?: MutationOptions) => { onSuccess: (_data, variables) => { // Manually increment the play count for the song in the queue if scrobble was submitted if (variables.query.submission) { + const serverId = variables.apiClientProps.serverId; incrementQueuePlayCount([variables.query.id]); // Invalidate the album detail query for the song's album - if (variables.query.albumId && variables.apiClientProps.serverId) { + if (variables.query.albumId) { queryClient.invalidateQueries({ - queryKey: queryKeys.albums.detail(variables.apiClientProps.serverId, { + queryKey: queryKeys.albums.detail(serverId, { id: variables.query.albumId, }), }); } + + // Invalidate recently played carousel on home route + queryClient.invalidateQueries({ + queryKey: ['home', 'recentlyPlayed'], + }); + + // Invalidate most played carousel on home route + queryClient.invalidateQueries({ + queryKey: ['home', 'mostPlayed'], + }); } }, ...options,