mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
[feature-136] move one click download in the new models downloader service
This commit is contained in:
@@ -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<boolean>{ // 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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<boolean>{
|
||||
|
||||
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 = {
|
||||
|
||||
@@ -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<MSModel>(null);
|
||||
const t = useTranslation();
|
||||
|
||||
Reference in New Issue
Block a user