'use client' import { useEffect, useState } from 'react' import '../Installs.css' import { format } from 'date-fns' import { invoke } from '@tauri-apps/api/core' import { useGlobal } from '../GlobalProvider' import { useSearchParams } from 'next/navigation' import { platform } from '@tauri-apps/plugin-os' export default function Installs () { const { showPopup, setShowPopup, setPopupMode, setFadeOut, setSelectedVersionList, downloadedVersionsConfig, normalConfig, setManagingVersion, getVersionInfo, getVersionGame, setSelectedGame } = useGlobal() const params = useSearchParams() const [hoveredIds, setHoveredIds] = useState([]) useEffect(() => { if (!showPopup) return setSelectedVersionList([]) }, [normalConfig, setSelectedVersionList, showPopup]) return (

Installs

{downloadedVersionsConfig && downloadedVersionsConfig.list.filter(v => { const info = getVersionInfo(v) if (!info) return false return info.game === Number(params.get('id') || 0) }).length != 0 ? ( downloadedVersionsConfig.list .sort((a, b) => { const infoA = getVersionInfo(a) const infoB = getVersionInfo(b) if (!infoA || !infoB) return -1 return infoB.place - infoA.place }) .filter(v => { const info = getVersionInfo(v) if (!info) return false return info.game === Number(params.get('id') || 0) }) .map((entry, i) => (
{ if (normalConfig?.settings.useLegacyInteractButtons) return const verInfo = getVersionInfo(entry) if (verInfo == undefined) return invoke('launch_game', { name: verInfo.id, executable: verInfo.executable }) }} onMouseEnter={() => setHoveredIds(prev => [...prev, entry])} onMouseLeave={() => setHoveredIds(prev => prev.filter(i => i !== i)) } >

{getVersionGame(getVersionInfo(entry)?.game)?.name} v {getVersionInfo(entry)?.versionName}

Installed{' '} {format( new Date(downloadedVersionsConfig.timestamps[entry]), 'MM/dd/yyyy' )}

)) ) : (

No versions installed

)}
) }