From eb2435a4bf1fce0ade7d1f5c8ce3031d22b6e5b5 Mon Sep 17 00:00:00 2001
From: stromcon <6690149+stromcon@users.noreply.github.com>
Date: Thu, 3 Jun 2021 00:13:52 +0200
Subject: [PATCH 1/2] Add progress indicator while downloading mods
---
src/service/ryujinx.ts | 4 +++-
src/ui/page/ryujinx/gamelist/ModsList.tsx | 22 +++++++++++++++++++---
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/src/service/ryujinx.ts b/src/service/ryujinx.ts
index 5c872021..2bd6c2e1 100644
--- a/src/service/ryujinx.ts
+++ b/src/service/ryujinx.ts
@@ -358,8 +358,10 @@ export const installModToRyujinx = async (config: IRyujinxConfig, titleID: strin
archive.extractAllTo(path.resolve(modPath, '..'),true);
}
- await Swal.fire({
+ Swal.fire({
icon: 'success',
text: `${modName} successfully installed ${isZip ? '' : `at ${modPath}`}`
})
+
+ return true;
}
diff --git a/src/ui/page/ryujinx/gamelist/ModsList.tsx b/src/ui/page/ryujinx/gamelist/ModsList.tsx
index a7f4acf7..977199e2 100644
--- a/src/ui/page/ryujinx/gamelist/ModsList.tsx
+++ b/src/ui/page/ryujinx/gamelist/ModsList.tsx
@@ -1,12 +1,12 @@
import React from "react";
import {
- Avatar,
- Button,
+ Avatar, Backdrop,
+ Button, CircularProgress,
Dialog,
DialogTitle,
List,
ListItem,
- ListItemAvatar, ListItemText,
+ ListItemAvatar, ListItemText, makeStyles,
TableBody,
TableCell,
TableRow
@@ -30,6 +30,13 @@ interface IModsListProps {
filter: string;
}
+const useStyles = makeStyles((theme) => ({
+ backdrop: {
+ zIndex: theme.zIndex.drawer + 1,
+ color: '#fff',
+ },
+}));
+
export default ({
games,
extractNameFromID,
@@ -37,8 +44,10 @@ export default ({
config,
filter,
}: IModsListProps) => {
+ const classes = useStyles();
const [dialogVersionOpen, setDialogVersionOpen] = React.useState(false);
const [modsDialogOpen, setModsDialogOpen] = React.useState(false);
+ const [backdropOpen, setBackdropOpen] = React.useState(false);
const [modsName, setModsName]: [string[], Function] = React.useState([]);
const [modsVersions, setModsVersions]: [string[], Function] = React.useState([]);
@@ -70,8 +79,10 @@ export default ({
const modFile: any[] = await getEmusakMod(pickedTitleId, pickedVersion, modName);
const mod = modFile.find(m => m.type === "file").name;
setModsDialogOpen(false);
+ setBackdropOpen(true);
const file = await downloadEmusakMod(pickedTitleId, pickedVersion, modName, mod);
await installModToRyujinx(config, pickedTitleId, modName, mod, file);
+ setBackdropOpen(false);
}
return (
@@ -117,6 +128,11 @@ export default ({
+
+ Downloading and installing mod ...
+