Skip to content

Add live API request cancellation and deduplication #23

@Lakes41

Description

@Lakes41

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

  • API methods accept optional abort signals
  • React Query calls pass cancellation signals into live requests
  • Aborted requests do not show user-facing error toasts
  • Wallet changes do not allow stale responses to overwrite current state
  • Tests cover cancellation and rapid wallet-switch scenarios

Additional Notes

This should complement React Query rather than replace it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official Campaign

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions