diff --git a/CHANGELOG.md b/CHANGELOG.md index e1dd8a8..6598032 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Respond to every rapid click on the queue details toggle, allowing the animation to reverse immediately without a perceived cooldown. - Animate queue details expanding and collapsing with a matching chevron rotation; keep collapsed file actions out of keyboard navigation. - Keep the waiting queue status unboxed with a transparent background and its yellow status dot. - Rework queue cards with two-line titles, clearer status badges, larger dates below the progress bar on the right, and 32-pixel remove and retry buttons. Keep paused progress visible and wrap long download errors. diff --git a/PROJECT_MEMORY.md b/PROJECT_MEMORY.md index 243e725..142ac8f 100644 --- a/PROJECT_MEMORY.md +++ b/PROJECT_MEMORY.md @@ -18,6 +18,7 @@ Am 6. September 2026 nach einem Festplatten-Reset aus den vorhandenen Remote-Rep ## Letzte Änderungen +- Queue-Detailpfeil reagiert seit der Nachbesserung am 6. September 2026 auf jeden Klick, auch während der Animation. Die frühere Sperre für `MouseEvent.detail > 1` hatte schnelle Folge-Klicks verschluckt und wurde entfernt. Doppelklick auf freie Kartenflächen bleibt erhalten; auf dem Pfeil zählen beide Klicks einzeln. Build, gezielte Queue-Tests und isolierte UI-Prüfung inklusive schneller Klickfolgen erfolgreich. - Queue-Details fahren seit dem 6. September 2026 beim Auf-/Zuklappen animiert ein und aus: Grid-Höhe und Deckkraft über 220/180 ms, Pfeilrotation über 220 ms. Bei reduzierten Windows-Animationen bleibt eine kurze 160-ms-Transition wie bei den bestehenden Workspace-Steuerelementen erhalten. Eingeklappte Details sind `inert`, damit unsichtbare Dateiaktionen nicht per Tastatur erreichbar sind. Build, 19 gezielte Tests und isolierter Queue-UI-Test einschließlich gemessener Zwischenhöhen in beiden Bewegungsmodi erfolgreich. - Queue-Card-Nachbesserung am 6. September 2026: Wartestatus ohne sichtbare Umrandung und ohne gelblichen Hintergrund; gelber Statuspunkt und bisherige Abstände bleiben erhalten. In Hell/Dunkel geprüft, Queue-UI- und Stylesheet-Tests erfolgreich. - 6. September 2026: Queue-Cards überarbeitet. Titel mit bis zu zwei Zeilen in 13 px; Datum von 10 auf 12 px vergrößert und rechts unter den Fortschrittsbalken gesetzt. Status als beschriftetes Badge, Entfernen/Wiederholen mit 32 × 32 px Klickfläche, Details und Fortschritt in 12 px, keine Kartenschrift unter 10 px. Wartende Einträge ohne doppelte Statuszeile, pausierte Downloads mit erhaltenem Prozentstand, längere Fehler umbrechend. diff --git a/scripts/smoke-test-queue-cards.js b/scripts/smoke-test-queue-cards.js index f7aaf6a..a8dbd1d 100644 --- a/scripts/smoke-test-queue-cards.js +++ b/scripts/smoke-test-queue-cards.js @@ -105,7 +105,11 @@ async function main() { await toggle.click(); assert.equal(await toggle.getAttribute('aria-expanded'), 'false', 'Toggle collapses'); await toggle.dblclick(); - assert.equal(await toggle.getAttribute('aria-expanded'), 'true', 'Double-clicking toggle changes state only once'); + assert.equal(await toggle.getAttribute('aria-expanded'), 'false', 'Both rapid toggle clicks are applied'); + for (const detail of [3, 4, 5]) { + await toggle.dispatchEvent('click', { detail }); + assert.equal(await toggle.getAttribute('aria-expanded'), String(detail % 2 === 1), 'Rapid repeated clicks are never suppressed'); + } await toggle.focus(); await win.keyboard.press('Space'); assert.equal(await toggle.getAttribute('aria-expanded'), 'false', 'Space collapses'); diff --git a/src/renderer-queue.ts b/src/renderer-queue.ts index 217a0e6..4d94e74 100644 --- a/src/renderer-queue.ts +++ b/src/renderer-queue.ts @@ -135,7 +135,6 @@ function initQueueActions(): void { list.addEventListener('click', (event: MouseEvent) => { const control = resolveQueueControl(event.target); if (!control || !list.contains(control)) return; - if (control.dataset.queueAction === 'details' && event.detail > 1) return; void activateQueueControl(control); }); list.addEventListener('dblclick', (event: MouseEvent) => {