"use client" import { useState } from "react" import { Badge } from "./ui/badge" import { Button } from "./ui/button" import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs" import { SystemOverview } from "./system-overview" import { StorageMetrics } from "./storage-metrics" import { NetworkMetrics } from "./network-metrics" import { VirtualMachines } from "./virtual-machines" import { SystemLogs } from "./system-logs" import { RefreshCw, AlertTriangle, CheckCircle, XCircle, Server } from "lucide-react" import Image from "next/image" import { ThemeToggle } from "./theme-toggle" interface SystemStatus { status: "healthy" | "warning" | "critical" uptime: string lastUpdate: string serverName: string nodeId: string } export function ProxmoxDashboard() { const [systemStatus, setSystemStatus] = useState({ status: "healthy", uptime: "15d 7h 23m", lastUpdate: new Date().toLocaleTimeString(), serverName: "proxmox-01", nodeId: "pve-node-01", }) const [isRefreshing, setIsRefreshing] = useState(false) const refreshData = async () => { setIsRefreshing(true) await new Promise((resolve) => setTimeout(resolve, 1000)) setSystemStatus((prev) => ({ ...prev, lastUpdate: new Date().toLocaleTimeString(), })) setIsRefreshing(false) } const getStatusIcon = () => { switch (systemStatus.status) { case "healthy": return case "warning": return case "critical": return } } const getStatusColor = () => { switch (systemStatus.status) { case "healthy": return "bg-green-500/10 text-green-500 border-green-500/20" case "warning": return "bg-yellow-500/10 text-yellow-500 border-yellow-500/20" case "critical": return "bg-red-500/10 text-red-500 border-red-500/20" } } return (
ProxMenux Logo

ProxMenux Monitor

Proxmox System Dashboard

{systemStatus.nodeId}
{getStatusIcon()} {systemStatus.status}
Uptime: {systemStatus.uptime}
Overview Storage Network Virtual Machines System Logs
) }