Skip to content

fix: useSmartPolling's backoff only updates currentIntervalRef — the running setInterval never slows down, yet isBackingOff flips isLive to false - #809

Open
Biglamar wants to merge 1 commit into
MergeFi:mainfrom
Biglamar:solver/issue-569-43-a0
Open

Biglamar wants to merge 1 commit into
MergeFi:mainfrom
Biglamar:solver/issue-569-43-a0

Conversation

@Biglamar

Copy link
Copy Markdown

Summary

Fixed the backoff in src/hooks/useSmartPolling.ts so it changes the real poll rate. A new rescheduleInterval() helper clears the running setInterval and starts a new one using currentIntervalRef.current. It runs when backoff lengthens the interval, when a detected data change resets it, and when refetch() resets it. It only does anything while a timer is already running. The timer callback goes through a fetchDataRef, so a rescheduled timer always calls the latest fetchData. I also added a fake-timer test to useSmartPolling.test.tsx.

Changed files

  • src/hooks/useSmartPolling.test.tsx
  • src/hooks/useSmartPolling.ts

Test plan

I couldn't run anything here, so none of this has been run. The new test in src/hooks/useSmartPolling.test.tsx uses an unchanged fetchFn with interval 1000, threshold 2, multiplier 2 and maxBackoff 4000. It checks that the gap between calls grows from 1s to 2s to 4s and stays at 4s. It also checks that refetch() sets isBackingOff to false and returns polling to 1s. CI should run jest src/hooks/useSmartPolling.test.tsx src/hooks/useBountyStatus.test.tsx, then the full suite.

This PR was created as a draft by the issue solver bot. It will remain a
draft until repository CI passes.

Closes #569

@vercel

vercel Bot commented Oct 18, 2026

Copy link
Copy Markdown

@issue-solver-bot is attempting to deploy a commit to the chonilius' projects Team on Vercel.

A member of the Team first needs to authorize it.

@Biglamar
Biglamar marked this pull request as ready for review October 18, 2026 22:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

useSmartPolling's backoff only updates currentIntervalRef — the running setInterval never slows down, yet isBackingOff flips isLive to false

2 participants