import { useState } from 'react' export default function ServerCard({ server, onClick }) { const [isHovered, setIsHovered] = useState(false) const formatUptime = (seconds) => { const hours = Math.floor(seconds / 3600) if (hours > 24) { const days = Math.floor(hours / 24) return days + 'd ' + (hours % 24) + 'h' } const minutes = Math.floor((seconds % 3600) / 60) return hours + 'h ' + minutes + 'm' } const cpuPercent = Math.min(server.metrics.cpu, 100) const memPercent = Math.min(server.metrics.memory, 100) return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > {/* Header */}

{server.name.toUpperCase()}

{server.running ? 'ONLINE' : 'OFFLINE'}
{/* CPU & RAM Bars */}
{/* CPU */}
CPU {server.metrics.cpu.toFixed(1)}%
{/* RAM */}
RAM {server.metrics.memoryUsed?.toFixed(1) || 0} / {server.metrics.memoryTotal?.toFixed(1) || 0} {server.metrics.memoryUnit}
{/* Stats Row */}
{server.players.online}
PLAYERS
{server.running && (
{formatUptime(server.metrics.uptime)}
UPTIME
)}
{server.metrics.cpuCores}
CORES
{/* Players List */} {server.players?.list?.length > 0 && (
{server.players.list.map((player, i) => ( {player} ))}
)} {/* Click Indicator */}
CLICK FOR DETAILS
) }