refactor(views): use react-query's isLoadingError instead of reimplementing it

deriveQueryStatus previously inferred "never received data" by checking
data !== undefined itself. TanStack Query already computes and exposes
this exact distinction as isLoadingError (isError && no data) vs
isRefetchError (isError && data present) on every useQuery result, so
consume that directly instead of duplicating the logic.
This commit is contained in:
Claude
2026-08-01 18:59:39 +00:00
parent 9e2dfaab16
commit f7b58f5ebd
7 changed files with 48 additions and 25 deletions
@@ -1,16 +1,14 @@
import { deriveQueryStatus } from '../queryUtils';
test('keeps pending and success statuses unchanged', () => {
expect(deriveQueryStatus('pending', undefined)).toBe('pending');
expect(deriveQueryStatus('success', { some: 'data' })).toBe('success');
expect(deriveQueryStatus('pending', false)).toBe('pending');
expect(deriveQueryStatus('success', false)).toBe('success');
});
test('keeps error status when there is no data', () => {
expect(deriveQueryStatus('error', undefined)).toBe('error');
test('keeps error status on a genuine loading error (no data ever received)', () => {
expect(deriveQueryStatus('error', true)).toBe('error');
});
test('downgrades error to success when data is still available', () => {
expect(deriveQueryStatus('error', { some: 'data' })).toBe('success');
expect(deriveQueryStatus('error', [])).toBe('success');
expect(deriveQueryStatus('error', 0)).toBe('success');
test('downgrades error to success on a refetch error (data still available)', () => {
expect(deriveQueryStatus('error', false)).toBe('success');
});