diff --git a/src/main/events/torrenting/cancel-game-download.ts b/src/main/events/torrenting/cancel-game-download.ts index 5d80337f..29648cb8 100644 --- a/src/main/events/torrenting/cancel-game-download.ts +++ b/src/main/events/torrenting/cancel-game-download.ts @@ -2,7 +2,7 @@ import { registerEvent } from "../register-event"; import { DownloadManager } from "@main/services"; import { GameShop } from "@types"; -import { downloadsSublevel, levelKeys } from "@main/level"; +import { levelKeys } from "@main/level"; const cancelGameDownload = async ( _event: Electron.IpcMainInvokeEvent, @@ -12,8 +12,6 @@ const cancelGameDownload = async ( const downloadKey = levelKeys.game(shop, objectId); await DownloadManager.cancelDownload(downloadKey); - - await downloadsSublevel.del(downloadKey); }; registerEvent("cancelGameDownload", cancelGameDownload); diff --git a/src/main/services/download/download-manager.ts b/src/main/services/download/download-manager.ts index 247d5c75..0dbd6129 100644 --- a/src/main/services/download/download-manager.ts +++ b/src/main/services/download/download-manager.ts @@ -228,14 +228,17 @@ export class DownloadManager { } static async cancelDownload(downloadKey = this.downloadingGameId) { - await PythonRPC.rpc.post("/action", { - action: "cancel", - game_id: downloadKey, - }); - - WindowManager.mainWindow?.setProgressBar(-1); + await PythonRPC.rpc + .post("/action", { + action: "cancel", + game_id: downloadKey, + }) + .catch((err) => { + logger.error("Failed to cancel game download", err); + }); if (downloadKey === this.downloadingGameId) { + WindowManager.mainWindow?.setProgressBar(-1); WindowManager.mainWindow?.webContents.send("on-download-progress", null); this.downloadingGameId = null; } diff --git a/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx b/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx index 214af1d1..f41c3216 100644 --- a/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx @@ -44,10 +44,9 @@ export function DownloadSettingsModal({ (state) => state.userPreferences.value ); - const getDiskFreeSpace = (path: string) => { - window.electron.getDiskFreeSpace(path).then((result) => { - setDiskFreeSpace(result.free); - }); + const getDiskFreeSpace = async (path: string) => { + const result = await window.electron.getDiskFreeSpace(path); + setDiskFreeSpace(result.free); }; const checkFolderWritePermission = useCallback( @@ -100,6 +99,7 @@ export function DownloadSettingsModal({ userPreferences?.downloadsPath, downloaders, userPreferences?.realDebridApiToken, + userPreferences?.torBoxApiToken, ]); const handleChooseDownloadsPath = async () => { @@ -155,25 +155,30 @@ export function DownloadSettingsModal({ {t("downloader")}
- {downloaders.map((downloader) => ( - - ))} + {downloaders.map((downloader) => { + const shouldDisableButton = + (downloader === Downloader.RealDebrid && + !userPreferences?.realDebridApiToken) || + (downloader === Downloader.TorBox && + !userPreferences?.torBoxApiToken); + + return ( + + ); + })}