Skip to content

RadioScanner: swap react-marquee-text for react-fast-marquee#177

Merged
robbiebyrd merged 1 commit into
mainfrom
fix/radioscanner-marquee
Jul 10, 2026
Merged

RadioScanner: swap react-marquee-text for react-fast-marquee#177
robbiebyrd merged 1 commit into
mainfrom
fix/radioscanner-marquee

Conversation

@robbiebyrd

Copy link
Copy Markdown
Collaborator

The now-playing ticker froze whenever its content changed — react-marquee-text measures once on mount, and the segment list turns over every time the virtual clock promotes/expires an item. react-fast-marquee re-measures via ResizeObserver and animates in pure CSS, so dynamic children are its documented use case.

  • NowPlayingList: duration={10}speed={40} (constant px/s — long lists no longer scroll faster to fit a fixed duration), pauseOnHover kept.
  • RadioScanner OFFLINE ticker: textSpacing="95%" has no equivalent; loop-repeat spacing is now child padding (.rsOfflineText).
  • Test mock updated (jsdom lacks ResizeObserver, same reason the old mock existed).
  • react-marquee-text removed from deps; no CSS file import needed.

Gates: tsc, eslint, 374 tests green.

🤖 Generated with Claude Code

https://claude.ai/code/session_019NMS1V2keS3pTbWRemCd9o

…oScanner

react-marquee-text measures once on mount and freezes when children change —
the now-playing list turns over every time the virtual clock promotes or
expires a segment. react-fast-marquee re-measures via ResizeObserver (pure
CSS animation). duration->speed: constant px/s regardless of content length;
textSpacing on the OFFLINE ticker becomes child padding (.rsOfflineText).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NMS1V2keS3pTbWRemCd9o
@robbiebyrd robbiebyrd enabled auto-merge July 10, 2026 02:31
@github-actions

Copy link
Copy Markdown

Playwright E2E — 1 passed · 0 failed · 0 flaky · 0 skipped

Full report

@robbiebyrd robbiebyrd merged commit ee4bc1b into main Jul 10, 2026
6 checks passed
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.

1 participant