summaryrefslogtreecommitdiff
path: root/src/components/StatusDisplay.tsx
blob: b1a98e522ec61d5ba2ab8c5682bfa44b4a238083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { Field, PanelSectionRow } from "@decky/ui";
import type { SteamBranchStatus } from "../api/lsfgApi";

interface StatusDisplayProps {
  installationStatus: string;
  losslessScalingInstalled: boolean;
  losslessScalingStatus: string;
  steamBranchStatus: SteamBranchStatus | null;
}

export function StatusDisplay({
  installationStatus,
  losslessScalingInstalled,
  losslessScalingStatus,
  steamBranchStatus
}: StatusDisplayProps) {
  const losslessScalingAppInstalled = losslessScalingInstalled || steamBranchStatus?.installed === true;

  return (
    <>
      <PanelSectionRow>
        <Field
          label="Lossless Scaling"
          description={losslessScalingAppInstalled ? "Installed" : losslessScalingStatus || "Not installed"}
        />
      </PanelSectionRow>
      <PanelSectionRow>
        <Field label="LSFG-VK" description={installationStatus} />
      </PanelSectionRow>

      {steamBranchStatus?.installed && (
        <PanelSectionRow>
          <Field
            label="Steam branch"
            description={`${steamBranchStatus.current_branch || "public"}${steamBranchStatus.needs_switch ? ` - ${steamBranchStatus.message}` : ""}`}
          />
        </PanelSectionRow>
      )}
    </>
  );
}