diff --git a/src/components/CycleTransferStats.tsx b/src/components/CycleTransferStats.tsx index 612f178..814fafb 100644 --- a/src/components/CycleTransferStats.tsx +++ b/src/components/CycleTransferStats.tsx @@ -1,14 +1,21 @@ -import { CycleTransferStats } from "@/types/nezha-api" +import { CycleTransferStats, NezhaServer } from "@/types/nezha-api" import React from "react" import { CycleTransferStatsClient } from "./CycleTransferStatsClient" interface CycleTransferStatsProps { + serverList: NezhaServer[] cycleStats: CycleTransferStats className?: string } -export const CycleTransferStatsCard: React.FC = ({ cycleStats, className }) => { +export const CycleTransferStatsCard: React.FC = ({ serverList, cycleStats, className }) => { + if (serverList.length === 0) { + return null + } + + const serverIdList = serverList.map((server) => server.id.toString()) + return (
{Object.entries(cycleStats).map(([cycleId, cycleData]) => { @@ -20,6 +27,10 @@ export const CycleTransferStatsCard: React.FC = ({ cycl const transfer = cycleData.transfer?.[serverId] || 0 const nextUpdate = cycleData.next_update?.[serverId] + if (!serverIdList.includes(serverId)) { + return null + } + if (!transfer && !nextUpdate) { return null } diff --git a/src/components/ServiceTracker.tsx b/src/components/ServiceTracker.tsx index 16ccc42..4efbb2f 100644 --- a/src/components/ServiceTracker.tsx +++ b/src/components/ServiceTracker.tsx @@ -1,15 +1,14 @@ import { fetchService } from "@/lib/nezha-api" -import { ServiceData } from "@/types/nezha-api" +import { NezhaServer, ServiceData } from "@/types/nezha-api" import { ExclamationTriangleIcon } from "@heroicons/react/20/solid" import { useQuery } from "@tanstack/react-query" -import React from "react" import { useTranslation } from "react-i18next" import { CycleTransferStatsCard } from "./CycleTransferStats" import ServiceTrackerClient from "./ServiceTrackerClient" import { Loader } from "./loading/Loader" -export const ServiceTracker: React.FC = () => { +export function ServiceTracker({ serverList }: { serverList: NezhaServer[] }) { const { t } = useTranslation() const { data: serviceData, isLoading } = useQuery({ queryKey: ["service"], @@ -56,7 +55,7 @@ export const ServiceTracker: React.FC = () => {
{serviceData.data.cycle_transfer_stats && (
- +
)} {serviceData.data.services && Object.keys(serviceData.data.services).length > 0 && ( diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx index 6189467..08e0e16 100644 --- a/src/pages/Server.tsx +++ b/src/pages/Server.tsx @@ -304,7 +304,7 @@ export default function Servers() {
{showMap === "1" && } - {showServices === "1" && } + {showServices === "1" && } {inline === "1" && (
{filteredServers.map((serverInfo) => (