diff --git a/src/renderer/services/bs-version-manager.service.ts b/src/renderer/services/bs-version-manager.service.ts new file mode 100644 index 00000000..d9ba3a3a --- /dev/null +++ b/src/renderer/services/bs-version-manager.service.ts @@ -0,0 +1,38 @@ +import { BSVersion } from "../../main/services/bs-version-manager.service"; +import { BehaviorSubject } from "rxjs"; + +export class BSVersionManagerService { + + private static instance: BSVersionManagerService; + + public readonly installedVersions$: BehaviorSubject = new BehaviorSubject([]); + public readonly availableVersions$: BehaviorSubject = new BehaviorSubject([]); + + private constructor(){ + window.electron.ipcRenderer.on('bs-version.request-versions', (versions: BSVersion[]) => { + this.availableVersions$.next(versions); + console.log("ouiiii"); + console.log(this.availableVersions$.value); + }); + window.electron.ipcRenderer.on('bs-version.installed-versions', (versions: BSVersion[]) => { + this.installedVersions$.next(versions); + }); + + this.askAvailableVersions(); + this.askInstalledVersions(); + } + + public static getInstance(){ + if(!BSVersionManagerService.instance){ BSVersionManagerService.instance = new BSVersionManagerService(); } + return BSVersionManagerService.instance; + } + + public askAvailableVersions(): void{ + window.electron.ipcRenderer.sendMessage("bs-version.request-versions", null); + } + + public askInstalledVersions(): void{ + window.electron.ipcRenderer.sendMessage("bs-version.installed-versions", null); + } + +} \ No newline at end of file