Improve the logic for this I guess

This commit is contained in:
Lncvrt committed 2026-05-01 13:37:24 -07:00
1 parent a1a719ba72
commit 683158e31e
1 file changed
+147 -146
+147 -146
View File
@@ -48,165 +48,166 @@ export default function ManageVersionPopup () {
<p className='text-xl text-center'>Viewing {versionInfo?.displayName}</p> <p className='text-xl text-center'>Viewing {versionInfo?.displayName}</p>
<div className='popup-content h-full w-full flex justify-center items-center flex-col gap-2'> <div className='popup-content h-full w-full flex justify-center items-center flex-col gap-2'>
<div className='flex flex-row gap-2 justify-center'> <div className='flex flex-row gap-2 justify-center'>
<div {!viewingInfoFromDownloads && (
className='entry-info-item btntheme2' <div className='entry-info-item btntheme2'>
hidden={viewingInfoFromDownloads} <p>
> Installed{' '}
<p> {new Intl.DateTimeFormat(undefined).format(
Installed{' '} versionsList[managingVersion] ?? 0
{new Intl.DateTimeFormat(undefined).format( )}
versionsList[managingVersion] ?? 0 </p>
</div>
)}
{versionInfo && (
<>
{versionInfo.releaseDate != 0 && (
<div className='entry-info-item btntheme2'>
<p>
Released{' '}
{new Intl.DateTimeFormat(undefined).format(
versionInfo?.releaseDate
? versionInfo.releaseDate * 1000
: 0
)}
</p>
</div>
)} )}
</p> {versionInfo.changelog && (
</div> <div
<div className='entry-info-item btntheme2'
className='entry-info-item btntheme2' onClick={() => setPopupMode(4)}
hidden={!versionInfo || versionInfo.releaseDate == 0} >
> <p>View Changelog</p>
<p> <FontAwesomeIcon
Released{' '} icon={faArrowUpRightFromSquare}
{new Intl.DateTimeFormat(undefined).format( color='lightgray'
versionInfo?.releaseDate ? versionInfo.releaseDate * 1000 : 0 />
</div>
)} )}
</p> </>
</div> )}
<div
className='entry-info-item btntheme2'
onClick={() => setPopupMode(4)}
hidden={!versionInfo?.changelog}
>
<p>View Changelog</p>
<FontAwesomeIcon
icon={faArrowUpRightFromSquare}
color='lightgray'
/>
</div>
</div> </div>
<div className='flex flex-row gap-2 justify-center'> {!viewingInfoFromDownloads && (
<div <div className='flex flex-row gap-2 justify-center'>
className='entry-info-item btntheme2' <div className='entry-info-item btntheme2'>
hidden={viewingInfoFromDownloads} <FontAwesomeIcon icon={faHardDrive} color='lightgray' />
> <p>
<FontAwesomeIcon icon={faHardDrive} color='lightgray' /> Size on disk:{' '}
<p> {prettyBytes(versionSize, {
Size on disk:{' '} minimumFractionDigits: 2,
{prettyBytes(versionSize, { maximumFractionDigits: 2
minimumFractionDigits: 2, })}
maximumFractionDigits: 2 </p>
})} </div>
</p> <div
</div> className='entry-info-item btntheme2'
<div onClick={async () => openFolder(managingVersion)}
className='entry-info-item btntheme2' title="Click to browse the game's files."
onClick={async () => openFolder(managingVersion)} >
title="Click to browse the game's files." Open Folder
hidden={viewingInfoFromDownloads} <FontAwesomeIcon
> icon={faArrowUpRightFromSquare}
Open Folder color='lightgray'
<FontAwesomeIcon />
icon={faArrowUpRightFromSquare} </div>
color='lightgray' <div
/> className='entry-info-item btntheme2'
</div> onClick={async () => {
<div closePopup()
className='entry-info-item btntheme2'
onClick={async () => {
closePopup()
await versions?.set( await versions?.set(
'list', 'list',
Object.fromEntries( Object.fromEntries(
Object.entries(versionsList).filter( Object.entries(versionsList).filter(
([k]) => k !== managingVersion ([k]) => k !== managingVersion
)
) )
) )
)
if ( if (
await exists( await exists(
(customDataLocation ? customDataLocation + '/' : null) + (customDataLocation ? customDataLocation + '/' : null) +
'game/' + 'game/' +
managingVersion, managingVersion,
{ {
baseDir: customDataLocation baseDir: customDataLocation
? undefined ? undefined
: BaseDirectory.AppLocalData : BaseDirectory.AppLocalData
} }
)
)
await remove(
(customDataLocation ? customDataLocation + '/' : null) +
'game/' +
managingVersion,
{
baseDir: customDataLocation
? undefined
: BaseDirectory.AppLocalData,
recursive: true
}
)
}}
title='Click to uninstall this game. This will NOT remove any progress or any save files.'
hidden={viewingInfoFromDownloads}
>
Uninstall
</div>
<div
className='entry-info-item btntheme2'
onClick={async () => {
//change popup to downloads
setManagingVersion(null)
setPopupMode(1)
//uninstall
await versions?.set(
'list',
Object.fromEntries(
Object.entries(versionsList).filter(
([k]) => k !== managingVersion
) )
) )
) await remove(
(customDataLocation ? customDataLocation + '/' : null) +
'game/' +
managingVersion,
{
baseDir: customDataLocation
? undefined
: BaseDirectory.AppLocalData,
recursive: true
}
)
}}
title='Click to uninstall this game. This will NOT remove any progress or any save files.'
>
Uninstall
</div>
<div
className='entry-info-item btntheme2'
onClick={async () => {
//change popup to downloads
setManagingVersion(null)
setPopupMode(1)
if ( //uninstall
await exists( await versions?.set(
(customDataLocation ? customDataLocation + '/' : null) + 'list',
'game/' + Object.fromEntries(
managingVersion, Object.entries(versionsList).filter(
{ ([k]) => k !== managingVersion
baseDir: customDataLocation )
? undefined )
: BaseDirectory.AppLocalData
}
)
)
await remove(
(customDataLocation ? customDataLocation + '/' : null) +
'game/' +
managingVersion,
{
baseDir: customDataLocation
? undefined
: BaseDirectory.AppLocalData,
recursive: true
}
) )
//reinstall if (
setSelectedVersionList([managingVersion]) await exists(
downloadVersions([ (customDataLocation ? customDataLocation + '/' : null) +
{ 'game/' +
id: managingVersion, managingVersion,
type: 0 {
} baseDir: customDataLocation
]) ? undefined
}} : BaseDirectory.AppLocalData
title="Click to reinstall this game. This will NOT remove any progress or any save files. This WILL uninstall any modifications to the game's executable files." }
hidden={viewingInfoFromDownloads} )
> )
Reinstall await remove(
(customDataLocation ? customDataLocation + '/' : null) +
'game/' +
managingVersion,
{
baseDir: customDataLocation
? undefined
: BaseDirectory.AppLocalData,
recursive: true
}
)
//reinstall
setSelectedVersionList([managingVersion])
downloadVersions([
{
id: managingVersion,
type: 0
}
])
}}
title="Click to reinstall this game. This will NOT remove any progress or any save files. This WILL uninstall any modifications to the game's executable files."
>
Reinstall
</div>
</div> </div>
</div> )}
</div> </div>
</> </>
) )