diff --git a/public/channelSync.js b/public/channelSync.js index 92d1003..a714ced 100644 --- a/public/channelSync.js +++ b/public/channelSync.js @@ -306,24 +306,9 @@ currentIndex: data.currentIndex }); - if (!data.track) { - M.setTrackTitle("No tracks"); - return; - } M.$("#channel-name").textContent = data.channelName || ""; - M.serverTimestamp = data.currentTimestamp; - M.serverTrackDuration = data.track.duration; - M.lastServerUpdate = Date.now(); - const wasServerPaused = M.serverPaused; - M.serverPaused = data.paused ?? true; - // Update playback mode if provided - if (data.playbackMode && data.playbackMode !== M.playbackMode) { - M.playbackMode = data.playbackMode; - if (M.updateModeButton) M.updateModeButton(); - } - - // Update queue if provided + // Update queue if provided (do this before early return for no track) if (data.queue) { M.queue = data.queue; M.currentIndex = data.currentIndex ?? 0; @@ -332,6 +317,22 @@ M.currentIndex = data.currentIndex; M.renderQueue(); } + + // Update playback mode if provided + if (data.playbackMode && data.playbackMode !== M.playbackMode) { + M.playbackMode = data.playbackMode; + if (M.updateModeButton) M.updateModeButton(); + } + + if (!data.track) { + M.setTrackTitle("No tracks"); + return; + } + M.serverTimestamp = data.currentTimestamp; + M.serverTrackDuration = data.track.duration; + M.lastServerUpdate = Date.now(); + const wasServerPaused = M.serverPaused; + M.serverPaused = data.paused ?? true; // Cache track info for local mode - use track.id (content hash) as the identifier const trackId = data.track.id || data.track.filename; // Fallback for compatibility