feat: refactor achievement listeners

This commit is contained in:
Zamitto 2024-10-07 20:16:12 -03:00
parent f5445b00f4
commit 63aee44982
6 changed files with 45 additions and 18 deletions

View file

@ -14,6 +14,7 @@ import type {
} from "@types";
import type { CatalogueCategory } from "@shared";
import type { AxiosProgressEvent } from "axios";
import { GameAchievement } from "@main/entity";
contextBridge.exposeInMainWorld("electron", {
/* Torrenting */
@ -69,6 +70,22 @@ contextBridge.exposeInMainWorld("electron", {
return () =>
ipcRenderer.removeListener("on-achievement-unlocked", listener);
},
onUpdateAchievements: (
objectId: string,
shop: GameShop,
cb: (achievements: GameAchievement[]) => void
) => {
const listener = (
_event: Electron.IpcRendererEvent,
achievements: GameAchievement[]
) => cb(achievements);
ipcRenderer.on(`on-update-achievements-${objectId}-${shop}`, listener);
return () =>
ipcRenderer.removeListener(
`on-update-achievements-${objectId}-${shop}`,
listener
);
},
/* User preferences */
getUserPreferences: () => ipcRenderer.invoke("getUserPreferences"),