import { useState, useEffect } from "react"; import { useQuery } from "@tanstack/react-query"; import { useTheme } from "@/contexts/ThemeContext"; import { useLanguage } from "@/contexts/LanguageContext"; import { Sidebar } from "@/components/dashboard/Sidebar"; import { Header } from "@/components/dashboard/Header"; import { ServerStatsCards } from "@/components/servers/ServerStatsCards"; import { ServerTable } from "@/components/servers/ServerTable"; import { serverService } from "@/services/serverService"; import { Server, ServerStats } from "@/types/server.types"; import { useSidebar } from "@/contexts/SidebarContext"; import { authService } from "@/services/authService"; import { useNavigate } from "react-router-dom"; const InstanceMonitoring = () => { const { theme } = useTheme(); const { t } = useLanguage(); const { sidebarCollapsed, toggleSidebar } = useSidebar(); const navigate = useNavigate(); const [stats, setStats] = useState({ total: 0, online: 0, offline: 0, warning: 0 }); const [currentUser, setCurrentUser] = useState(authService.getCurrentUser()); const { data: servers = [], isLoading, error, refetch } = useQuery({ queryKey: ['servers'], queryFn: serverService.getServers, refetchInterval: 30000 // Refetch every 30 seconds }); useEffect(() => { if (servers.length > 0) { serverService.getServerStats(servers).then(setStats); } }, [servers]); const handleRefresh = () => { refetch(); }; const handleLogout = () => { authService.logout(); navigate('/login'); }; if (error) { return

Error loading servers

Unable to fetch server data. Please check your connection and try again.

; } return
{/* Header Section */}

Instance Monitoring

Monitor and manage your server instances in real-time

{/* Stats Cards Section */}
{/* Server Table Section */}
; }; export default InstanceMonitoring;