Skip to content

fix(global-radio): Play in place without navigating to station detail - #469

Merged
hoangsvit merged 5 commits into
stagingfrom
fix/global-play-without-detail-navigation-20261110
Nov 10, 2026
Merged

hoangsvit merged 5 commits into
stagingfrom
fix/global-play-without-detail-navigation-20261110

Conversation

@hoangsvit

Copy link
Copy Markdown
Member

Root cause

Following Global Radio F5 restore (#465 / #466), a saved station has metadata but no (expired) signed HLS source. Dock Play in Player.vue emitted select-station; components/player/Session.vue treated it as navigation and called navigateTo(target.url). This caused Play to open the Apple Music station detail instead of starting a fresh stream in place.

Fix

  • Route all explicit Global Radio dock/queue Play actions to the existing app-scoped useAuthorizedGlobalRadioPlayback resolver directly inside PlayerSession, without navigation. Public provider metadata is fetched only after the user acts, with a single reusable in-flight fetch and guards for replaced selections.
  • Preserve the existing Country station queue navigation behavior; regular station title/image links still open details.
  • On F5, keep prior policy: station metadata restores while audio remains stopped, no stale HLS accessKey is persisted, and only an explicit Play resolves a fresh signed URL.

Regression

  • Source/contract test asserts Global branch cannot call navigateTo, but Country branch still does.
  • Browser tests cover dock Play from Global provider directory and when browsing a different Global detail page; URL must not change, including after F5.

Release gates

  • Exact PR head CI (npm test, full generate and SEO checks) green.
  • PR Preview build + public verification green; run Playwright regression where available.
  • Merge to staging, verify source deploy and destination Staging Pages.
  • Promote only through direct staging → main PR with successful CI and production destination Pages/public checks. Do not claim release merely on merge.

This change does not modify catalog, SEO, GA4, or copy.

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

ePlus OnAir — PR Preview

🗃️ Preview expired. This PR is closed; the Preview link is hidden.

View build status

Preview is noindex; the full catalog is available on Staging after merge.

@hoangsvit
hoangsvit merged commit 50e2aa6 into staging Nov 10, 2026
10 checks passed
@hoangsvit
hoangsvit deleted the fix/global-play-without-detail-navigation-20261110 branch November 10, 2026 06:26

This branch was successfully deployed

1 active deployment
preview — 4d38f4b1 Deployed Nov 10, 2026 by hoangsvit via Remove closed PR Preview #411
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