feat: using showItemInFolder to open exe and download paths

This commit is contained in:
Zamitto 2024-06-07 14:03:57 -03:00
parent cead92d900
commit 08eda5573d
7 changed files with 28 additions and 21 deletions

View file

@ -63,7 +63,7 @@ declare global {
getLibrary: () => Promise<LibraryGame[]>;
openGameInstaller: (gameId: number) => Promise<boolean>;
openGameInstallerPath: (gameId: number) => Promise<boolean>;
openGameExecutablePath: (gameId: number) => Promise<boolean>;
openGameExecutablePath: (gameId: number) => Promise<void>;
openGame: (gameId: number, executablePath: string) => Promise<void>;
closeGame: (gameId: number) => Promise<boolean>;
removeGameFromLibrary: (gameId: number) => Promise<void>;

View file

@ -140,7 +140,7 @@ export function HeroPanelActions() {
setShowGameOptionsModal(true);
}}
theme="outline"
disabled={deleting}
disabled={deleting || isGameRunning}
className={styles.heroPanelAction}
>
<GearIcon />

View file

@ -21,6 +21,8 @@ export function GameOptionsModal({
onClose,
selectGameExecutable,
}: GameOptionsModalProps) {
const { t } = useTranslation("game_details");
const { updateGame, openRepacksModal } = useContext(gameDetailsContext);
const [showDeleteModal, setShowDeleteModal] = useState(false);
@ -30,7 +32,10 @@ export function GameOptionsModal({
const deleting = game ? isGameDeleting(game?.id) : false;
const { t } = useTranslation("game_details");
const { lastPacket } = useDownload();
const isGameDownloading =
game?.status === "active" && lastPacket?.game.id === game?.id;
const handleRemoveGameFromLibrary = async () => {
await removeGameFromLibrary(game.id);
@ -51,6 +56,10 @@ export function GameOptionsModal({
await window.electron.createGameShortcut(game.id);
};
const handleOpenDownloadFolder = async () => {
await window.electron.openGameInstallerPath(game.id);
};
const handleDeleteGame = async () => {
await removeGameInstaller(game.id);
updateGame();
@ -84,12 +93,12 @@ export function GameOptionsModal({
{t("open_download_options")}
</Button>
<Button
onClick={handleCreateShortcut}
onClick={handleOpenDownloadFolder}
style={{ alignSelf: "flex-end" }}
theme="outline"
disabled={deleting || !game.downloadPath}
>
{"Abrir local de download"}
{t("open_download_location")}
</Button>
<Button
onClick={handleCreateShortcut}
@ -129,13 +138,15 @@ export function GameOptionsModal({
</div>
<div className={styles.gameOptionRow}>
<Button
onClick={handleCreateShortcut}
onClick={() => {
setShowDeleteModal(true);
}}
style={{ alignSelf: "flex-end" }}
theme="outline"
disabled={deleting || !game.downloadPath}
disabled={isGameDownloading || deleting || !game.downloadPath}
>
<TrashIcon />
Remover arquivos
{t("remove_files")}
</Button>
<Button
@ -145,7 +156,7 @@ export function GameOptionsModal({
disabled={deleting}
>
<NoEntryIcon />
Remover da biblioteca
{t("remove_from_library")}
</Button>
</div>
</div>