From 12d0323d582d47a0dd7105d5119f953b6ae1f8cf Mon Sep 17 00:00:00 2001 From: wood chen Date: Sat, 19 Apr 2025 14:40:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20ServerCardInline=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=9B=B4=E6=96=B0=20Server=20?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=BB=A5=E7=AE=80=E5=8C=96=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8D=A1=E7=89=87=E5=B1=95=E7=A4=BA=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=B8=83=E5=B1=80=EF=BC=8C=E6=8F=90=E5=8D=87=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BD=93=E9=AA=8C=E5=92=8C=E5=8F=AF=E8=AF=BB=E6=80=A7?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ServerCardInline.tsx | 235 ---------------------------- src/pages/Server.tsx | 78 ++------- 2 files changed, 11 insertions(+), 302 deletions(-) delete mode 100644 src/components/ServerCardInline.tsx diff --git a/src/components/ServerCardInline.tsx b/src/components/ServerCardInline.tsx deleted file mode 100644 index f742999..0000000 --- a/src/components/ServerCardInline.tsx +++ /dev/null @@ -1,235 +0,0 @@ -import ServerFlag from "@/components/ServerFlag" -import ServerUsageBar from "@/components/ServerUsageBar" -import { formatBytes, formatUptime } from "@/lib/format" -import { GetFontLogoClass, GetOsName, MageMicrosoftWindows } from "@/lib/logo-class" -import { cn, formatNezhaInfo, parsePublicNote } from "@/lib/utils" -import { NezhaServer } from "@/types/nezha-api" -import { useTranslation } from "react-i18next" -import { useNavigate } from "react-router-dom" - -import PlanInfo from "./PlanInfo" -import BillingInfo from "./billingInfo" -import { Card } from "./ui/card" -import { Separator } from "./ui/separator" -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip" - -export default function ServerCardInline({ now, serverInfo }: { now: number; serverInfo: NezhaServer }) { - const { t } = useTranslation() - const navigate = useNavigate() - const { - name, - country_code, - online, - cpu, - up, - down, - mem, - stg, - platform, - uptime, - net_in_transfer, - net_out_transfer, - public_note, - cpu_info, - mem_total, - disk_total, - tcp, - udp, - process - } = formatNezhaInfo( - now, - serverInfo, - ) - - const cardClick = () => { - sessionStorage.setItem("fromMainPage", "true") - navigate(`/server/${serverInfo.id}`) - } - - const showFlag = true - - const customBackgroundImage = (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined - - // @ts-expect-error ShowServerDetails is a global variable - const showServerDetails = window.ShowServerDetails !== undefined ? window.ShowServerDetails as boolean : true - - const parsedData = parsePublicNote(public_note) - - return online ? ( -
- -
- -
- {showFlag ? : null} -
-
-

{name}

- {parsedData?.billingDataMod && } -
-
- -
-
-
-
- {platform.includes("Windows") ? ( - - ) : ( -

- )} -

-
-

{t("serverCard.system")}

-
{platform.includes("Windows") ? "Windows" : GetOsName(platform)}
-
-
-
-

{t("serverCard.uptime")}

-
- {uptime / 86400 >= 1 - ? `${(uptime / 86400).toFixed(0)} ${t("serverCard.days")}` - : `${(uptime / 3600).toFixed(0)} ${t("serverCard.hours")}`} -
-
-
-

{"CPU"}

-
{cpu.toFixed(2)}%
- -
-
-

{t("serverCard.mem")}

-
{mem.toFixed(2)}%
- -
-
-

{t("serverCard.stg")}

-
{stg.toFixed(2)}%
- -
-
-

{t("serverCard.upload")}

-
- {up >= 1024 ? `${(up / 1024).toFixed(2)}G/s` : up >= 1 ? `${up.toFixed(2)}M/s` : `${(up * 1024).toFixed(2)}K/s`} -
-
-
-

{t("serverCard.download")}

-
- {down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : down >= 1 ? `${down.toFixed(2)}M/s` : `${(down * 1024).toFixed(2)}K/s`} -
-
-
-

{t("serverCard.totalUpload")}

-
{formatBytes(net_out_transfer)}
-
-
-

{t("serverCard.totalDownload")}

