import { useState, useEffect } from "react"; import Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; import ServerCard from "../servers/ServerCard.jsx"; import RconDialog, { useRconDialog } from "../servers/RconDialog.jsx"; import Overview from "../overview/Overview.jsx"; import "@mcl/css/server-card.css"; import "@mcl/css/overview.css"; import { useServerInstances } from "@mcl/queries"; export default function Home() { const [server, setServer] = useState(); const [servers, setServers] = useState([]); const [rdOpen, rconToggle] = useRconDialog(); const { isLoading, data: serversData } = useServerInstances(); const { servers: serverInstances, clusterMetrics } = serversData ?? {}; useEffect(() => { if (!serverInstances) return; serverInstances.sort((a, b) => a.name.localeCompare(b.name)); setServers(serverInstances); }, [serverInstances]); const openRcon = (s) => () => { setServer(s); rconToggle(); }; return ( {isLoading && ( Loading Server Information... )} {!isLoading && servers.length === 0 && ( No servers found! )} {!isLoading && servers.map((s, k) => ( ))} ); }