diff --git a/src/renderer/services/model-downloader.service.ts b/src/renderer/services/model-downloader.service.ts deleted file mode 100644 index b12bf3c9..00000000 --- a/src/renderer/services/model-downloader.service.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { timer } from "rxjs"; -import { MSModel } from "shared/models/models/model-saber.model"; -import { IpcService } from "./ipc.service"; -import { ProgressBarService } from "./progress-bar.service"; - -export class ModelDownloaderService { - - private static instance: ModelDownloaderService; - - public static getInstance(): ModelDownloaderService{ - if(!ModelDownloaderService.instance){ ModelDownloaderService.instance = new ModelDownloaderService(); } - return ModelDownloaderService.instance; - } - - private readonly ipc: IpcService; - private readonly progress: ProgressBarService; - - private constructor(){ - this.ipc = IpcService.getInstance(); - this.progress = ProgressBarService.getInstance(); - } - - - public async oneClickInstallModel(model: MSModel): Promise{ // TODO : Put this function in the new ModelDownloaderService - - this.progress.showFake(0.04); - - const res = await this.ipc.send("one-click-install-model", {args: model}); - - this.progress.complete(); - await timer(500).toPromise(); - this.progress.hide(true); - - return res.success; - - } - - -} \ No newline at end of file diff --git a/src/renderer/services/models-management/models-downloader.service.ts b/src/renderer/services/models-management/models-downloader.service.ts index c1e47f22..d5740b73 100644 --- a/src/renderer/services/models-management/models-downloader.service.ts +++ b/src/renderer/services/models-management/models-downloader.service.ts @@ -1,4 +1,4 @@ -import { BehaviorSubject, Observable, Subscription, distinctUntilChanged, filter, lastValueFrom, map, shareReplay, startWith } from "rxjs"; +import { BehaviorSubject, Observable, Subscription, distinctUntilChanged, filter, lastValueFrom, map, shareReplay, startWith, timer } from "rxjs"; import { BSVersion } from "shared/bs-version.interface"; import { BsmLocalModel } from "shared/models/models/bsm-local-model.interface"; import { MSModel, MSModelType } from "shared/models/models/model-saber.model"; @@ -103,6 +103,20 @@ export class ModelsDownloaderService { return this.modal.openModal(DownloadModelsModal, {version, type, owned}); } + public async oneClickInstallModel(model: MSModel): Promise{ + + this.progress.showFake(0.04); + + const res = await this.ipc.send("one-click-install-model", {args: model}); + + this.progress.complete(); + await timer(500).toPromise(); + this.progress.hide(true); + + return res.success; + + } + } export type ModelDownload = { diff --git a/src/renderer/windows/OneClick/OneClickDownloadModel.tsx b/src/renderer/windows/OneClick/OneClickDownloadModel.tsx index 9ec36da7..0327d228 100644 --- a/src/renderer/windows/OneClick/OneClickDownloadModel.tsx +++ b/src/renderer/windows/OneClick/OneClickDownloadModel.tsx @@ -4,7 +4,6 @@ import { BsmImage } from "renderer/components/shared/bsm-image.component"; import TitleBar from "renderer/components/title-bar/title-bar.component"; import { useTranslation } from "renderer/hooks/use-translation.hook"; import { IpcService } from "renderer/services/ipc.service"; -import { ModelDownloaderService } from "renderer/services/model-downloader.service"; import { NotificationService } from "renderer/services/notification.service"; import { ProgressBarService } from "renderer/services/progress-bar.service"; import { ThemeService } from "renderer/services/theme.service"; @@ -12,16 +11,18 @@ import { ModelSaberService } from "renderer/services/thrird-partys/model-saber.s import { WindowManagerService } from "renderer/services/window-manager.service"; import { MSModel } from "shared/models/models/model-saber.model"; import defaultImage from '../../../../assets/images/default-version-img.jpg' +import { ModelsDownloaderService } from "renderer/services/models-management/models-downloader.service"; +import { useService } from "renderer/hooks/use-service.hook"; export default function OneClickDownloadModel() { - const ipc = IpcService.getInstance(); - const themeService = ThemeService.getInstance(); - const modelSaber = ModelSaberService.getInstance(); - const progress = ProgressBarService.getInstance(); - const modelDownloader = ModelDownloaderService.getInstance(); - const windows = WindowManagerService.getInstance(); - const notification = NotificationService.getInstance(); + const ipc = useService(IpcService) + const themeService = useService(ThemeService); + const modelSaber = useService(ModelSaberService) + const progress = useService(ProgressBarService) + const modelDownloader = useService(ModelsDownloaderService) + const windows = useService(WindowManagerService) + const notification = useService(NotificationService) const [model, setModel] = useState(null); const t = useTranslation();