diff options
| author | Adam Malczewski <[email protected]> | 2026-06-27 19:29:35 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-27 19:29:35 +0900 |
| commit | 0d68ae9a17cec26848bee6101415ebe042d78dd9 (patch) | |
| tree | 4e4da4daa710f1f12d9e71a57118d53f6c85ae38 /src/features/settings | |
| parent | 19b6b29b1a82b11c64c8b05c97cf8f687fd495f6 (diff) | |
| download | dispatch-web-0d68ae9a17cec26848bee6101415ebe042d78dd9.tar.gz dispatch-web-0d68ae9a17cec26848bee6101415ebe042d78dd9.zip | |
fix(concurrency): silent background refresh — no loading flicker
The 2s status poll (and post-mutation limit reloads) toggled a visible
loading state, but since the refresh is near-instant the spinner flashed
for <1 frame — a visible flicker/jerk every poll. The polling is now
SILENT (mirrors the heartbeat runs list):
- refreshLimits/refreshStatus: re-entrancy guard (limitsInFlight/statusInFlight,
no UI), no loading-state toggle. Error cleared only on success so it stays
visible + stable during an in-flight retry (no vanish-mid-poll).
- Removed limitsLoading/statusLoading: the Refresh buttons are plain-text
(no spinner, not disabled); the empty-state guards use hasLoaded* only
(no && !loading), so the list area never reflows mid-refresh.
+1 regression-guard test (Refresh buttons never surface a spinner). typecheck
0/0, 926 tests green (x2), biome clean, build OK.
Diffstat (limited to 'src/features/settings')
0 files changed, 0 insertions, 0 deletions
