Skip to content

feat: Now Playing button + picker + Recent Listens on dashboard#106

Open
eboudrant wants to merge 1 commit into
mainfrom
feat/listens-dashboard
Open

feat: Now Playing button + picker + Recent Listens on dashboard#106
eboudrant wants to merge 1 commit into
mainfrom
feat/listens-dashboard

Conversation

@eboudrant
Copy link
Copy Markdown
Owner

Summary

Phase 3 (final) of the Listens feature. The dashboard now has the primary entry point: a Now Playing button that opens a collection picker + a Recent Listens cover strip.

This PR's diff currently includes PR #105 (detail-panel listens) since it's branched off it. Once PR #105 merges into `main`, this diff will collapse to only the Phase 3 changes.

  • New `#dash-now-playing-section` above Random Picks: full-width primary button + Recent Listens strip (up to 8 covers, newest first).
  • New `#picker-modal`: filter input over your collection, tap a record to log + close + toast.
  • 9 new i18n keys per locale.
  • Playwright: new `dashboard-now-playing.png` + `picker-modal.png` baselines. Shifted baselines for `dashboard.png`, `dashboard-empty.png`, and setup-wizard screenshots regenerated.
  • Fixture: unfiltered `GET /api/listens` now returns the flattened list so the strip populates in tests.

Test plan

  • `npm run test:screenshots` → 73 passed, 3 skipped.
  • Chrome MCP verification did not run. Every `http://localhost:*\` nav in this session was blocked by a Chrome enterprise policy error ("This site is blocked by your organization's policy"). The Playwright test covers the same DOM surface. Please eyeball the preview tab once this is checked out locally.
  • Visual review: picker modal on desktop + mobile looks right; covers arranged 2/3 cols.
  • Language switch: open Now Playing modal, open Settings, switch to FR/JA/DE, close modal, reopen — confirm translated labels.

Not auto-merging

Per feedback: UI PRs need your review before landing.

🤖 Generated with Claude Code

Adds the primary entry point for logging a listen:
- "Now Playing" section above Random Picks with a full-width CTA.
- Picker modal: filter-your-collection input + cover grid. Tap a record
  to log a listen and close.
- "Recent Listens" strip under the CTA — up to 8 covers across the
  collection, newest first. Empty-state message when there are none.
- 9 new i18n keys per locale.
- Playwright tests for the section + picker. Fixture extended so
  unfiltered GET /api/listens returns the flattened list.
- Dashboard + setup-wizard baselines regenerated (shifted under the new
  section).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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