From d7115074060a3e9e682d511eae3c47a1c64042b8 Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Thu, 10 Sep 2026 14:32:16 -0400 Subject: refactor: wrap only direct Flatpak shortcut targets --- src/hooks/useLsfgHooks.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/hooks/useLsfgHooks.ts') diff --git a/src/hooks/useLsfgHooks.ts b/src/hooks/useLsfgHooks.ts index 9beb749..16f8962 100644 --- a/src/hooks/useLsfgHooks.ts +++ b/src/hooks/useLsfgHooks.ts @@ -1,9 +1,12 @@ import { useEffect, useState } from "react"; import { checkLsfgVkInstalled, + getFlatpakSupportStatus, getLosslessScalingBranchStatus, installLsfgVk, + repairFlatpakSupport, uninstallLsfgVk, + type FlatpakExtensionStatus, type SteamBranchStatus, } from "../api/lsfgApi"; import { @@ -11,6 +14,7 @@ import { showInstallSuccessToast, showUninstallErrorToast, showUninstallSuccessToast, + showErrorToast, } from "../utils/toastUtils"; export function useInstallation(reloadConfig?: () => Promise) { @@ -18,11 +22,19 @@ export function useInstallation(reloadConfig?: () => Promise) { const [installationStatus, setInstallationStatus] = useState(""); const [losslessScalingInstalled, setLosslessScalingInstalled] = useState(false); const [losslessScalingStatus, setLosslessScalingStatus] = useState(""); + const [flatpakStatus, setFlatpakStatus] = useState(null); const [steamBranchStatus, setSteamBranchStatus] = useState(null); const [isInstalling, setIsInstalling] = useState(false); const [isUninstalling, setIsUninstalling] = useState(false); + const [isRepairingFlatpak, setIsRepairingFlatpak] = useState(false); const checkInstallation = async () => { + try { + setFlatpakStatus(await getFlatpakSupportStatus()); + } catch (error) { + console.error("Error checking Flatpak support:", error); + setFlatpakStatus(null); + } try { setSteamBranchStatus(await getLosslessScalingBranchStatus()); } catch (error) { @@ -95,16 +107,37 @@ export function useInstallation(reloadConfig?: () => Promise) { } }; + const repairFlatpak = async () => { + if (isRepairingFlatpak) return false; + setIsRepairingFlatpak(true); + try { + const result = await repairFlatpakSupport(); + setFlatpakStatus(result); + if (!result.success) { + showErrorToast("Flatpak support repair failed", result.error || result.message || "Unknown error"); + } + return result.success; + } catch (error) { + showErrorToast("Flatpak support repair failed", String(error)); + return false; + } finally { + setIsRepairingFlatpak(false); + } + }; + return { isInstalled, installationStatus, losslessScalingInstalled, losslessScalingStatus, + flatpakStatus, steamBranchStatus, isInstalling, isUninstalling, + isRepairingFlatpak, install, uninstall, + repairFlatpak, checkInstallation, }; } -- cgit v1.2.3