diff --git a/src/renderer/components/available-versions/available-version-item.component.tsx b/src/renderer/components/available-versions/available-version-item.component.tsx index f32f4760..156a563c 100644 --- a/src/renderer/components/available-versions/available-version-item.component.tsx +++ b/src/renderer/components/available-versions/available-version-item.component.tsx @@ -1,17 +1,50 @@ import { BSVersion } from "main/services/bs-version-manager.service"; +import './available-version-item.component.css'; +import { SteamIcon } from "../svgs/steam-icon.component"; +import { useEffect, useState } from "react"; +import { BsDownloaderService } from "renderer/services/bs-downloader.service"; +import { distinctUntilChanged, distinctUntilKeyChanged } from "rxjs"; export function AvailableVersionItem(props: {version: BSVersion}) { + + const bsDownloaderService = BsDownloaderService.getInstance(); + + const [selected, setSelected] = useState(false); + + const onClickAction = () => { + if(selected){ + bsDownloaderService.selectedBsVersion$.next(null); + } + else{ + bsDownloaderService.selectedBsVersion$.next(props.version); + } + } + + useEffect(() => { + const sub = bsDownloaderService.selectedBsVersion$.pipe(distinctUntilChanged()).subscribe((version) => { + setSelected(version?.BSVersion === props.version.BSVersion) + }); + + return () => { + sub.unsubscribe(); + } + }, []) + return ( -
-
-