"use client" import { useServerData } from "@/app/context/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, formatNezhaInfo } from "@/lib/utils" import countries from "i18n-iso-countries" import enLocale from "i18n-iso-countries/langs/en.json" import { useTranslations } from "next-intl" import { notFound, useRouter } from "next/navigation" import { useEffect, useState } from "react" countries.registerLocale(enLocale) 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 serverData = serverList?.result?.find((item) => item.id === server_id) if (!serverData && !isLoading) { notFound() } if (error) { return ( <>
{error.message}
{t("detail_fetch_error_message")}
{t("status")}
{t("Uptime")}
{t("Version")}
{t("Arch")}
{t("Mem")}
{t("Disk")}
{t("Region")}
{t("System")}
{t("CPU")}
{"GPU"}
{t("Load")}
{t("Upload")}
{net_out_transfer ? ({t("Download")}
{net_in_transfer ? ({t("LastActive")}