From 578f2ec3358f5d6ba43739a7a7ec06fc1dadd96a Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Mon, 14 Aug 2023 16:00:05 +0200 Subject: [PATCH 1/2] [bugfix] On uninstalling a version, downloading version disappears --- .../components/nav-bar/nav-bar.component.tsx | 22 +++++++++++++--- .../services/bs-downloader.service.ts | 12 +-------- .../services/bs-version-manager.service.ts | 26 +++++++++++++++---- src/shared/helpers/array.helpers.ts | 5 ++++ 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/renderer/components/nav-bar/nav-bar.component.tsx b/src/renderer/components/nav-bar/nav-bar.component.tsx index f4909db1..79275e2d 100644 --- a/src/renderer/components/nav-bar/nav-bar.component.tsx +++ b/src/renderer/components/nav-bar/nav-bar.component.tsx @@ -11,21 +11,37 @@ import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; import Tippy from "@tippyjs/react"; import { useTranslation } from "renderer/hooks/use-translation.hook"; import { useService } from "renderer/hooks/use-service.hook"; +import { BsDownloaderService } from "renderer/services/bs-downloader.service"; +import { distinctUntilChanged } from "rxjs"; +import equal from "fast-deep-equal"; export function NavBar() { - const bsVersionServoce = useService(BSVersionManagerService); + const versionManager = useService(BSVersionManagerService); + const versionDownloader = useService(BsDownloaderService); + + const downloadingVersion = useObservable(versionDownloader.currentBsVersionDownload$.pipe(distinctUntilChanged(equal))); + const installedVersions = useObservable(versionManager.installedVersions$); - const installedVersions = useObservable(bsVersionServoce.installedVersions$); const color = useThemeColor("first-color"); const t = useTranslation(); + function listVersions(){ + const versions = Array.isArray(installedVersions) ? [...installedVersions] : []; + + if (downloadingVersion){ versions.push(downloadingVersion); } + + const sorted = versions.sort((a, b) => +b.ReleaseDate - +a.ReleaseDate); + + return BSVersionManagerService.removeDuplicateVersions(sorted); + } + return (