From a52286c64276dcf4bdc89f5cc44537efc94f70ee Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 17 May 2022 23:54:22 +0200 Subject: [PATCH] =?UTF-8?q?service=20qui=20se=20chargera=20des=20t=C3=A9l?= =?UTF-8?q?=C3=A9chargements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/bs-downloader.service.ts | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/renderer/services/bs-downloader.service.ts diff --git a/src/renderer/services/bs-downloader.service.ts b/src/renderer/services/bs-downloader.service.ts new file mode 100644 index 00000000..bd4664a0 --- /dev/null +++ b/src/renderer/services/bs-downloader.service.ts @@ -0,0 +1,37 @@ +import { DownloadInfo } from '../../main/ipcs/bs-download-ipcs'; +import { BSVersion } from '../../main/services/bs-version-manager.service' +import { ModalExitCode, ModalService, ModalType } from './modale.service'; + +export class BsDownloaderService{ + + private static instance: BsDownloaderService; + + private readonly modalService: ModalService = ModalService.getInsance(); + + private constructor(){ + window.electron.ipcRenderer.on('bs-download.not-connected', async (bsVersion: BSVersion) => { + const res = await this.modalService.openModal(ModalType.STEAM_LOGIN); + if(res.exitCode !== ModalExitCode.COMPLETED){ return; } + window.electron.ipcRenderer.sendMessage('bs-download.start', {bsVersion: bsVersion, username: res.data.username, password: res.data.password, stay: res.data.stay} as DownloadInfo) + }); + } + + public static getInstance(){ + if(!BsDownloaderService.instance){ BsDownloaderService.instance = new BsDownloaderService(); } + return BsDownloaderService.instance; + } + + public async download(bsVersion: BSVersion){ + let username = localStorage.getItem("username"); + if(!username){ + const res = await this.modalService.openModal(ModalType.STEAM_LOGIN); + if(res.exitCode !== ModalExitCode.COMPLETED){ return; } + if(res.data.stay){ localStorage.setItem("username", res.data.username); } + window.electron.ipcRenderer.sendMessage('bs-download.start', {bsVersion: bsVersion, username: res.data.username, password: res.data.password, stay: res.data.stay} as DownloadInfo); + } + else{ + window.electron.ipcRenderer.sendMessage('bs-download.start', {bsVersion: bsVersion, username: username} as DownloadInfo); + } + } + +} \ No newline at end of file