From 67f70ab7d32cd7ea8321f10ee335b0adb6a1b698 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 6 Jun 2026 19:11:23 +0800 Subject: [PATCH] fix: add service fetching and conditional rendering for service button --- src/pages/Server.tsx | 62 ++++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx index 45b67c5..f8bd8c5 100644 --- a/src/pages/Server.tsx +++ b/src/pages/Server.tsx @@ -20,7 +20,7 @@ import { SORT_TYPES } from "@/context/sort-context"; import { useSort } from "@/hooks/use-sort"; import { useStatus } from "@/hooks/use-status"; import { useWebSocketContext } from "@/hooks/use-websocket-context"; -import { fetchServerGroup } from "@/lib/nezha-api"; +import { fetchServerGroup, fetchService } from "@/lib/nezha-api"; import { cn, formatNezhaInfo } from "@/lib/utils"; import type { NezhaWebsocketResponse, ServerGroup } from "@/types/nezha-api"; @@ -31,6 +31,16 @@ export default function Servers() { queryKey: ["server-group"], queryFn: () => fetchServerGroup(), }); + const { data: serviceData } = useQuery({ + queryKey: ["service"], + queryFn: () => fetchService(), + refetchOnMount: true, + refetchOnWindowFocus: true, + refetchInterval: 10000, + }); + const hasServices = + !!serviceData?.data?.services && + Object.keys(serviceData.data.services).length > 0; const { lastMessage, connected } = useWebSocketContext(); const { status } = useStatus(); const [showServices, setShowServices] = useState("0"); @@ -69,6 +79,12 @@ export default function Servers() { } }, []); + useEffect(() => { + if (!hasServices) { + setShowServices("0"); + } + }, [hasServices]); + useEffect(() => { const checkInlineSettings = () => { const isMobile = window.innerWidth < 768; @@ -305,27 +321,29 @@ export default function Servers() { > - + {hasServices && ( + + )}