diff --git a/src/renderer/features/context-menu/actions/play-track-radio-action.tsx b/src/renderer/features/context-menu/actions/play-track-radio-action.tsx
index 03384ccda..6dbb1f4fc 100644
--- a/src/renderer/features/context-menu/actions/play-track-radio-action.tsx
+++ b/src/renderer/features/context-menu/actions/play-track-radio-action.tsx
@@ -12,10 +12,15 @@ import { Play } from '/@/shared/types/types';
interface PlayTrackRadioActionProps {
disabled?: boolean;
+ skipFirstSong?: boolean;
song: Song;
}
-export const PlayTrackRadioAction = ({ disabled, song }: PlayTrackRadioActionProps) => {
+export const PlayTrackRadioAction = ({
+ disabled,
+ skipFirstSong,
+ song,
+}: PlayTrackRadioActionProps) => {
const { t } = useTranslation();
const player = usePlayer();
const serverId = useCurrentServerId();
@@ -38,13 +43,17 @@ export const PlayTrackRadioAction = ({ disabled, song }: PlayTrackRadioActionPro
});
if (similarSongs && similarSongs.length > 0) {
- player.addToQueueByData([song, ...similarSongs], playType);
+ // We need to skip the first song when adding to the queue as NEXT or LAST, otherwise you will have a duplicate song
+ const shouldSkipFirstSong =
+ skipFirstSong && (playType === Play.NEXT || playType === Play.LAST);
+ const queueSongs = shouldSkipFirstSong ? similarSongs : [song, ...similarSongs];
+ player.addToQueueByData(queueSongs, playType);
}
} catch (error) {
console.error('Failed to load track radio:', error);
}
},
- [player, queryClient, serverId, song],
+ [player, queryClient, serverId, skipFirstSong, song],
);
const handlePlayTrackRadioNow = useCallback(() => {
diff --git a/src/renderer/features/context-menu/menus/queue-context-menu.tsx b/src/renderer/features/context-menu/menus/queue-context-menu.tsx
index 0e050325b..c95c192be 100644
--- a/src/renderer/features/context-menu/menus/queue-context-menu.tsx
+++ b/src/renderer/features/context-menu/menus/queue-context-menu.tsx
@@ -35,7 +35,7 @@ export const QueueContextMenu = ({ items }: QueueContextMenuProps) => {
- 1} song={items[0]} />
+ 1} skipFirstSong song={items[0]} />