From f3c0b68a0fac0d75c2f081f3a3902fd7263d7bd3 Mon Sep 17 00:00:00 2001 From: Braelyn Boynton Date: Mon, 18 May 2026 17:58:08 -0700 Subject: [PATCH] fix(player): stop radio before starting track playback (#2039) * fix(player): stop radio before starting track playback When internet radio is streaming, clicking a track to play does nothing because the MPV engine guards check currentStreamUrl and bail early. Stop the radio stream before setting up the new queue on Play.NOW and Play.SHUFFLE so the audio engine proceeds normally. Fixes #2038 Co-Authored-By: Claude Opus 4.6 * fix: correct import ordering for lint Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- src/renderer/store/player.store.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/renderer/store/player.store.ts b/src/renderer/store/player.store.ts index 4e2d6adae..b2d2c18e5 100644 --- a/src/renderer/store/player.store.ts +++ b/src/renderer/store/player.store.ts @@ -7,6 +7,7 @@ import { useShallow } from 'zustand/react/shallow'; import { createWithEqualityFn } from 'zustand/traditional'; import { eventEmitter } from '/@/renderer/events/event-emitter'; +import { useRadioStore as useRadioPlayerStore } from '/@/renderer/features/radio/hooks/use-radio-player'; import { createSelectors } from '/@/renderer/lib/zustand'; import { useSettingsStore } from '/@/renderer/store/settings.store'; import { @@ -477,6 +478,10 @@ export const usePlayerStoreBase = createWithEqualityFn()( break; } case Play.NOW: { + if (useRadioPlayerStore.getState().currentStreamUrl) { + useRadioPlayerStore.getState().actions.stop(); + } + set((state) => { newItems.forEach((item) => { state.queue.songs[item._uniqueId] = item; @@ -531,6 +536,10 @@ export const usePlayerStoreBase = createWithEqualityFn()( break; } case Play.SHUFFLE: { + if (useRadioPlayerStore.getState().currentStreamUrl) { + useRadioPlayerStore.getState().actions.stop(); + } + set((state) => { newItems.forEach((item) => { state.queue.songs[item._uniqueId] = item;