"use client" import { useFilter } from "@/app/context/network-filter-context" import { useServerData } from "@/app/context/server-data-context" import { useStatus } from "@/app/context/status-context" import { Loader } from "@/components/loading/Loader" import { Card, CardContent } from "@/components/ui/card" import getEnv from "@/lib/env-entry" import { cn, formatBytes } from "@/lib/utils" import blogMan from "@/public/blog-man.webp" import { ArrowDownCircleIcon, ArrowUpCircleIcon } from "@heroicons/react/20/solid" import { useTranslations } from "next-intl" import Image from "next/image" export default function ServerOverviewClient() { const { data, error, isLoading } = useServerData() const { status, setStatus } = useStatus() const { filter, setFilter } = useFilter() const t = useTranslations("ServerOverviewClient") const disableCartoon = getEnv("NEXT_PUBLIC_DisableCartoon") === "true" if (error) { const errorInfo = error as any return (

Error status:{errorInfo?.status} {errorInfo.info?.cause ?? errorInfo?.message}

{t("error_message")}

) } return ( <>
{ setFilter(false) setStatus("all") }} className={cn("cursor-pointer hover:border-blue-500 transition-all group")} >

{t("p_816-881_Totalservers")}

{data?.result ? (
{data?.result.length}
) : (
)}
{ setFilter(false) setStatus("online") }} className={cn( "cursor-pointer hover:ring-green-500 ring-1 ring-transparent transition-all", { "ring-green-500 ring-2 border-transparent": status === "online", }, )} >

{t("p_1610-1676_Onlineservers")}

{data?.result ? (
{data?.live_servers}
) : (
)}
{ setFilter(false) setStatus("offline") }} className={cn( "cursor-pointer hover:ring-red-500 ring-1 ring-transparent transition-all", { "ring-red-500 ring-2 border-transparent": status === "offline", }, )} >

{t("p_2532-2599_Offlineservers")}

{data?.result ? (
{data?.offline_servers}
) : (
)}
{ setStatus("all") setFilter(true) }} className={cn( "cursor-pointer hover:ring-purple-500 ring-1 ring-transparent transition-all group", { "ring-purple-500 ring-2 border-transparent": filter === true, }, )} >

{t("network")}

{data?.result ? ( <>

↑{formatBytes(data?.total_out_bandwidth)}

↓{formatBytes(data?.total_in_bandwidth)}

{formatBytes(data?.total_out_speed)}/s

{formatBytes(data?.total_in_speed)}/s

) : (
)}
{!disableCartoon && ( {"Hamster1963"} )}
{data?.result === undefined && !isLoading && (

{t("error_message")}

)} ) }