Add audio player dock to episode list #10

Merged
w33ble merged 1 commit from feat/player-dock into main 2026-09-08 15:30:23 -06:00
Collaborator

Summary

Adds a basic click-and-play audio player to the list UI. No server-side changes: /audio/ already serves mp3s with Range support via http.ServeContent, so seeking works out of the box and no transcoding is involved.

  • Single player dock (<section class="player" hidden>) sits above the Episodes heading, outside #episode-list — the 30s polling refresh replaces list innerHTML and can never interrupt playback
  • Done rows get a Play button (data-audio attr); first click unhides the dock, sets src/title/download link, calls play(); one episode plays at a time
  • × close control pauses audio, resets src/buffering, clears title/link, re-hides the dock
  • Native <audio controls preload="none"> so the list doesn't prefetch every episode
  • Styling follows the existing card/button design language (surface card, ghost buttons, danger tint on close hover); dock stacks vertically on narrow viewports

Tests

  • internal/server/page_test.go: play button + data-audio on done rows only, dock rendered outside the list, close button present
  • mise run check + mise run test green (-count=1)
## Summary Adds a basic click-and-play audio player to the list UI. No server-side changes: `/audio/` already serves mp3s with Range support via `http.ServeContent`, so seeking works out of the box and no transcoding is involved. - Single player dock (`<section class="player" hidden>`) sits above the Episodes heading, **outside** `#episode-list` — the 30s polling refresh replaces list innerHTML and can never interrupt playback - Done rows get a Play button (`data-audio` attr); first click unhides the dock, sets src/title/download link, calls `play()`; one episode plays at a time - `×` close control pauses audio, resets src/buffering, clears title/link, re-hides the dock - Native `<audio controls preload="none">` so the list doesn't prefetch every episode - Styling follows the existing card/button design language (surface card, ghost buttons, danger tint on close hover); dock stacks vertically on narrow viewports ## Tests - `internal/server/page_test.go`: play button + `data-audio` on done rows only, dock rendered outside the list, close button present - `mise run check` + `mise run test` green (`-count=1`)
feat(server): add audio player dock to episode list
Some checks failed
ci / check (pull_request) Has been cancelled
b226096b4c
w33ble approved these changes 2026-09-08 15:29:48 -06:00
w33ble force-pushed feat/player-dock from b226096b4c
Some checks failed
ci / check (pull_request) Has been cancelled
to dd2aaa0642
All checks were successful
ci / check (pull_request) Successful in 4m37s
2026-09-08 15:30:00 -06:00
Compare
w33ble merged commit 9e7d2dda1e into main 2026-09-08 15:30:23 -06:00
w33ble deleted branch feat/player-dock 2026-09-08 15:30:23 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
w33ble/mediacast!10
No description provided.