From 35a6f8b4aa2764ea895a7547516c3a305ab2c565 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Thu, 17 Jul 2025 11:09:14 -0500 Subject: [PATCH] Live monitoring fix --- src/app/api/servers/servers.ts | 1 + src/app/dashboard/page.tsx | 4 +--- src/app/servers/Map.tsx | 26 +++++++++++++------------- src/app/servers/page.tsx | 11 ++++++++++- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/app/api/servers/servers.ts b/src/app/api/servers/servers.ts index bfb3b7d..248e309 100644 --- a/src/app/api/servers/servers.ts +++ b/src/app/api/servers/servers.ts @@ -6,6 +6,7 @@ export const useServer = (server: ServerAPI, index: number) => { ws.onmessage = (msg) => { try { if (deletes.has(index) || !currentServers[index]) { + deletes.delete(index); ws.close(); return; } diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index fc994e1..e70cade 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -76,11 +76,9 @@ export default function Dashboard() { useEffect(() => { getServers(); const interval = setInterval(() => { - console.log("Refreshing servers data..."); getServers(); }, 3000); - - // Cleanup on unmount + return () => clearInterval(interval); }, [session]); diff --git a/src/app/servers/Map.tsx b/src/app/servers/Map.tsx index 9f7ac13..c3ddf4e 100644 --- a/src/app/servers/Map.tsx +++ b/src/app/servers/Map.tsx @@ -24,7 +24,7 @@ export default function Map({ servers }: { servers: Server[] }) { const mapContainer = useRef(null); const map = useRef(null); const markers = useRef([]); - const [sheet, setSheet] = useState(); + const [sheet, setSheet] = useState(); // Initialize map only once useEffect(() => { @@ -57,14 +57,14 @@ export default function Map({ servers }: { servers: Server[] }) { markers.current = []; // Add new markers - servers.forEach((server) => { + servers.forEach((server, i) => { if (server.coordinates) { const marker = new maplibregl.Marker({ color: "#ff3e00" }) .setLngLat(server.coordinates) .addTo(map.current!); marker.getElement().addEventListener("click", () => { - setSheet(server); + setSheet(i); }); markers.current.push(marker); @@ -75,7 +75,7 @@ export default function Map({ servers }: { servers: Server[] }) { return (
setSheet(undefined)}> - {sheet && ( + {sheet != undefined && (
@@ -83,15 +83,15 @@ export default function Map({ servers }: { servers: Server[] }) {
- {sheet.name} + {servers[sheet].name} - {sheet.status[0].toUpperCase() + sheet.status.slice(1)}{" "} + {servers[sheet].status[0].toUpperCase() + servers[sheet].status.slice(1)}{" "} {" ยท "} - {sheet.ip} - {sheet.location && ( + {servers[sheet].ip} + {servers[sheet].location && ( - {sheet.location} + {servers[sheet].location} )} @@ -100,25 +100,25 @@ export default function Map({ servers }: { servers: Server[] }) {
([]); const [serversQuery, setServersQuery] = useState(""); - useEffect(() => { + const getServers = () => { if (!session) return; session.getServers().then((servers) => { setServers(servers); }); + }; + + useEffect(() => { + getServers(); + const interval = setInterval(() => { + getServers(); + }, 3000); + + return () => clearInterval(interval); }, [session]); useEffect(() => {