diff --git a/src/main/events/index.ts b/src/main/events/index.ts index 4976dc9d..bcbbb43d 100644 --- a/src/main/events/index.ts +++ b/src/main/events/index.ts @@ -31,11 +31,13 @@ import "./library/remove-game"; import "./library/remove-game-from-library"; import "./library/select-game-wine-prefix"; import "./library/reset-game-achievements"; +import "./library/toggle-automatic-cloud-sync"; import "./misc/open-checkout"; import "./misc/open-external"; import "./misc/show-open-dialog"; import "./misc/get-features"; import "./misc/show-item-in-folder"; +import "./misc/get-badges"; import "./torrenting/cancel-game-download"; import "./torrenting/pause-game-download"; import "./torrenting/resume-game-download"; @@ -58,6 +60,7 @@ import "./user/get-blocked-users"; import "./user/block-user"; import "./user/unblock-user"; import "./user/get-user-friends"; +import "./user/get-auth"; import "./user/get-user-stats"; import "./user/report-user"; import "./user/get-unlocked-achievements"; @@ -87,9 +90,6 @@ import "./themes/get-custom-theme-by-id"; import "./themes/get-active-custom-theme"; import "./themes/close-editor-window"; import "./themes/toggle-custom-theme"; -import "./misc/get-badges"; -import "./user/get-auth"; -import "./library/toggle-automatic-cloud-sync"; import { isPortableVersion } from "@main/helpers"; ipcMain.handle("ping", () => "pong"); diff --git a/src/main/events/user/get-auth.ts b/src/main/events/user/get-auth.ts index e828b5ee..7c2a9301 100644 --- a/src/main/events/user/get-auth.ts +++ b/src/main/events/user/get-auth.ts @@ -1,7 +1,7 @@ -import type { Auth } from "@types"; -import { registerEvent } from "../register-event"; - import { db, levelKeys } from "@main/level"; +import type { Auth } from "@types"; + +import { registerEvent } from "../register-event"; const getAuth = async (_event: Electron.IpcMainInvokeEvent) => db.get(levelKeys.auth, { diff --git a/src/main/services/cloud-sync.ts b/src/main/services/cloud-sync.ts index 5393ac95..c75cf278 100644 --- a/src/main/services/cloud-sync.ts +++ b/src/main/services/cloud-sync.ts @@ -70,53 +70,43 @@ export class CloudSync { game?.winePrefixPath ?? null ); - fs.stat(bundleLocation, async (err, stat) => { + const stat = await fs.promises.stat(bundleLocation); + + const { uploadUrl } = await HydraApi.post<{ + id: string; + uploadUrl: string; + }>("/profile/games/artifacts", { + artifactLengthInBytes: stat.size, + shop, + objectId, + hostname: os.hostname(), + homeDir: normalizePath(app.getPath("home")), + downloadOptionTitle, + platform: os.platform(), + label, + }); + + const fileBuffer = await fs.promises.readFile(bundleLocation); + + await axios.put(uploadUrl, fileBuffer, { + headers: { + "Content-Type": "application/tar", + }, + onUploadProgress: (progressEvent) => { + logger.log(progressEvent); + }, + }); + + WindowManager.mainWindow?.webContents.send( + `on-upload-complete-${objectId}-${shop}`, + true + ); + + fs.rm(bundleLocation, (err) => { if (err) { - logger.error("Failed to get zip file stats", err); + logger.error("Failed to remove tar file", err); throw err; } - - const { uploadUrl } = await HydraApi.post<{ - id: string; - uploadUrl: string; - }>("/profile/games/artifacts", { - artifactLengthInBytes: stat.size, - shop, - objectId, - hostname: os.hostname(), - homeDir: normalizePath(app.getPath("home")), - downloadOptionTitle, - platform: os.platform(), - label, - }); - - fs.readFile(bundleLocation, async (err, fileBuffer) => { - if (err) { - logger.error("Failed to read zip file", err); - throw err; - } - - await axios.put(uploadUrl, fileBuffer, { - headers: { - "Content-Type": "application/tar", - }, - onUploadProgress: (progressEvent) => { - logger.log(progressEvent); - }, - }); - - WindowManager.mainWindow?.webContents.send( - `on-upload-complete-${objectId}-${shop}`, - true - ); - - fs.rm(bundleLocation, (err) => { - if (err) { - logger.error("Failed to remove tar file", err); - throw err; - } - }); - }); }); } } diff --git a/src/preload/index.ts b/src/preload/index.ts index 5249e57f..73aefa37 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -312,7 +312,6 @@ contextBridge.exposeInMainWorld("electron", { ipcRenderer.invoke("sendFriendRequest", userId), /* User */ - getAuth: () => ipcRenderer.invoke("getAuth"), getUser: (userId: string) => ipcRenderer.invoke("getUser", userId), blockUser: (userId: string) => ipcRenderer.invoke("blockUser", userId), unblockUser: (userId: string) => ipcRenderer.invoke("unblockUser", userId), @@ -338,6 +337,7 @@ contextBridge.exposeInMainWorld("electron", { ipcRenderer.invoke("getUnlockedAchievements", objectId, shop), /* Auth */ + getAuth: () => ipcRenderer.invoke("getAuth"), signOut: () => ipcRenderer.invoke("signOut"), openAuthWindow: (page: AuthPage) => ipcRenderer.invoke("openAuthWindow", page), diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index 39254463..ac1d90ac 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -235,6 +235,7 @@ declare global { restartAndInstallUpdate: () => Promise; /* Auth */ + getAuth: () => Promise; signOut: () => Promise; openAuthWindow: (page: AuthPage) => Promise; getSessionHash: () => Promise; @@ -243,7 +244,6 @@ declare global { onSignOut: (cb: () => void) => () => Electron.IpcRenderer; /* User */ - getAuth: () => Promise; getUser: (userId: string) => Promise; blockUser: (userId: string) => Promise; unblockUser: (userId: string) => Promise; diff --git a/src/renderer/src/pages/game-details/modals/game-options-modal.scss b/src/renderer/src/pages/game-details/modals/game-options-modal.scss index ebad7fac..f406f17b 100644 --- a/src/renderer/src/pages/game-details/modals/game-options-modal.scss +++ b/src/renderer/src/pages/game-details/modals/game-options-modal.scss @@ -34,7 +34,7 @@ color: #fff; padding: 0 globals.$spacing-unit; border-radius: 4px; - font-size: 12px; + font-size: globals.$small-font-size; } &__row {