import { BackIcon } from "@/components/Icon"; import { ServerDetailLoading } from "@/components/loading/ServerDetailLoading"; import ServerFlag from "@/components/ServerFlag"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import { useWebSocketContext } from "@/hooks/use-websocket-context"; import { cn, formatNezhaInfo } from "@/lib/utils"; import { NezhaWebsocketResponse } from "@/types/nezha-api"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { formatBytes } from "@/lib/format"; export default function ServerDetailOverview({ server_id, }: { server_id: string; }) { const { t } = useTranslation(); const navigate = useNavigate(); const { lastMessage, readyState } = useWebSocketContext(); if (readyState !== 1) { return ; } const nezhaWsData = lastMessage ? (JSON.parse(lastMessage.data) as NezhaWebsocketResponse) : null; if (!nezhaWsData) { return ; } const server = nezhaWsData.servers.find((s) => s.id === Number(server_id)); if (!server) { return ; } const { name, online, uptime, version } = formatNezhaInfo( nezhaWsData.now, server, ); return (
navigate("/")} className="flex flex-none cursor-pointer font-semibold leading-none items-center break-all tracking-tight gap-0.5 text-xl" > {name}

{t("serverDetail.status")}

{online ? t("serverDetail.online") : t("serverDetail.offline")}

{t("serverDetail.uptime")}

{" "} {online ? (uptime / 86400).toFixed(0) : "N/A"} {"Days"}{" "}

{t("serverDetail.version")}

{version || t("serverDetail.unknown")}{" "}

{t("serverDetail.arch")}

{server.host.arch || t("serverDetail.unknown")}{" "}

{t("serverDetail.mem")}

{formatBytes(server.host.mem_total)}

{t("serverDetail.disk")}

{formatBytes(server.host.disk_total)}

{t("serverDetail.region")}

{server.country_code?.toUpperCase() || t("serverDetail.unknown")}
{server.country_code && ( )}

{t("serverDetail.system")}

{server.host.platform ? (
{" "} {server.host.platform || t("serverDetail.unknown")} -{" "} {server.host.platform_version}{" "}
) : (
{t("serverDetail.unknown")}
)}

{"CPU"}

{server.host.cpu ? (
{server.host.cpu}
) : (
{t("serverDetail.unknown")}
)}

{"Load"}

{server.state.load_1 ? (
{server.state.load_1} / {server.state.load_5} /{" "} {server.state.load_15}
) : (
{t("serverDetail.unknown")}
)}

{t("serverDetail.upload")}

{server.state.net_out_transfer ? (
{" "} {formatBytes(server.state.net_out_transfer)}{" "}
) : (
{t("serverDetail.unknown")}
)}

{t("serverDetail.download")}

{server.state.net_in_transfer ? (
{" "} {formatBytes(server.state.net_in_transfer)}{" "}
) : (
{t("serverDetail.unknown")}
)}
); }