summaryrefslogtreecommitdiff
path: root/src/components/SetupTab.tsx
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-10 11:51:22 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-10 11:51:22 -0400
commitb197e25b45d53c6c7175a45dd0b14642f2aab198 (patch)
tree102b2a04d963f3dc192bc126233d124f34ee634b /src/components/SetupTab.tsx
parent209ab92cc3baeb15ce808fc53ce9041a761d8df4 (diff)
downloaddecky-lsfg-vk-b197e25b45d53c6c7175a45dd0b14642f2aab198.tar.gz
decky-lsfg-vk-b197e25b45d53c6c7175a45dd0b14642f2aab198.zip
fixes for appimage and flatpak
Diffstat (limited to 'src/components/SetupTab.tsx')
-rw-r--r--src/components/SetupTab.tsx128
1 files changed, 26 insertions, 102 deletions
diff --git a/src/components/SetupTab.tsx b/src/components/SetupTab.tsx
index 624be54..d769200 100644
--- a/src/components/SetupTab.tsx
+++ b/src/components/SetupTab.tsx
@@ -1,13 +1,6 @@
-import { ButtonItem, Field, PanelSection, PanelSectionRow, ToggleField } from "@decky/ui";
-import { useEffect, useState } from "react";
-import {
- getFlatpakSupportStatus,
- setFlatpakExtensionEnabled,
- type FlatpakExtensionStatus,
- type SteamBranchStatus,
-} from "../api/lsfgApi";
+import { ButtonItem, Field, PanelSection, PanelSectionRow } from "@decky/ui";
+import { type SteamBranchStatus } from "../api/lsfgApi";
import t from "../i18n/i18n";
-import { showErrorToast } from "../utils/toastUtils";
interface SetupTabProps {
isInstalled: boolean;
@@ -21,72 +14,6 @@ interface SetupTabProps {
onUninstall: () => void;
}
-function FlatpakSupportDiagnostics() {
- const [status, setStatus] = useState<FlatpakExtensionStatus | null>(null);
- const [operation, setOperation] = useState<string | null>(null);
-
- const refresh = async () => {
- try {
- setStatus(await getFlatpakSupportStatus());
- } catch (error) {
- setStatus({
- success: false,
- message: "",
- error: String(error),
- available: false,
- extension_id: "",
- supported_branches: [],
- installed_branches: [],
- });
- }
- };
-
- useEffect(() => {
- void refresh();
- }, []);
-
- if (!status?.available) return null;
-
- const setEnabled = async (branch: string, enabled: boolean) => {
- setOperation(`${enabled ? "enable" : "disable"}-${branch}`);
- try {
- const result = await setFlatpakExtensionEnabled(branch, enabled);
- if (!result.success) throw new Error(result.error || result.message || "Flatpak runtime update failed");
- await refresh();
- } catch (error) {
- showErrorToast("Flatpak runtime update failed", String(error));
- } finally {
- setOperation(null);
- }
- };
-
- return (
- <PanelSection title="Flatpak runtimes">
- <PanelSectionRow>
- <Field
- label="LSFG-VK runtime extensions"
- description={status.message || "Toggle a branch to install or uninstall it."}
- />
- </PanelSectionRow>
- {status.supported_branches.map((branch) => {
- const installed = status.installed_branches.includes(branch);
- const pending = operation?.endsWith(`-${branch}`);
- return (
- <PanelSectionRow key={branch}>
- <ToggleField
- label={branch}
- description={pending ? (operation?.startsWith("enable") ? "Installing..." : "Uninstalling...") : installed ? "Installed" : "Not installed"}
- checked={installed}
- onChange={(enabled) => void setEnabled(branch, enabled)}
- disabled={operation !== null}
- />
- </PanelSectionRow>
- );
- })}
- </PanelSection>
- );
-}
-
export function SetupTab(props: SetupTabProps) {
const {
isInstalled,
@@ -109,36 +36,33 @@ export function SetupTab(props: SetupTabProps) {
: t("INSTALL_INSTALL_BTN", "Install LSFG-VK");
return (
- <>
- <PanelSection title="Setup">
+ <PanelSection title="Setup">
+ <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="Lossless Scaling"
- description={losslessScalingAppInstalled ? "Installed" : losslessScalingStatus || "Not installed"}
+ label="Steam branch"
+ description={`${steamBranchStatus.current_branch || "public"}${steamBranchStatus.needs_switch ? ` - ${steamBranchStatus.message}` : ""}`}
/>
</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>
- )}
- <PanelSectionRow>
- <ButtonItem
- layout="below"
- onClick={isInstalled ? onUninstall : onInstall}
- disabled={isInstalling || isUninstalling}
- >
- {buttonLabel}
- </ButtonItem>
- </PanelSectionRow>
- </PanelSection>
- <FlatpakSupportDiagnostics />
- </>
+ )}
+ <PanelSectionRow>
+ <ButtonItem
+ layout="below"
+ onClick={isInstalled ? onUninstall : onInstall}
+ disabled={isInstalling || isUninstalling}
+ >
+ {buttonLabel}
+ </ButtonItem>
+ </PanelSectionRow>
+ </PanelSection>
);
}