fix(api): refetch from server when online (stale-while-revalidate)
The Tier-2 rehydrated cache seeded fulfilled entries at startup, so RTKQ served stale data and never hit the network (manual metadata edits, etc. only appeared after clearing the cache). Enable refetchOnMountOrArgChange + refetchOnReconnect + refetchOnFocus and wire setupListeners, so the cached snapshot still shows instantly but the server silently revalidates it whenever reachable. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,15 @@ import { REHYDRATE_API, type RehydrateApiPayload } from './rehydrate';
|
||||
export const api = createApi({
|
||||
reducerPath: 'api',
|
||||
baseQuery: baseQueryWithReauth,
|
||||
// Stale-while-revalidate. The Tier-2 rehydrated cache (below) seeds fulfilled
|
||||
// entries at startup, which would otherwise make RTKQ serve stale data and
|
||||
// never hit the network. These flags keep showing the cached snapshot
|
||||
// instantly but silently refetch from the server whenever it's reachable —
|
||||
// on mount/arg change, on reconnect, and on window refocus. The result: the
|
||||
// server is the source of truth when online; the cache is only a fallback.
|
||||
refetchOnMountOrArgChange: true,
|
||||
refetchOnReconnect: true,
|
||||
refetchOnFocus: true,
|
||||
tagTypes: [
|
||||
'Track',
|
||||
'Album',
|
||||
|
||||
Reference in New Issue
Block a user