From 2854b928f6a0c313cd4b9cda17b1f16f9a75d4b4 Mon Sep 17 00:00:00 2001 From: Kendall Garner <17521368+kgarner7@users.noreply.github.com> Date: Mon, 2 Mar 2026 20:05:01 -0800 Subject: [PATCH] fix(player): handle items in the queue moved to next before current index --- src/renderer/store/player.store.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/renderer/store/player.store.ts b/src/renderer/store/player.store.ts index 0c85fb1e2..a412395b8 100644 --- a/src/renderer/store/player.store.ts +++ b/src/renderer/store/player.store.ts @@ -1238,14 +1238,24 @@ export const usePlayerStoreBase = createWithEqualityFn()( }); const currentIndex = state.player.index; - const filtered = state.queue.default.filter( - (id) => !uniqueIds.includes(id), - ); + let beforeCurrent = 0; + const filtered = state.queue.default.filter((id, idx) => { + const shouldMove = uniqueIds.includes(id); + if (shouldMove && idx < currentIndex) { + beforeCurrent++; + } + + return !shouldMove; + }); + + // For every item that is before the current item, subtract one as + // these items will shift the queue up + const insertIndex = currentIndex + 1 - beforeCurrent; const newQueue = [ - ...filtered.slice(0, currentIndex + 1), + ...filtered.slice(0, insertIndex), ...uniqueIds, - ...filtered.slice(currentIndex + 1), + ...filtered.slice(insertIndex), ]; recalculatePlayerIndex(state, newQueue);