From 0b1a7792b4debbdd32d0241b04dd5b35760a2eb4 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Fri, 6 Feb 2026 02:11:28 -0800 Subject: [PATCH] global player pt. 9 fix play track --- src/lib/player/player.svelte.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lib/player/player.svelte.ts b/src/lib/player/player.svelte.ts index 56cc96b..2aa8a5e 100644 --- a/src/lib/player/player.svelte.ts +++ b/src/lib/player/player.svelte.ts @@ -531,6 +531,17 @@ export function insertTrack(track: Track, mode: InsertMode): void { // Normalize + basic guard if (!track || !Number.isFinite(track.id) || !track.src) return; + // If the user hits "Play" / "Play next" on the *currently playing* track, + // treat it as a no-op. This avoids trying to move the current track to + // "right after itself" and then skipping, which can produce confusing + // queue changes (and in some cases corrupt traversal state). + // + // NOTE: "Add to queue" still dedupes below, but we early-return there too. + if (currentIndex != null && queue[currentIndex]?.id === track.id) { + queueNotify(); + return; + } + // Empty queue behavior if (queue.length === 0) { queue = [track];