diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index a6620e9..15716d9 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- The check-every-feed button turns smoothly through a scan instead of jerking back upright between one feed and the next (#231). + ## [1.0.1] - 2026-10-13 ### Fixed diff --git a/web/src/feeds.ts b/web/src/feeds.ts index 9145180..9be3deb 100644 --- a/web/src/feeds.ts +++ b/web/src/feeds.ts @@ -51,8 +51,17 @@ function paintScanning(){ // The refresh buttons turn while what they check is being checked (#78). On
, because // a feed's page is redrawn as its items come in and would take a class on the button with it. const busy=id=>scanning.has(id)||S.feeds.some(c=>c.group===id&&scanning.has(c.id)); - document.body.classList.toggle('scan-this',busy(S.feed)); - document.body.classList.toggle('scan-any',S.feeds.some(f=>scanning.has(f.id))); + spin('scan-this',busy(S.feed)); + spin('scan-any',S.feeds.some(f=>scanning.has(f.id))); +} +/// Starts a refresh button turning at once, and stops it only after a moment with nothing being +/// checked: a scan takes its feeds one at a time, and in the gap between two the class came off, +/// the icon snapped back upright and started again, many times a second. +const spinStop: Record