clicking 'play' now redirects to the same folder as the installer

This commit is contained in:
discollizard 2024-06-22 12:59:17 -03:00
parent 8fad9b05e6
commit d4aebf7d99
3 changed files with 24 additions and 5 deletions

View File

@ -131,8 +131,9 @@ export function GameDetailsContextProvider({
return window.electron.getDefaultDownloadsPath();
};
const selectGameExecutable = async () => {
const downloadsPath = await getDownloadsPath();
const selectGameExecutable = async (gameInstallerFolderIfExists: string | null) => {
const downloadsPath = gameInstallerFolderIfExists ?? await getDownloadsPath();
return window.electron
.showOpenDialog({

View File

@ -13,7 +13,7 @@ export interface GameDetailsContext {
showRepacksModal: boolean;
showGameOptionsModal: boolean;
setGameColor: React.Dispatch<React.SetStateAction<string>>;
selectGameExecutable: () => Promise<string | null>;
selectGameExecutable: (gameInstallerFolderIfExists: string | null) => Promise<string | null>;
updateGame: () => Promise<void>;
setShowRepacksModal: React.Dispatch<React.SetStateAction<boolean>>;
setShowGameOptionsModal: React.Dispatch<React.SetStateAction<boolean>>;

View File

@ -1,6 +1,6 @@
import { GearIcon, PlayIcon, PlusCircleIcon } from "@primer/octicons-react";
import { Button } from "@renderer/components";
import { useDownload, useLibrary } from "@renderer/hooks";
import { useAppSelector, useDownload, useLibrary } from "@renderer/hooks";
import { useContext, useState } from "react";
import { useTranslation } from "react-i18next";
import * as styles from "./hero-panel-actions.css";
@ -13,6 +13,10 @@ export function HeroPanelActions() {
const { isGameDeleting } = useDownload();
const userPreferences = useAppSelector(
(state) => state.userPreferences.value
);
const {
game,
repacks,
@ -49,7 +53,21 @@ export function HeroPanelActions() {
return;
}
const gameExecutablePath = await selectGameExecutable();
let gameInstallerFolderIfExists: string | null = null
if (game && game.folderName){
let downloadsPath = await window.electron.getDefaultDownloadsPath();
if (userPreferences?.downloadsPath)
downloadsPath = userPreferences.downloadsPath;
const folderSeparator = window.electron.platform == 'win32'
? '\\'
: '/'
gameInstallerFolderIfExists = (game.downloadPath ?? downloadsPath)+folderSeparator+game.folderName!
}
const gameExecutablePath = await selectGameExecutable(gameInstallerFolderIfExists);
if (gameExecutablePath)
window.electron.openGame(game.id, gameExecutablePath);
}