From e1ef8a91934df6a0e0e2908740fc7595ab25baa9 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 5 Aug 2024 15:21:05 -0300 Subject: [PATCH] feat: pass headers correctly to downloadURL --- src/main/events/auth/sign-out.ts | 2 ++ src/main/services/download/http-download.ts | 9 ++++----- src/main/services/hydra-api.ts | 8 ++++++++ yarn.lock | 8 ++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/events/auth/sign-out.ts b/src/main/events/auth/sign-out.ts index fe640b9d..9998c733 100644 --- a/src/main/events/auth/sign-out.ts +++ b/src/main/events/auth/sign-out.ts @@ -26,6 +26,8 @@ const signOut = async (_event: Electron.IpcMainInvokeEvent) => { /* Disconnects libtorrent */ PythonInstance.killTorrent(); + HydraApi.handleSignOut(); + await Promise.all([ databaseOperations, HydraApi.post("/auth/logout").catch(() => {}), diff --git a/src/main/services/download/http-download.ts b/src/main/services/download/http-download.ts index d9c36916..d74e862e 100644 --- a/src/main/services/download/http-download.ts +++ b/src/main/services/download/http-download.ts @@ -45,15 +45,14 @@ export class HTTPDownload { headers?: Record ) { return new Promise((resolve) => { - WindowManager.mainWindow?.webContents.downloadURL(downloadUrl, { - headers, - }); + const options = headers ? { headers } : {}; + WindowManager.mainWindow?.webContents.downloadURL(downloadUrl, options); + + const gid = ++this.id; WindowManager.mainWindow?.webContents.session.on( "will-download", (_event, item, _webContents) => { - const gid = ++this.id; - this.downloads[gid.toString()] = item; // Set the save path, making Electron not to prompt a save dialog. diff --git a/src/main/services/hydra-api.ts b/src/main/services/hydra-api.ts index 5365bd9e..120d27ac 100644 --- a/src/main/services/hydra-api.ts +++ b/src/main/services/hydra-api.ts @@ -64,6 +64,14 @@ export class HydraApi { } } + static handleSignOut() { + this.userAuth = { + authToken: "", + refreshToken: "", + expirationTimestamp: 0, + }; + } + static async setupApi() { this.instance = axios.create({ baseURL: import.meta.env.MAIN_VITE_API_URL, diff --git a/yarn.lock b/yarn.lock index c2d49574..2dd42cb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3751,10 +3751,10 @@ electron-vite@^2.0.0: magic-string "^0.30.5" picocolors "^1.0.0" -electron@^30.1.0: - version "30.3.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-30.3.0.tgz#9d7af06c11242d5c6ca5b9920c9dc49feab90299" - integrity sha512-/rWPcpCL4sYCUm1bY8if1dO8nyFTwXlPUP0dpL3ir5iLK/9NshN6lIJ8xceEY8CEYVLMIYRkxXb44Q9cdrjtOQ== +electron@^30.3.0: + version "30.3.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-30.3.1.tgz#fe27ca2a4739bec832b2edd6f46140ab46bf53a0" + integrity sha512-Ai/OZ7VlbFAVYMn9J5lyvtr+ZWyEbXDVd5wBLb5EVrp4352SRmMAmN5chcIe3n9mjzcgehV9n4Hwy15CJW+YbA== dependencies: "@electron/get" "^2.0.0" "@types/node" "^20.9.0"