From d5620259458f09c33e131b4a28f15bf4d31c894f Mon Sep 17 00:00:00 2001 From: kuusei Date: Sun, 28 Jul 2024 21:08:27 +0800 Subject: [PATCH 1/2] improve: ServerCard --- .../ClientComponents/ServerListClient.tsx | 17 +-- bun.lockb | Bin 406649 -> 407644 bytes components/ServerCard.tsx | 101 +++++++----------- components/ServerPopover.tsx | 35 ++++++ components/ui/popover.tsx | 31 ++++++ lib/utils.ts | 13 +++ package.json | 1 + 7 files changed, 122 insertions(+), 76 deletions(-) create mode 100644 components/ServerPopover.tsx create mode 100644 components/ui/popover.tsx diff --git a/app/(main)/ClientComponents/ServerListClient.tsx b/app/(main)/ClientComponents/ServerListClient.tsx index d899f4e..81f8e8e 100644 --- a/app/(main)/ClientComponents/ServerListClient.tsx +++ b/app/(main)/ClientComponents/ServerListClient.tsx @@ -10,24 +10,13 @@ export default function ServerListClient() { refreshInterval: 3000, }); if (!data) return null; - const sortedResult = data.result.sort((a: any, b: any) => a.id - b.id); + const sortedResult = data.result.sort((a, b) => a.id - b.id); const timestamp = Date.now() / 1000; return (
- {sortedResult.map((server: any) => ( - 300 ? "offline" : "online"} - uptime={server.status.Uptime / 86400} - mem={(server.status.MemUsed / server.host.MemTotal) * 100} - stg={(server.status.DiskUsed / server.host.DiskTotal) * 100} - /> + {sortedResult.map((serverInfo) => ( + ))}
); diff --git a/bun.lockb b/bun.lockb index 113abeb9e012407befd121e809d01d532615897f..d1e58451ead1b8b0f59b8a0b5dd89fe21ce4e995 100755 GIT binary patch delta 79581 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%0D<`D6 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 diff --git a/components/ServerCard.tsx b/components/ServerCard.tsx index 6120137..fd41c84 100644 --- a/components/ServerCard.tsx +++ b/components/ServerCard.tsx @@ -1,62 +1,43 @@ -import React from "react"; - +import { NezhaAPISafe } from "@/app/types/nezha-api"; import ServerUsageBar from "@/components/ServerUsageBar"; import { Card } from "@/components/ui/card"; import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@/components/ui/tooltip"; - -type ServerCardProps = { - id: number; - status: string; - name: string; - uptime: number; - cpu: number; - mem: number; - stg: number; - up: number; - down: number; -}; + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; +import { formatNezhaInfo } from "@/lib/utils"; +import ServerCardPopover from "./ServerPopover"; export default function ServerCard({ - status, - name, - uptime, - cpu, - mem, - stg, - up, - down, -}: ServerCardProps) { - return status === "online" ? ( + timestamp, + serverInfo, +}: { + timestamp: number; + serverInfo: NezhaAPISafe; +}) { + const { name, online, cpu, up, down, mem, stg, ...props } = formatNezhaInfo( + timestamp, + serverInfo, + ); + + return online === "online" ? ( - - - -
- -

- {name} -

-
-
- -
-
Hostname: {name}
-
Online: {uptime.toFixed(0)} Days
-
-
-
-
+ + +
+ +

{name}

+
+
+ + + +

CPU

@@ -89,19 +70,15 @@ export default function ServerCard({ "flex flex-col items-center justify-start gap-3 p-3 md:px-5 lg:flex-row" } > - - - -
- -

{name}

-
-
- Offline -
-
+ + +
+ +

{name}

+
+
+ Offline +
); } diff --git a/components/ServerPopover.tsx b/components/ServerPopover.tsx new file mode 100644 index 0000000..f25f5a2 --- /dev/null +++ b/components/ServerPopover.tsx @@ -0,0 +1,35 @@ +import { NezhaAPISafe } from "@/app/types/nezha-api"; +import { formatBytes } from "@/lib/utils"; + +export default function ServerCardPopover({ + host, + status, +}: { + host: NezhaAPISafe["host"]; + status: NezhaAPISafe["status"]; +}) { + return ( +
+
+ System: {host.Platform}-{host.PlatformVersion} [{host.Virtualization}:{" "} + {host.Arch}] +
+
CPU: [{host.CPU.map((item) => item).join(", ")}]
+
+ STG: {formatBytes(status.DiskUsed)}/{formatBytes(host.DiskTotal)} +
+
+ Mem: {formatBytes(status.MemUsed)}/{formatBytes(host.MemTotal)} +
+
+ Swap: {formatBytes(status.SwapUsed)}/{formatBytes(host.SwapTotal)} +
+
+
+ Load: {status.Load1.toFixed(2)}/{status.Load5.toFixed(2)}/ + {status.Load15.toFixed(2)} +
+
Online: {(status.Uptime / 86400).toFixed(0)} Days
+
+ ); +} diff --git a/components/ui/popover.tsx b/components/ui/popover.tsx new file mode 100644 index 0000000..a0ec48b --- /dev/null +++ b/components/ui/popover.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import * as PopoverPrimitive from "@radix-ui/react-popover" + +import { cn } from "@/lib/utils" + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent } diff --git a/lib/utils.ts b/lib/utils.ts index 6dcf264..e3a7514 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -1,3 +1,4 @@ +import { NezhaAPISafe } from "@/app/types/nezha-api"; import { type ClassValue, clsx } from "clsx"; import { twMerge } from "tailwind-merge"; @@ -5,6 +6,18 @@ export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } +export function formatNezhaInfo(timestamp: number, serverInfo: NezhaAPISafe) { + return { + ...serverInfo, + cpu: serverInfo.status.CPU, + up: serverInfo.status.NetOutSpeed / 1024 / 1024, + down: serverInfo.status.NetInSpeed / 1024 / 1024, + online: timestamp - serverInfo.last_active > 300 ? "offline" : "online", + mem: (serverInfo.status.MemUsed / serverInfo.host.MemTotal) * 100, + stg: (serverInfo.status.DiskUsed / serverInfo.host.DiskTotal) * 100, + } +} + export function formatBytes(bytes: number, decimals: number = 2) { if (!+bytes) return "0 Bytes"; diff --git a/package.json b/package.json index 9bcef28..17b36e6 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-navigation-menu": "^1.1.4", + "@radix-ui/react-popover": "^1.1.1", "@radix-ui/react-progress": "^1.0.3", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.0.2", From 207c3680f2f7918c95b64399eda9a5a515b78925 Mon Sep 17 00:00:00 2001 From: kuusei Date: Sun, 28 Jul 2024 22:25:36 +0800 Subject: [PATCH 2/2] improve: ServerCardPopover style --- components/ServerCard.tsx | 2 +- components/ServerCardPopover.tsx | 68 ++++++++++++++++++++++++++++++++ components/ServerPopover.tsx | 35 ---------------- 3 files changed, 69 insertions(+), 36 deletions(-) create mode 100644 components/ServerCardPopover.tsx delete mode 100644 components/ServerPopover.tsx diff --git a/components/ServerCard.tsx b/components/ServerCard.tsx index fd41c84..3a93215 100644 --- a/components/ServerCard.tsx +++ b/components/ServerCard.tsx @@ -7,7 +7,7 @@ import { PopoverTrigger, } from "@/components/ui/popover"; import { formatNezhaInfo } from "@/lib/utils"; -import ServerCardPopover from "./ServerPopover"; +import ServerCardPopover from "./ServerCardPopover"; export default function ServerCard({ timestamp, diff --git a/components/ServerCardPopover.tsx b/components/ServerCardPopover.tsx new file mode 100644 index 0000000..aab2299 --- /dev/null +++ b/components/ServerCardPopover.tsx @@ -0,0 +1,68 @@ +import { NezhaAPISafe } from "@/app/types/nezha-api"; +import { cn, formatBytes } from "@/lib/utils"; + +export function ServerCardPopoverCard({ + className, + title, + content, + children, +}: { + className?: string; + title: string; + content?: string; + children?: React.ReactNode; +}) { + return ( +
+
{title}
+ {children ? children :
{content}
} +
+
+ ); +} + +export default function ServerCardPopover({ + host, + status, +}: { + host: NezhaAPISafe["host"]; + status: NezhaAPISafe["status"]; +}) { + return ( +
+ + item).join(", ")}`} + /> + + + + + + +
+ ); +} diff --git a/components/ServerPopover.tsx b/components/ServerPopover.tsx deleted file mode 100644 index f25f5a2..0000000 --- a/components/ServerPopover.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { NezhaAPISafe } from "@/app/types/nezha-api"; -import { formatBytes } from "@/lib/utils"; - -export default function ServerCardPopover({ - host, - status, -}: { - host: NezhaAPISafe["host"]; - status: NezhaAPISafe["status"]; -}) { - return ( -
-
- System: {host.Platform}-{host.PlatformVersion} [{host.Virtualization}:{" "} - {host.Arch}] -
-
CPU: [{host.CPU.map((item) => item).join(", ")}]
-
- STG: {formatBytes(status.DiskUsed)}/{formatBytes(host.DiskTotal)} -
-
- Mem: {formatBytes(status.MemUsed)}/{formatBytes(host.MemTotal)} -
-
- Swap: {formatBytes(status.SwapUsed)}/{formatBytes(host.SwapTotal)} -
-
-
- Load: {status.Load1.toFixed(2)}/{status.Load5.toFixed(2)}/ - {status.Load15.toFixed(2)} -
-
Online: {(status.Uptime / 86400).toFixed(0)} Days
-
- ); -}