"use client" import { useServerData } from "@/app/lib/server-data-context" import { BackIcon } from "@/components/Icon" import ServerFlag from "@/components/ServerFlag" import { ServerDetailLoading } from "@/components/loading/ServerDetailLoading" import { Badge } from "@/components/ui/badge" import { Card, CardContent } from "@/components/ui/card" import { cn, formatBytes } from "@/lib/utils" import { useTranslations } from "next-intl" import { notFound, useRouter } from "next/navigation" import { useEffect, useState } from "react" export default function ServerDetailClient({ server_id }: { server_id: number }) { const t = useTranslations("ServerDetailClient") const router = useRouter() const [hasHistory, setHasHistory] = useState(false) useEffect(() => { window.scrollTo({ top: 0, left: 0, behavior: "instant" }) }, []) useEffect(() => { const previousPath = sessionStorage.getItem("fromMainPage") if (previousPath) { setHasHistory(true) } }, []) const linkClick = () => { if (hasHistory) { router.back() } else { router.push(`/`) } } const { data: serverList, error, isLoading } = useServerData() const data = serverList?.result?.find((item) => item.id === server_id) if (!data && !isLoading) { notFound() } if (error) { return ( <>

{error.message}

{t("detail_fetch_error_message")}

) } if (!data) return return (
{data?.name}

{t("status")}

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

{t("Uptime")}

{" "} {data?.status.Uptime / 86400 >= 1 ? (data?.status.Uptime / 86400).toFixed(0) + " " + t("Days") : (data?.status.Uptime / 3600).toFixed(0) + " " + t("Hours")}{" "}
{data?.host.Version && (

{t("Version")}

{data?.host.Version}
)} {data?.host.Arch && (

{t("Arch")}

{data?.host.Arch}
)}

{t("Mem")}

{formatBytes(data?.host.MemTotal)}

{t("Disk")}

{formatBytes(data?.host.DiskTotal)}

{t("Region")}

{data?.host.CountryCode.toUpperCase()}
{data?.host.Platform && (

{t("System")}

{" "} {data?.host.Platform} - {data?.host.PlatformVersion}{" "}
)} {data?.host.CPU && (

{t("CPU")}

{data?.host.CPU.join(", ")}
)} {data?.host.GPU && (

{"GPU"}

{data?.host.GPU.join(", ")}
)}

{t("Load")}

{data.status.Load1.toFixed(2) || "0.00"} / {data.status.Load5.toFixed(2) || "0.00"}{" "} / {data.status.Load15.toFixed(2) || "0.00"}

{t("Upload")}

{data.status.NetOutTransfer ? (
{formatBytes(data.status.NetOutTransfer)}
) : (
Unknown
)}

{t("Download")}

{data.status.NetInTransfer ? (
{formatBytes(data.status.NetInTransfer)}
) : (
Unknown
)}
) }