diff --git a/bun.lockb b/bun.lockb index f707626..cb015a0 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 14b09d9..e52efe7 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@tanstack/react-query": "^5.62.11", "@tanstack/react-query-devtools": "^5.62.11", "@tanstack/react-table": "^8.20.6", - "@trivago/prettier-plugin-sort-imports": "^5.2.0", + "@trivago/prettier-plugin-sort-imports": "^5.2.1", "@types/d3-geo": "^3.1.0", "@types/luxon": "^3.4.2", "class-variance-authority": "^0.7.1", @@ -51,7 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.3", + "@types/node": "^22.10.4", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", @@ -64,6 +64,6 @@ "tailwindcss": "^3.4.17", "typescript": "~5.6.3", "typescript-eslint": "^8.19.0", - "vite": "^6.0.6" + "vite": "^6.0.7" } } diff --git a/src/components/ServerCard.tsx b/src/components/ServerCard.tsx index 9a723e9..e88699f 100644 --- a/src/components/ServerCard.tsx +++ b/src/components/ServerCard.tsx @@ -20,6 +20,11 @@ export default function ServerCard({ now, serverInfo }: { now: number; serverInf serverInfo, ) + const cardClick = () => { + 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" >