+
downloadStore.dequeue(id)}
onRetry={(id) => downloadStore.retryOne(id)}
onReorder={(id, dir) => downloadStore.reorder(id, dir)}
onReorderEdge={(id, edge) => downloadStore.reorderToEdge(id, edge)}
onSelect={handleSelect}
- onClearSelect={() => { downloadStore.clearSelection(); selectAnchor = null; }}
- onBatchRemove={() => downloadStore.dequeueSelected()}
- onBatchRetry={() => downloadStore.retrySelected()}
- onBatchReorder={(dir) => downloadStore.reorderSelected(dir)}
- onBatchReorderEdge={(edge) => downloadStore.reorderSelectedToEdge(edge)}
/>
+
+
{downloadStore.togglingPlay
? (downloadStore.isRunning ? "Pausing…" : "Starting…")
: downloadStore.isRunning ? "Downloading" : "Paused"}
-
+
- {#if downloadStore.isRunning && downloadStore.eta !== null}
- {formatEta(downloadStore.eta)} left
- {/if}
- {downloadStore.queue.length} queued
-
+ {#if downloadStore.selected.size > 0}
+
+
+
+
+ {downloadStore.selected.size} selected
+ {:else}
+ e.stopPropagation()} role="presentation">
+
+ e.stopPropagation()}
+ onkeydown={(e) => e.stopPropagation()}
+ />
+
+
+
+ {#if selectedErrorCount > 0}
+
+ {/if}
+
+
+ {#if downloadStore.isRunning && downloadStore.eta !== null}
+ {formatEta(downloadStore.eta)} left
+ {/if}
+ {downloadStore.queue.length} queued
+
+ {/if}