From c75a6ad439cc74279add24f8e7405d255a566842 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:15:26 -0300 Subject: [PATCH] fix: using achievement count data from api --- src/main/events/library/get-library.ts | 21 +++---------------- .../library-sync/merge-with-remote-games.ts | 6 ++++++ .../src/components/game-card/game-card.tsx | 2 +- src/renderer/src/components/hero/hero.tsx | 4 ++-- src/types/index.ts | 6 +++--- src/types/level.types.ts | 2 ++ 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/main/events/library/get-library.ts b/src/main/events/library/get-library.ts index f62c60e7..c434f6d3 100644 --- a/src/main/events/library/get-library.ts +++ b/src/main/events/library/get-library.ts @@ -4,7 +4,6 @@ import { downloadsSublevel, gamesShopAssetsSublevel, gamesSublevel, - gameAchievementsSublevel, } from "@main/level"; const getLibrary = async (): Promise => { @@ -19,33 +18,19 @@ const getLibrary = async (): Promise => { const download = await downloadsSublevel.get(key); const gameAssets = await gamesShopAssetsSublevel.get(key); - let unlockedAchievementCount = 0; - let achievementCount = 0; - - try { - const achievements = await gameAchievementsSublevel.get(key); - if (achievements) { - achievementCount = achievements.achievements.length; - unlockedAchievementCount = - achievements.unlockedAchievements.length; - } - } catch { - // No achievements data for this game - } - return { id: key, ...game, download: download ?? null, - unlockedAchievementCount, - achievementCount, + unlockedAchievementCount: game.unlockedAchievementCount ?? 0, + achievementCount: game.achievementCount ?? 0, // Spread gameAssets last to ensure all image URLs are properly set ...gameAssets, // Preserve custom image URLs from game if they exist customIconUrl: game.customIconUrl, customLogoImageUrl: game.customLogoImageUrl, customHeroImageUrl: game.customHeroImageUrl, - } as LibraryGame; + }; }) ); }); diff --git a/src/main/services/library-sync/merge-with-remote-games.ts b/src/main/services/library-sync/merge-with-remote-games.ts index 92cd66d8..645b0d1c 100644 --- a/src/main/services/library-sync/merge-with-remote-games.ts +++ b/src/main/services/library-sync/merge-with-remote-games.ts @@ -9,6 +9,8 @@ type ProfileGame = { hasManuallyUpdatedPlaytime: boolean; isFavorite?: boolean; isPinned?: boolean; + achievementCount: number; + unlockedAchievementCount: number; } & ShopAssets; export const mergeWithRemoteGames = async () => { @@ -39,6 +41,8 @@ export const mergeWithRemoteGames = async () => { playTimeInMilliseconds: updatedPlayTime, favorite: game.isFavorite ?? localGame.favorite, isPinned: game.isPinned ?? localGame.isPinned, + achievementCount: game.achievementCount, + unlockedAchievementCount: game.unlockedAchievementCount, }); } else { await gamesSublevel.put(gameKey, { @@ -55,6 +59,8 @@ export const mergeWithRemoteGames = async () => { isDeleted: false, favorite: game.isFavorite ?? false, isPinned: game.isPinned ?? false, + achievementCount: game.achievementCount, + unlockedAchievementCount: game.unlockedAchievementCount, }); } diff --git a/src/renderer/src/components/game-card/game-card.tsx b/src/renderer/src/components/game-card/game-card.tsx index edea8d50..51b55e44 100644 --- a/src/renderer/src/components/game-card/game-card.tsx +++ b/src/renderer/src/components/game-card/game-card.tsx @@ -47,7 +47,7 @@ export function GameCard({ game, ...props }: GameCardProps) { >
{game.title}
{game.description