✨ Library useful links
This commit is contained in:
parent
1c012f7530
commit
257884145e
@ -63,6 +63,10 @@ app.whenReady().then(() => {
|
||||
return result.filePaths[0]
|
||||
})
|
||||
|
||||
ipcMain.handle('beep', () => {
|
||||
shell.beep()
|
||||
})
|
||||
|
||||
initTasks()
|
||||
initLibrary()
|
||||
initInstaller()
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ipcMain, app } from 'electron'
|
||||
import { ipcMain, app, shell } from 'electron'
|
||||
import { MaProduct, MaRelease } from 'solar-js-sdk'
|
||||
import { join } from 'path'
|
||||
import * as fs from 'fs'
|
||||
@ -46,6 +46,7 @@ export function initLibrary(): void {
|
||||
|
||||
ipcMain.handle('uninstall-app', (_, id: string) => uninstallApp(id))
|
||||
ipcMain.handle('launch-app', (_, id: string) => launchApp(id))
|
||||
ipcMain.handle('open-path-app', (_, id: string) => openPathApp(id))
|
||||
}
|
||||
|
||||
export function getAppLibrary(): LocalAppRecord[] {
|
||||
@ -105,3 +106,10 @@ export function launchApp(id: string): void {
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
export function openPathApp(id: string): void {
|
||||
const app = getAppLibrary().filter((ele) => ele.id === id)[0]
|
||||
if (!app) return
|
||||
|
||||
shell.openPath(app.basePath)
|
||||
}
|
||||
|
@ -1,5 +1,16 @@
|
||||
import { LocalAppRecord } from '@main/library'
|
||||
import { Avatar, Box, Button, Container, Divider, Grid2 as Grid, IconButton, Stack, Typography } from '@mui/material'
|
||||
import {
|
||||
Avatar,
|
||||
Box,
|
||||
Button,
|
||||
Container,
|
||||
Divider,
|
||||
Grid2 as Grid,
|
||||
IconButton,
|
||||
Link,
|
||||
Stack,
|
||||
Typography,
|
||||
} from '@mui/material'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
import { useNavigate, useParams } from 'react-router'
|
||||
import { getAttachmentUrl } from 'solar-js-sdk'
|
||||
@ -60,6 +71,10 @@ export default function LibraryDetails(): JSX.Element {
|
||||
setBusy(false)
|
||||
}
|
||||
|
||||
async function openInstalledPath() {
|
||||
await window.electron.ipcRenderer.invoke('open-path-app', app?.id)
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{product?.previews && (
|
||||
@ -130,7 +145,7 @@ export default function LibraryDetails(): JSX.Element {
|
||||
</Grid>
|
||||
|
||||
<Grid size={4}>
|
||||
<Stack spacing={2} alignItems="end">
|
||||
<Stack spacing={2} alignItems="end" sx={{ mx: -1.5 }}>
|
||||
<Box>
|
||||
<IconButton disabled={busy} color="error" onClick={uninstallApp}>
|
||||
<UninstallIcon />
|
||||
@ -140,6 +155,37 @@ export default function LibraryDetails(): JSX.Element {
|
||||
</IconButton>
|
||||
</Box>
|
||||
</Stack>
|
||||
|
||||
<Box sx={{ mt: 4, textAlign: 'right' }}>
|
||||
<Link
|
||||
variant="caption"
|
||||
color="textSecondary"
|
||||
href={`/products/${app?.product.id}`}
|
||||
underline="none"
|
||||
display="block"
|
||||
>
|
||||
Store page
|
||||
</Link>
|
||||
<Link
|
||||
variant="caption"
|
||||
color="textSecondary"
|
||||
underline="none"
|
||||
display="block"
|
||||
sx={{ cursor: 'pointer' }}
|
||||
onClick={() => openInstalledPath()}
|
||||
>
|
||||
Open installed path
|
||||
</Link>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ mt: 2, textAlign: 'right' }}>
|
||||
<Typography variant="caption" component="p">
|
||||
Version {app?.release.version}
|
||||
</Typography>
|
||||
<Typography variant="caption" component="p" fontFamily="monospace" fontSize={9}>
|
||||
#{app?.id}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Container>
|
||||
|
Loading…
x
Reference in New Issue
Block a user