From 4607ba9cc61c744606140ba1f5aba10de2ee5fe4 Mon Sep 17 00:00:00 2001 From: xRangerDE Date: Sat, 21 Mar 2026 15:03:20 +0100 Subject: [PATCH] fix: persist expanded details across re-renders, guard drag-drop init against duplicates Co-Authored-By: Claude Opus 4.6 (1M context) --- src/renderer-queue.ts | 15 +++++++++++---- src/renderer-shared.ts | 2 ++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/renderer-queue.ts b/src/renderer-queue.ts index 4fa71d8..70ed3ee 100644 --- a/src/renderer-queue.ts +++ b/src/renderer-queue.ts @@ -35,7 +35,7 @@ function getQueueRenderFingerprint(items: QueueItem[]): string { item.mergeGroup?.mergePhase || '' ].join(':')); - return `${lang}|${selectedQueueIds.join(',')}|${pieces.join('|')}`; + return `${lang}|${selectedQueueIds.join(',')}|${[...expandedQueueIds].join(',')}|${pieces.join('|')}`; } function hasActiveQueueDuplicate(url: string, streamer: string, date: string, customClip?: CustomClip): boolean { @@ -199,11 +199,18 @@ function updateQueueItemProgress(progress: DownloadProgress): void { } function toggleQueueDetails(id: string): void { - const el = document.getElementById(`details-${id}`); - if (el) el.style.display = el.style.display === 'none' ? 'block' : 'none'; + if (expandedQueueIds.has(id)) { + expandedQueueIds.delete(id); + } else { + expandedQueueIds.add(id); + } + renderQueue(); } function initQueueDragDrop(): void { + if (queueDragDropInitialized) return; + queueDragDropInitialized = true; + const list = byId('queueList'); list.addEventListener('dragstart', (e: DragEvent) => { @@ -303,7 +310,7 @@ function renderQueue(): void {
${safeProgressText}
-