From 2b854a1934c9cb7f1af7b140440777e411ce2f16 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Wed, 1 Jan 2025 21:10:54 +0800 Subject: [PATCH 01/10] chore: deps --- bun.lockb | Bin 186318 -> 185943 bytes package.json | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bun.lockb b/bun.lockb index a60aeb1908a93cccd000aef0af1cea14509b3a97..f707626f80cd657bfcce4e60a3453f2f931ba53f 100755 GIT binary patch delta 21892 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 XlDsfobSvq#S6tE%=hrLWh}ZuI0YX&& delta 22567 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 G-uy38_;rc^ diff --git a/package.json b/package.json index 2f14608..14b09d9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource/inter": "^5.1.0", + "@fontsource/inter": "^5.1.1", "@heroicons/react": "^2.2.0", "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-checkbox": "^1.1.3", @@ -42,7 +42,7 @@ "prettier-plugin-tailwindcss": "^0.6.9", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-i18next": "^15.2.0", + "react-i18next": "^15.4.0", "react-router-dom": "^7.1.1", "recharts": "^2.15.0", "sonner": "^1.7.1", @@ -51,7 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.2", + "@types/node": "^22.10.3", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", @@ -63,7 +63,7 @@ "postcss": "^8.4.49", "tailwindcss": "^3.4.17", "typescript": "~5.6.3", - "typescript-eslint": "^8.18.2", + "typescript-eslint": "^8.19.0", "vite": "^6.0.6" } } From 0b43a3943d7c23c09dd6f533f227fce8fa4117f6 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Wed, 1 Jan 2025 22:00:28 +0800 Subject: [PATCH 02/10] feat: better group switch --- src/components/GroupSwitch.tsx | 41 ++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/components/GroupSwitch.tsx b/src/components/GroupSwitch.tsx index 144b684..9446785 100644 --- a/src/components/GroupSwitch.tsx +++ b/src/components/GroupSwitch.tsx @@ -1,5 +1,6 @@ import { cn } from "@/lib/utils" import { m } from "framer-motion" +import { createRef, useEffect, useRef } from "react" export default function GroupSwitch({ tabs, @@ -13,16 +14,52 @@ export default function GroupSwitch({ const customBackgroundImage = // @ts-expect-error CustomBackgroundImage is a global variable (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined + + const scrollRef = useRef(null) + const tagRefs = useRef(tabs.map(() => createRef())) + + useEffect(() => { + const container = scrollRef.current + if (!container) return + + const isOverflowing = container.scrollWidth > container.clientWidth + if (!isOverflowing) return + + const onWheel = (e: WheelEvent) => { + e.preventDefault() + container.scrollLeft += e.deltaY + } + + container.addEventListener("wheel", onWheel, { passive: false }) + + return () => { + container.removeEventListener("wheel", onWheel) + } + }, []) + + useEffect(() => { + const currentTagRef = tagRefs.current[tabs.indexOf(currentTab)] + + if (currentTagRef && currentTagRef.current) { + currentTagRef.current.scrollIntoView({ + behavior: "smooth", + block: "nearest", + inline: "center", + }) + } + }, [currentTab]) + return ( -
+
- {tabs.map((tab: string) => ( + {tabs.map((tab: string, index: number) => (
setCurrentTab(tab)} className={cn( "relative cursor-pointer rounded-3xl px-2.5 py-[8px] text-[13px] font-[600] transition-all duration-500", From 1e2c271dc803dcda861b97b5243342fdee6da89f Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 09:38:19 +0800 Subject: [PATCH 03/10] feat: store position --- bun.lockb | Bin 185943 -> 185953 bytes package.json | 6 +++--- src/components/ServerCard.tsx | 9 +++++++-- src/components/ServerCardInline.tsx | 9 +++++++-- src/components/ServerDetailOverview.tsx | 20 +++++++++++++++++++- 5 files changed, 36 insertions(+), 8 deletions(-) diff --git a/bun.lockb b/bun.lockb index f707626f80cd657bfcce4e60a3453f2f931ba53f..cb015a0e94052aa764e8b8aa00abd10b1083eac4 100755 GIT binary patch delta 10687 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 { + sessionStorage.setItem("fromMainPage", "true") + navigate(`/server/${serverInfo.id}`) + } + const showFlag = true const customBackgroundImage = @@ -46,7 +51,7 @@ export default function ServerCard({ now, serverInfo }: { now: number; serverInf "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
navigate(`/server/${serverInfo.id}`, { replace: true })} + onClick={cardClick} >
{ + sessionStorage.setItem("fromMainPage", "true") + navigate(`/server/${serverInfo.id}`) + } + const showFlag = true const customBackgroundImage = @@ -37,7 +42,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
@@ -121,7 +126,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser "bg-card/70": customBackgroundImage, }, )} - onClick={() => navigate(`/server/${serverInfo.id}`)} + onClick={cardClick} >
diff --git a/src/components/ServerDetailOverview.tsx b/src/components/ServerDetailOverview.tsx index 8b3966a..facc583 100644 --- a/src/components/ServerDetailOverview.tsx +++ b/src/components/ServerDetailOverview.tsx @@ -7,6 +7,7 @@ import { useWebSocketContext } from "@/hooks/use-websocket-context" import { formatBytes } from "@/lib/format" import { cn, formatNezhaInfo } from "@/lib/utils" import { NezhaWebsocketResponse } from "@/types/nezha-api" +import { useEffect, useState } from "react" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" @@ -16,12 +17,29 @@ export default function ServerDetailOverview({ server_id }: { server_id: string const { t } = useTranslation() const navigate = useNavigate() + const [hasHistory, setHasHistory] = useState(false) + + useEffect(() => { + const previousPath = sessionStorage.getItem("fromMainPage") + if (previousPath) { + setHasHistory(true) + } + }, []) + const { lastMessage, connected } = useWebSocketContext() if (!connected && !lastMessage) { return } + const linkClick = () => { + if (hasHistory) { + navigate(-1) + } else { + navigate("/") + } + } + const nezhaWsData = lastMessage ? (JSON.parse(lastMessage.data) as NezhaWebsocketResponse) : null if (!nezhaWsData) { @@ -66,7 +84,7 @@ export default function ServerDetailOverview({ server_id }: { server_id: string })} >
navigate("/")} + onClick={linkClick} className="flex flex-none cursor-pointer font-semibold leading-none items-center break-all tracking-tight gap-1 text-xl server-name" > From 2f021237877b73ebb156e89c653a8b94655eac0a Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 10:00:07 +0800 Subject: [PATCH 04/10] feat: save group selected --- src/components/GroupSwitch.tsx | 7 +++++++ src/components/Header.tsx | 8 +++++++- src/pages/Server.tsx | 29 +++++++++++++++++++++++++---- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/components/GroupSwitch.tsx b/src/components/GroupSwitch.tsx index 9446785..0298634 100644 --- a/src/components/GroupSwitch.tsx +++ b/src/components/GroupSwitch.tsx @@ -37,6 +37,13 @@ export default function GroupSwitch({ } }, []) + useEffect(() => { + const savedGroup = sessionStorage.getItem("selectedGroup") + if (savedGroup && tabs.includes(savedGroup)) { + setCurrentTab(savedGroup) + } + }, [tabs, setCurrentTab]) + useEffect(() => { const currentTagRef = tagRefs.current[tabs.indexOf(currentTab)] diff --git a/src/components/Header.tsx b/src/components/Header.tsx index c77f5fe..6a9f6f3 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -60,7 +60,13 @@ function Header() { return (
-
navigate("/")} className="cursor-pointer flex items-center sm:text-base text-sm font-medium"> +
{ + sessionStorage.removeItem("selectedGroup") + navigate("/") + }} + className="cursor-pointer flex items-center sm:text-base text-sm font-medium" + >
("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") @@ -39,6 +40,19 @@ export default function Servers() { // @ts-expect-error CustomBackgroundImage is a global variable (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined + const restoreScrollPosition = () => { + const savedPosition = sessionStorage.getItem("scrollPosition") + if (savedPosition && containerRef.current) { + containerRef.current.scrollTop = Number(savedPosition) + } + } + + const handleTagChange = (newGroup: string) => { + setCurrentGroup(newGroup) + sessionStorage.setItem("selectedGroup", newGroup) + sessionStorage.setItem("scrollPosition", String(containerRef.current?.scrollTop || 0)) + } + useEffect(() => { const showServicesState = localStorage.getItem("showServices") if (showServicesState !== null) { @@ -53,6 +67,13 @@ export default function Servers() { } }, []) + useEffect(() => { + const savedGroup = sessionStorage.getItem("selectedGroup") || "All" + setCurrentGroup(savedGroup) + + restoreScrollPosition() + }, []) + const groupTabs = ["All", ...(groupData?.data?.map((item: ServerGroup) => item.group.name) || [])] if (!connected && !lastMessage) { @@ -233,7 +254,7 @@ export default function Servers() { > - +
@@ -306,14 +327,14 @@ export default function Servers() { {showMap === "1" && } {showServices === "1" && } {inline === "1" && ( -
+
{filteredServers.map((serverInfo) => ( ))}
)} {inline === "0" && ( -
+
{filteredServers.map((serverInfo) => ( ))} From 6fbadb7d6cca33e169924a08d73d37bad5e0a629 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Fri, 3 Jan 2025 10:16:17 +0800 Subject: [PATCH 05/10] fix: network unit error --- src/components/ServerCardInline.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ServerCardInline.tsx b/src/components/ServerCardInline.tsx index 0c2d3b1..68d1c99 100644 --- a/src/components/ServerCardInline.tsx +++ b/src/components/ServerCardInline.tsx @@ -102,7 +102,7 @@ export default function ServerCardInline({ now, serverInfo }: { now: number; ser

{t("serverCard.download")}

- {down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : up >= 1 ? `${down.toFixed(2)}M/s` : `${(down * 1024).toFixed(2)}K/s`} + {down >= 1024 ? `${(down / 1024).toFixed(2)}G/s` : down >= 1 ? `${down.toFixed(2)}M/s` : `${(down * 1024).toFixed(2)}K/s`}
From 1b0d88c8bfb54f4caba0778aeb77c66144075a66 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 3 Jan 2025 07:08:41 +0000 Subject: [PATCH 06/10] Translated using Weblate (German) Currently translated at 100.0% (86 of 86 strings) Co-authored-by: Barium Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/nezha/user-frontend/de/ Translation: Nezha/User frontend --- src/locales/de/translation.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index d5c5230..4cf9c43 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -115,5 +115,6 @@ }, "footer": { "themeBy": "Design von " - } + }, + "login": "Login" } From 4827a591ac2727e1f722a99b177dd0667548f8a6 Mon Sep 17 00:00:00 2001 From: weblate Date: Fri, 3 Jan 2025 07:09:06 +0000 Subject: [PATCH 07/10] chore: auto-fix linting and formatting issues --- bun.lockb | Bin 185953 -> 185953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index cb015a0e94052aa764e8b8aa00abd10b1083eac4..05825378530d5ad3065f3a6af4b913c70f9cfbe6 100755 GIT binary patch delta 592 zcmXZZ%PWLY7{~GRjHX0WEM_5D$O36d21RZgrIf5KCN@^e{XX~u+%1kUtZ8;=R#wBz zyyJeGVGJ7A*jQMR@SQllpPpZ*&eQXr6LTlW+{t4blH-*+o$HnIv}yIX=0qtzWx*s8 zJx;Hzn5@etrCeA-3mjG*R`hVH z1ML`&cR(My(2YS1UgqbU(orV;o#$Rs&8=D@}wn;m|}64&s0aBDEw0H!c!!cCa0sB=)`d1MDOtDCbIVNKa0s z?XUK&rAkw4xN;$aZliQN(m3E!yl}g);QYsmXq7*|}FbCyv zcxA(6T{9`=#5$VMiZ)&BlV-i-lME@)E}xVaTqY@Xg%HBH#tkC4MHF|qM@(D%l9TyL zr8m6e3D1b*0gt-TFZo$}#C`bShk-tN8^9ojwbL&Rwib%Ep&fOoKqYFlIUpTXU7YGh z4|)?7(2oHOVhF<+!6?Syz&IwfD7$Ueq7$I#AO18yGT*nF)b!kxS<}Kp3?hHzK`YLe&iP?os&rVQk)5PxiiAaM; KnWsJ~*6)8_9e$ty From 52dc3cffde68b5a9a8e00999db06c351b814a2ff Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 4 Jan 2025 17:11:21 +0800 Subject: [PATCH 08/10] chore: deps --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e52efe7..5fcebaf 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", - "@tanstack/react-query": "^5.62.11", - "@tanstack/react-query-devtools": "^5.62.11", + "@tanstack/react-query": "^5.62.14", + "@tanstack/react-query-devtools": "^5.62.14", "@tanstack/react-table": "^8.20.6", "@trivago/prettier-plugin-sort-imports": "^5.2.1", "@types/d3-geo": "^3.1.0", @@ -51,7 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.4", + "@types/node": "^22.10.5", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", From c565e2728e011df5a666b8c058f6d221b0987c90 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Sat, 4 Jan 2025 17:11:44 +0800 Subject: [PATCH 09/10] fix: build --- bun.lockb | Bin 185953 -> 185954 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 05825378530d5ad3065f3a6af4b913c70f9cfbe6..e09c2e01f4033ceb314ed710e226831036cac5fc 100755 GIT binary patch delta 10898 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 F{2#7(H+cX6 delta 10672 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 Date: Sat, 4 Jan 2025 17:13:00 +0800 Subject: [PATCH 10/10] feat: open dashboard on the same page --- src/components/Header.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 6a9f6f3..4af0483 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -224,7 +224,6 @@ function DashboardLink() {