From d8bfe5d2b4ec52283b7746c6e997a28b400e6765 Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Fri, 10 Jul 2026 08:01:27 +0800 Subject: [PATCH] Filter dashboard status hosts (#997) --- src/ui/dashboard/DashboardTab.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ui/dashboard/DashboardTab.tsx b/src/ui/dashboard/DashboardTab.tsx index 80ec56c5..9ffe7afe 100644 --- a/src/ui/dashboard/DashboardTab.tsx +++ b/src/ui/dashboard/DashboardTab.tsx @@ -531,6 +531,10 @@ function HostStatusCard({ ); } +function isStatusCheckEnabled(host: Host): boolean { + return host.statsConfig?.statusCheckEnabled !== false; +} + function RecentActivityCard({ activity, hosts, @@ -1283,6 +1287,7 @@ export function DashboardTab({ Map >(new Map()); const viewerSessionsRef = useRef>(new Map()); + const statusCheckHosts = hosts.filter(isStatusCheckEnabled); const fetchMetrics = useCallback(async (hostList: Host[]) => { let statuses: Record = {}; @@ -1342,8 +1347,9 @@ export function DashboardTab({ const load = async () => { const raw = await getSSHHosts().catch(() => []); const mapped = raw.map(sshHostToHost); + const statusHosts = mapped.filter(isStatusCheckEnabled); if (mounted) setHosts(mapped); - fetchMetrics(mapped).catch(() => {}); + fetchMetrics(statusHosts).catch(() => {}); }; load(); @@ -1396,8 +1402,9 @@ export function DashboardTab({ const metricsInterval = setInterval(async () => { const raw = await getSSHHosts().catch(() => []); const mapped = raw.map(sshHostToHost); + const statusHosts = mapped.filter(isStatusCheckEnabled); if (mounted) setHosts(mapped); - fetchMetrics(mapped).catch(() => {}); + fetchMetrics(statusHosts).catch(() => {}); }, 30000); return () => { @@ -1707,7 +1714,7 @@ export function DashboardTab({ )} {slot.id === "host_status" && (