summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2025-10-19 12:05:11 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2025-10-19 12:05:11 -0400
commitcb294a6cec4507e98fedc1b4d38f9c32102e354c (patch)
tree64e7e002ef428350d9e51bf269912140812bb5a9 /src
parentcecbefc71eacf8ae61a36bbb7fe06eb8c1fa03c6 (diff)
downloaddecky-lsfg-vk-cb294a6cec4507e98fedc1b4d38f9c32102e354c.tar.gz
decky-lsfg-vk-cb294a6cec4507e98fedc1b4d38f9c32102e354c.zip
feat: add 25.08 flatpak layer and FE BE logic and UI for flatpak installer
Diffstat (limited to 'src')
-rw-r--r--src/api/lsfgApi.ts1
-rw-r--r--src/components/FlatpaksModal.tsx40
2 files changed, 41 insertions, 0 deletions
diff --git a/src/api/lsfgApi.ts b/src/api/lsfgApi.ts
index d08cd42..dda6c23 100644
--- a/src/api/lsfgApi.ts
+++ b/src/api/lsfgApi.ts
@@ -103,6 +103,7 @@ export interface FlatpakExtensionStatus {
error?: string;
installed_23_08: boolean;
installed_24_08: boolean;
+ installed_25_08: boolean;
}
export interface FlatpakApp {
diff --git a/src/components/FlatpaksModal.tsx b/src/components/FlatpaksModal.tsx
index bd81013..ae0c333 100644
--- a/src/components/FlatpaksModal.tsx
+++ b/src/components/FlatpaksModal.tsx
@@ -216,6 +216,46 @@ const FlatpaksModal: FC<FlatpaksModalProps> = ({ closeModal }) => {
</ButtonItem>
</Field>
</PanelSectionRow>
+
+ {/* 25.08 Runtime */}
+ <PanelSectionRow>
+ <Field
+ label="Runtime 25.08"
+ description={extensionStatus.installed_25_08 ? "Installed" : "Not installed"}
+ icon={extensionStatus.installed_25_08 ? <FaCheck style={{color: 'green'}} /> : <FaTimes style={{color: 'red'}} />}
+ >
+ <ButtonItem
+ layout="below"
+ onClick={() => {
+ const operation = extensionStatus.installed_25_08 ? 'uninstall' : 'install';
+ const action = () => handleExtensionOperation(operation, '25.08');
+
+ if (operation === 'uninstall') {
+ confirmOperation(
+ action,
+ 'Uninstall Runtime Extension',
+ 'Are you sure you want to uninstall the 25.08 runtime extension?'
+ );
+ } else {
+ action();
+ }
+ }}
+ disabled={operationInProgress === 'install-25.08' || operationInProgress === 'uninstall-25.08'}
+ >
+ {operationInProgress === 'install-25.08' || operationInProgress === 'uninstall-25.08' ? (
+ <Spinner />
+ ) : extensionStatus.installed_25_08 ? (
+ <>
+ <FaTrash /> Uninstall
+ </>
+ ) : (
+ <>
+ <FaDownload /> Install
+ </>
+ )}
+ </ButtonItem>
+ </Field>
+ </PanelSectionRow>
</>
) : (
<PanelSectionRow>