Skip to content

RadioScanner: click a now-playing title to solo it#180

Merged
robbiebyrd merged 1 commit into
mainfrom
feat/radioscanner-solo
Jul 10, 2026
Merged

RadioScanner: click a now-playing title to solo it#180
robbiebyrd merged 1 commit into
mainfrom
feat/radioscanner-solo

Conversation

@robbiebyrd

Copy link
Copy Markdown
Collaborator

Clicking an item in the NowPlayingList solos it: every other playing item is muted and the marquee pauses; clicking it again un-solos and the rest come back. The mute icon keeps its existing per-item toggle.

Design notes:

  • Solo is derived, not destructive: effectiveMutedIds(mutedItems, soloItemId, playingIds) feeds StationPlayer, so manual mutes are never rewritten and un-soloing restores them exactly (a manually-muted item that gets soloed is audible while soloed, muted again after).
  • While soloed, the row icons mirror what's audible (others show muted) — what you see is what you hear.
  • Solo is ephemeral (not persisted): it clears on station change, and auto-releases when the soloed clip ends or expires on a seek so the mix doesn't stay silent.
  • Marquee gets play={!soloActive} — the soloed row stays put while reading.
  • Title is now an unstyled <button> (valid HTML next to the icon button, keyboard-accessible), bold+underline when soloed.

Tests: 7 NowPlayingList cases (solo toggle, icon isolation, audible-state icons, marquee pause) + 3 for the pure derivation helper; 381 total green, build + lint clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_019NMS1V2keS3pTbWRemCd9o

…title

Clicking a title mutes every other playing item and pauses the marquee;
clicking it again restores the manual mute state exactly (solo is derived
via effectiveMutedIds, never written into mutedItems). The mute icon keeps
its per-item toggle. Solo is ephemeral: it clears on station change and
when the soloed clip ends or expires on seek.

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 03:05
@github-actions

Copy link
Copy Markdown

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

Full report

@robbiebyrd robbiebyrd merged commit 750f8d3 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