diff --git a/src/main/level/sublevels/keys.ts b/src/main/level/sublevels/keys.ts index 53eae44b..78969c8b 100644 --- a/src/main/level/sublevels/keys.ts +++ b/src/main/level/sublevels/keys.ts @@ -13,4 +13,5 @@ export const levelKeys = { userPreferences: "userPreferences", language: "language", sqliteMigrationDone: "sqliteMigrationDone", + screenState: "screenState", }; diff --git a/src/main/services/window-manager.ts b/src/main/services/window-manager.ts index 5412a548..37874d60 100644 --- a/src/main/services/window-manager.ts +++ b/src/main/services/window-manager.ts @@ -17,19 +17,13 @@ import { HydraApi } from "./hydra-api"; import UserAgent from "user-agents"; import { db, gamesSublevel, levelKeys } from "@main/level"; import { slice, sortBy } from "lodash-es"; -import type { UserPreferences } from "@types"; +import type { ScreenState, UserPreferences } from "@types"; import { AuthPage } from "@shared"; import { isStaging } from "@main/constants"; -import { writeFile, readFile } from "fs/promises"; export class WindowManager { public static mainWindow: Electron.BrowserWindow | null = null; - private static configPath = path.join( - app.getPath("userData"), - "HydraScreenState.json" - ); - private static initialConfigInitializationMainWindow: Electron.BrowserWindowConstructorOptions = { width: 1200, @@ -61,25 +55,16 @@ export class WindowManager { height: number; isMaximized: boolean; }) { - try { - await writeFile( - this.configPath, - JSON.stringify(configScreenWhenClosed, null, 0), - "utf-8" - ); - } catch (error) { - console.error("failed to save screenConfig", error); - } + await db.put(levelKeys.screenState, configScreenWhenClosed, { + valueEncoding: "json", + }); } private static async loadScreenConfig() { - try { - const screenConfigData = await readFile(this.configPath, "utf-8"); - return JSON.parse(screenConfigData); - } catch (error) { - console.error("failed to load screenConfig:", error); - return {}; - } + const data = await db.get(levelKeys.screenState, { + valueEncoding: "json", + }); + return data ?? {}; } private static updateInitialConfig( newConfig: Partial @@ -110,7 +95,7 @@ export class WindowManager { public static async createMainWindow() { if (this.mainWindow) return; - const { isMaximized, ...configWithoutMaximized } = + const { isMaximized = false, ...configWithoutMaximized } = await this.loadScreenConfig(); this.updateInitialConfig(configWithoutMaximized); diff --git a/src/renderer/src/pages/game-details/hero/hero-panel-actions.tsx b/src/renderer/src/pages/game-details/hero/hero-panel-actions.tsx index 37e0ff1f..9dc531f4 100644 --- a/src/renderer/src/pages/game-details/hero/hero-panel-actions.tsx +++ b/src/renderer/src/pages/game-details/hero/hero-panel-actions.tsx @@ -196,7 +196,6 @@ export function HeroPanelActions() { {game.favorite ? : } -