diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2026-09-10 14:32:16 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2026-09-10 14:32:16 -0400 |
| commit | d7115074060a3e9e682d511eae3c47a1c64042b8 (patch) | |
| tree | 84362580dc7ab5d72be7d3ccf811d99c66d893d5 /src/hooks/useLsfgHooks.ts | |
| parent | 684929fe850b744ef841475f88cf2a3189fbb986 (diff) | |
| download | decky-lsfg-vk-d7115074060a3e9e682d511eae3c47a1c64042b8.tar.gz decky-lsfg-vk-d7115074060a3e9e682d511eae3c47a1c64042b8.zip | |
refactor: wrap only direct Flatpak shortcut targets
Diffstat (limited to 'src/hooks/useLsfgHooks.ts')
| -rw-r--r-- | src/hooks/useLsfgHooks.ts | 33 |
1 files changed, 33 insertions, 0 deletions
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<void>) { @@ -18,12 +22,20 @@ export function useInstallation(reloadConfig?: () => Promise<void>) { const [installationStatus, setInstallationStatus] = useState(""); const [losslessScalingInstalled, setLosslessScalingInstalled] = useState(false); const [losslessScalingStatus, setLosslessScalingStatus] = useState(""); + const [flatpakStatus, setFlatpakStatus] = useState<FlatpakExtensionStatus | null>(null); const [steamBranchStatus, setSteamBranchStatus] = useState<SteamBranchStatus | null>(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) { console.error("Error checking Lossless Scaling Steam branch:", error); @@ -95,16 +107,37 @@ export function useInstallation(reloadConfig?: () => Promise<void>) { } }; + 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, }; } |
