From c36fc2272f1d6d0b2a1e6311811e03f95195a9a0 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Sun, 26 Jun 2022 23:35:06 +0200 Subject: [PATCH] use delete useless progress bar and use new download system --- .../available-versions-list.components.tsx | 55 +++++++------------ 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/src/renderer/pages/available-versions-list.components.tsx b/src/renderer/pages/available-versions-list.components.tsx index d1c57fd5..d6f5eec1 100644 --- a/src/renderer/pages/available-versions-list.components.tsx +++ b/src/renderer/pages/available-versions-list.components.tsx @@ -3,8 +3,10 @@ import { BsDownloaderService } from "../services/bs-downloader.service"; import { Slideshow } from "renderer/components/slideshow/slideshow.component"; import { useEffect, useState } from "react"; import { BSVersion } from "main/services/bs-version-manager.service"; -import beatWaitingImg from "../../../assets/beat-waiting.png"; -import beatRunningImg from "../../../assets/beat-running.png" +import { ProgressBarService } from "renderer/services/progress-bar.service"; +import { BsmButton } from "renderer/components/shared/bsm-button.component"; +import { AnimatePresence, motion } from "framer-motion"; +import { distinctUntilChanged } from "rxjs"; export function AvailableVersionsList() { @@ -18,13 +20,17 @@ export function AvailableVersionsList() { require('../../../assets/slideshow-images/image-7-blur.png'), ]; const bsDownloaderService: BsDownloaderService = BsDownloaderService.getInstance(); + const progressBarService: ProgressBarService = ProgressBarService.getInstance(); const [versionSelected, setVersionSelected] = useState(null as BSVersion); - const [currentDownload, setCurrentDownload] = useState(null as BSVersion); - const [downloadProgress, setDownloadProgress] = useState(0); + const [progressBarVisible, setProgressBarVisible] = useState(false); - const startInstall = () => { - bsDownloaderService.download(); + const startDownload = () => { + if(progressBarService.visible$.value){ return; } + progressBarService.show(bsDownloaderService.downloadProgress$); + bsDownloaderService.download(versionSelected).then(() => { + progressBarService.hide(true); + }); } useEffect(() => { @@ -32,18 +38,12 @@ export function AvailableVersionsList() { setVersionSelected(version); }); - const currentDownloadSub = bsDownloaderService.currentBsVersionDownload$.subscribe(version => { - setCurrentDownload(version); - }); - - const downloadProgressSub = bsDownloaderService.downloadProgress$.subscribe(progress => { - setDownloadProgress(progress); + const progressBarVisibleSub = progressBarService.visible$.pipe(distinctUntilChanged()).subscribe(visible => { + setProgressBarVisible(visible); }) return () => { versionSelectedSub.unsubscribe(); - currentDownloadSub.unsubscribe(); - downloadProgressSub.unsubscribe(); } }, []) @@ -53,27 +53,14 @@ export function AvailableVersionsList() {

Select a Version

-
- {currentDownload && !!downloadProgress && ( - <> -
-
- {`${downloadProgress}%`} -
- - + + + { versionSelected && !progressBarService.visible$.value && ( + + + )} - {!currentDownload && DOWNLOAD {versionSelected?.BSVersion}} - {currentDownload && !downloadProgress && } -
+ ) }