Summary
Prevent stale API responses and unnecessary duplicate requests when wallet state, route state, or query parameters change quickly.
Current Behaviour
The live API helper uses fetch directly and does not expose request cancellation. React Query can manage query lifecycles, but the API layer does not consistently support abort signals or request deduplication semantics.
Expected Behaviour
The frontend should avoid applying stale responses after wallet changes and should cancel obsolete requests where possible.
Suggested Implementation
Update the AccessApi methods and LiveAccessApi request helper to accept an optional AbortSignal. Pass React Query-provided signals into API calls. Ensure mock mode respects cancellation where practical.
Files or Areas Likely Affected
lib/api/types.ts
lib/api/live.ts
lib/api/mock.ts
app/dashboard/page.tsx
app/admin/**/*.tsx
components/gated.tsx
Acceptance Criteria
Additional Notes
This should complement React Query rather than replace it.
Summary
Prevent stale API responses and unnecessary duplicate requests when wallet state, route state, or query parameters change quickly.
Current Behaviour
The live API helper uses
fetchdirectly and does not expose request cancellation. React Query can manage query lifecycles, but the API layer does not consistently support abort signals or request deduplication semantics.Expected Behaviour
The frontend should avoid applying stale responses after wallet changes and should cancel obsolete requests where possible.
Suggested Implementation
Update the
AccessApimethods andLiveAccessApirequest helper to accept an optionalAbortSignal. Pass React Query-provided signals into API calls. Ensure mock mode respects cancellation where practical.Files or Areas Likely Affected
lib/api/types.tslib/api/live.tslib/api/mock.tsapp/dashboard/page.tsxapp/admin/**/*.tsxcomponents/gated.tsxAcceptance Criteria
Additional Notes
This should complement React Query rather than replace it.