feat: double click on sidebar opens game

This commit is contained in:
Zamitto 2024-06-05 17:14:13 -03:00
parent 086ee8ac04
commit 45d8923561
2 changed files with 32 additions and 31 deletions

View file

@ -122,6 +122,20 @@ export function Sidebar() {
} }
}; };
const handleSidebarGameClick = (
event: React.MouseEvent,
game: LibraryGame
) => {
const path = buildGameDetailsPath(game);
if (path !== location.pathname) {
navigate(path);
}
if (event.detail == 2 && game.executablePath) {
window.electron.openGame(game.id, game.executablePath);
}
};
return ( return (
<aside <aside
ref={sidebarRef} ref={sidebarRef}
@ -183,9 +197,7 @@ export function Sidebar() {
<button <button
type="button" type="button"
className={styles.menuItemButton} className={styles.menuItemButton}
onClick={() => onClick={(event) => handleSidebarGameClick(event, game)}
handleSidebarItemClick(buildGameDetailsPath(game))
}
> >
{game.iconUrl ? ( {game.iconUrl ? (
<img <img

View file

@ -29,8 +29,6 @@ export function GameOptionsModal({
onClose, onClose,
selectGameExecutable, selectGameExecutable,
}: GameOptionsModalProps) { }: GameOptionsModalProps) {
const [currentCategoryIndex, setCurrentCategoryIndex] = useState(0);
const { updateGame, openRepacksModal } = useContext(gameDetailsContext); const { updateGame, openRepacksModal } = useContext(gameDetailsContext);
const [showDeleteModal, setShowDeleteModal] = useState(false); const [showDeleteModal, setShowDeleteModal] = useState(false);
@ -80,19 +78,9 @@ export function GameOptionsModal({
display: "flex", display: "flex",
flexDirection: "column", flexDirection: "column",
gap: `${SPACING_UNIT}px`, gap: `${SPACING_UNIT}px`,
minWidth: "500px", width: "700px",
}} }}
> >
<div style={{ marginBottom: `${SPACING_UNIT * 2}px` }}>
<Button
key={"general"}
theme={currentCategoryIndex === 0 ? "primary" : "outline"}
onClick={() => setCurrentCategoryIndex(0)}
>
General
</Button>
</div>
<div className={styles.downloadSourceField}> <div className={styles.downloadSourceField}>
<TextField <TextField
label="Caminho do executável" label="Caminho do executável"
@ -102,7 +90,9 @@ export function GameOptionsModal({
disabled disabled
placeholder="Selecione um executável" placeholder="Selecione um executável"
/> />
</div>
<div className={styles.downloadSourceField}>
<Button <Button
type="button" type="button"
theme="outline" theme="outline"
@ -110,7 +100,7 @@ export function GameOptionsModal({
onClick={handleOpenGameExecutablePath} onClick={handleOpenGameExecutablePath}
> >
<FileDirectoryOpenFillIcon /> <FileDirectoryOpenFillIcon />
{"Abrir local do executável"} {"Abrir pasta"}
</Button> </Button>
<Button <Button
@ -122,20 +112,25 @@ export function GameOptionsModal({
<FileSymlinkFileIcon /> <FileSymlinkFileIcon />
{"Alterar"} {"Alterar"}
</Button> </Button>
<Button
onClick={handleCreateShortcut}
theme="outline"
disabled={deleting}
>
{"Criar atalho"}
</Button>
</div> </div>
<div className={styles.downloadSourceField}> <div className={styles.downloadSourceField}>
<TextField <TextField
label="Caminho do instalador" label="Caminho do instalador"
value={game.downloadPath + game.folderName} value={`${game.downloadPath}\\${game.folderName}`}
readOnly readOnly
theme="dark" theme="dark"
disabled disabled
placeholder="" placeholder=""
/> />
</div>
<div className={styles.downloadSourceField}>
<Button <Button
type="button" type="button"
theme="outline" theme="outline"
@ -143,7 +138,7 @@ export function GameOptionsModal({
onClick={handleOpenGameInstallerPath} onClick={handleOpenGameInstallerPath}
> >
<FileDirectoryOpenFillIcon /> <FileDirectoryOpenFillIcon />
{"Abrir pasta do instalador"} {"Abrir pasta"}
</Button> </Button>
<Button <Button
type="button" type="button"
@ -154,8 +149,11 @@ export function GameOptionsModal({
}} }}
> >
<TrashIcon /> <TrashIcon />
{"Remover instalador"} {"Remover"}
</Button> </Button>
</div>
<div className={styles.downloadSourceField}>
<Button <Button
onClick={openRepacksModal} onClick={openRepacksModal}
theme="outline" theme="outline"
@ -164,15 +162,6 @@ export function GameOptionsModal({
{t("open_download_options")} {t("open_download_options")}
</Button> </Button>
</div> </div>
<div className={styles.downloadSourceField}>
<Button
onClick={handleCreateShortcut}
theme="outline"
disabled={deleting}
>
{"criar atalho na area de trabalho"}
</Button>
</div>
</div> </div>
</Modal> </Modal>
</> </>