"use client"; import { ServerDetailLoading } from "@/app/[locale]/(main)/ClientComponents/ServerDetailLoading"; import { NezhaAPISafe } from "@/app/[locale]/types/nezha-api"; import { BackIcon } from "@/components/Icon"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import getEnv from "@/lib/env-entry"; import { cn, formatBytes, nezhaFetcher } from "@/lib/utils"; import { useLocale, useTranslations } from "next-intl"; import { useRouter } from "next/navigation"; import useSWR from "swr"; export default function ServerDetailClient({ server_id, }: { server_id: number; }) { const t = useTranslations("ServerDetailClient"); const router = useRouter(); const locale = useLocale(); const { data, error } = useSWR( `/api/detail?server_id=${server_id}`, nezhaFetcher, { refreshInterval: Number(getEnv("NEXT_PUBLIC_NezhaFetchInterval")) || 5000, }, ); if (error) { return ( <>

{error.message}

{t("detail_fetch_error_message")}

); } if (!data) return ; return (
{ router.push(`/${locale}/`); }} className="flex flex-none cursor-pointer font-semibold leading-none items-center break-all tracking-tight gap-0.5 text-xl" > {data?.name}

{t("status")}

{data?.online_status ? t("Online") : t("Offline")}

{t("Uptime")}

{" "} {(data?.status.Uptime / 86400).toFixed(0)} {t("Days")}{" "}

{t("Version")}

{data?.host.Version || "Unknown"}

{t("Arch")}

{data?.host.Arch || "Unknown"}

{t("Mem")}

{formatBytes(data?.host.MemTotal)}

{t("Disk")}

{formatBytes(data?.host.DiskTotal)}

{t("System")}

{data?.host.Platform ? (
{" "} {data?.host.Platform || "Unknown"} -{" "} {data?.host.PlatformVersion}{" "}
) : (
Unknown
)}

{t("CPU")}

{data?.host.CPU ? (
{data?.host.CPU}
) : (
Unknown
)}
); }