diff --git a/package.json b/package.json index d0e5904..e96a7d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.5.13", + "version": "1.5.14", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index 58b28c6..3d35bbf 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -2484,6 +2484,9 @@ export class DownloadManager extends EventEmitter { active.abortController.abort("stall"); } } + + // Retry failed extractions after unpause + this.triggerPendingExtractions(); } this.persistSoon(); diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index b829e50..e664daa 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -1584,12 +1584,15 @@ export function App(): ReactElement { }, [contextMenu]); const executeDeleteSelection = useCallback((ids: Set): void => { - for (const id of ids) { - if (snapshot.session.items[id]) void window.rd.removeItem(id); - else if (snapshot.session.packages[id]) onPackageCancel(id); - } + setSnapshot((prev) => { + for (const id of ids) { + if (prev.session.items[id]) void window.rd.removeItem(id); + else if (prev.session.packages[id]) void window.rd.cancelPackage(id); + } + return prev; + }); setSelectedIds(new Set()); - }, [snapshot.session.items, snapshot.session.packages, onPackageCancel]); + }, []); const requestDeleteSelection = useCallback((): void => { if (selectedIds.size === 0) return;