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]} />