mirror of
https://github.com/hamster1963/nezha-dash.git
synced 2025-04-24 21:10:45 +08:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
"use client";
|
|
|
|
import { ServerApi } from "@/app/types/nezha-api";
|
|
import ServerCard from "@/components/ServerCard";
|
|
import { nezhaFetcher } from "@/lib/utils";
|
|
import useSWR from "swr";
|
|
|
|
export default function ServerListClient() {
|
|
const { data } = useSWR<ServerApi>('/api/server', nezhaFetcher, {
|
|
refreshInterval: 3000,
|
|
});
|
|
if (!data) return null;
|
|
const sortedResult = data.result.sort((a: any, b: any) => a.id - b.id);
|
|
|
|
return (
|
|
<section className={"grid grid-cols-1 gap-2 md:grid-cols-2"}>
|
|
{sortedResult.map(
|
|
(server: any) => (
|
|
<ServerCard
|
|
key={server.id}
|
|
id={server.id}
|
|
cpu={server.status.CPU}
|
|
name={server.name}
|
|
up={server.status.NetOutSpeed / 1024 / 1024}
|
|
down={server.status.NetInSpeed / 1024 / 1024}
|
|
status={server.status.Uptime !== 0 ? "online" : "offline"}
|
|
uptime={server.status.Uptime / 86400}
|
|
mem={(server.status.MemUsed / server.host.MemTotal) * 100}
|
|
stg={server.status.DiskUsed / server.host.DiskTotal}
|
|
/>
|
|
),
|
|
)}
|
|
</section>
|
|
);
|
|
}
|