-
{formatBytes(net_in_transfer)}
-
-
- - {/* 服务器详细信息标签和 PlanInfo */} -
- {showServerDetails && ( - <> - {/* 第一行:运行时间、CPU、内存、硬盘 */} -
- {uptime > 0 && ( -

- {t("serverCard.uptime")}: {formatUptime(uptime, t)} -

- )} - - {cpu_info && cpu_info.length > 0 && ( - - - -

- {cpu_info[0].includes("Physical") ? "pCPU: " : "vCPU: "} - {cpu_info[0].match(/(\d+)\s+(?:Physical|Virtual)\s+Core/)?.[1] || "?"} -

-
- - {cpu_info.join(", ")} - -
-
- )} - - {mem_total > 0 && ( -

- {t("serverCard.mem")}: {formatBytes(mem_total)} -

- )} - - {disk_total > 0 && ( -

- {t("serverCard.stg")}: {formatBytes(disk_total)} -

- )} -
- - {/* 第二行:TCP、UDP、进程数,以及 PlanInfo */} -
-
- {tcp > 0 && ( -

- TCP: {tcp} -

- )} - - {udp > 0 && ( -

- UDP: {udp} -

- )} - - {process > 0 && ( -

- {t("serverDetailChart.process")}: {process} -

- )} -
- - {parsedData?.planDataMod && } -
- - )} -
-
-
-
- ) : ( - -
- -
- {showFlag ? : null} -
-
-

{name}

- {parsedData?.billingDataMod && } -
-
- - {parsedData?.planDataMod && } -
- ) -} diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx index 6d018cd..1a393aa 100644 --- a/src/pages/Server.tsx +++ b/src/pages/Server.tsx @@ -1,7 +1,6 @@ import GlobalMap from "@/components/GlobalMap" import GroupSwitch from "@/components/GroupSwitch" import ServerCard from "@/components/ServerCard" -import ServerCardInline from "@/components/ServerCardInline" import ServerOverview from "@/components/ServerOverview" import { ServiceTracker } from "@/components/ServiceTracker" import { Loader } from "@/components/loading/Loader" @@ -16,7 +15,7 @@ import { fetchServerGroup, fetchService } from "@/lib/nezha-api" import { cn, formatNezhaInfo } from "@/lib/utils" import { NezhaWebsocketResponse } from "@/types/nezha-api" import { ServerGroup } from "@/types/nezha-api" -import { ArrowDownIcon, ArrowUpIcon, ArrowsUpDownIcon, ChartBarSquareIcon, MapIcon, ViewColumnsIcon } from "@heroicons/react/20/solid" +import { ArrowDownIcon, ArrowUpIcon, ArrowsUpDownIcon, ChartBarSquareIcon, MapIcon } from "@heroicons/react/20/solid" import { useQuery } from "@tanstack/react-query" import { useEffect, useRef, useState } from "react" import { useTranslation } from "react-i18next" @@ -32,7 +31,6 @@ export default function Servers() { const { status } = useStatus() const [showServices, setShowServices] = useState("0") const [showMap, setShowMap] = useState("0") - const [inline, setInline] = useState("0") const containerRef = useRef(null) const [settingsOpen, setSettingsOpen] = useState(false) const [currentGroup, setCurrentGroup] = useState("All") @@ -64,29 +62,6 @@ export default function Servers() { } }, []) - useEffect(() => { - const checkInlineSettings = () => { - const isMobile = window.innerWidth < 768 - - if (!isMobile) { - const inlineState = localStorage.getItem("inline") - if (window.ForceCardInline) { - setInline("1") - } else if (inlineState !== null) { - setInline(inlineState) - } - } - } - - checkInlineSettings() - - window.addEventListener("resize", checkInlineSettings) - - return () => { - window.removeEventListener("resize", checkInlineSettings) - } - }, []) - useEffect(() => { const showMapState = localStorage.getItem("showMap") if (window.ForceShowMap) { @@ -296,28 +271,6 @@ export default function Servers() { })} /> - @@ -381,25 +334,16 @@ export default function Servers() { {showMap === "1" && } {showServices === "1" && } - {inline === "1" && ( -
- {filteredServers.map((serverInfo) => ( - - ))} -
- )} - {inline === "0" && ( -
- {filteredServers.map((serverInfo) => ( - - ))} -
- )} +
+ {filteredServers.map((serverInfo) => ( + + ))} +
) }