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 (