diff --git a/src/main.tsx b/src/main.tsx
index 6b7ab3a..d5da5bd 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -7,17 +7,16 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Toaster } from "sonner";
-
const queryClient = new QueryClient();
ReactDOM.createRoot(document.getElementById("root")!).render(
-
-
-
-
-
+
+
+
+
+
,
);
diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx
index 5984ab1..e885b72 100644
--- a/src/pages/Server.tsx
+++ b/src/pages/Server.tsx
@@ -1,11 +1,11 @@
-import useWebSocket from 'react-use-websocket';
-import { NezhaAPIResponse } from "@/types/nezha-api";
-import ServerCard from '@/components/ServerCard';
-import { formatNezhaInfo } from '@/lib/utils';
-import ServerOverview from '@/components/ServerOverview';
+import useWebSocket from "react-use-websocket";
+import { NezhaAPIResponse } from "@/types/nezha-api";
+import ServerCard from "@/components/ServerCard";
+import { formatNezhaInfo } from "@/lib/utils";
+import ServerOverview from "@/components/ServerOverview";
export default function Servers() {
- const { lastMessage, readyState } = useWebSocket('/api/v1/ws/server', {
+ const { lastMessage, readyState } = useWebSocket("/api/v1/ws/server", {
shouldReconnect: () => true, // 自动重连
reconnectInterval: 3000, // 重连间隔
});
@@ -16,29 +16,49 @@ export default function Servers() {
}
// 解析消息
- const nezhaWsData = lastMessage ? JSON.parse(lastMessage.data) as NezhaAPIResponse : null;
+ const nezhaWsData = lastMessage
+ ? (JSON.parse(lastMessage.data) as NezhaAPIResponse)
+ : null;
if (!nezhaWsData) {
- return
;
+ return (
+
+ );
}
- // 计算服务器总数和在线数量
- const totalServers = nezhaWsData.servers.length;
- const onlineServers = nezhaWsData.servers.filter(server => formatNezhaInfo(server).online).length;
- const offlineServers = nezhaWsData.servers.filter(server => !formatNezhaInfo(server).online).length;
- const up = nezhaWsData.servers.reduce((total, server) => total + server.state.net_out_transfer, 0);
- const down = nezhaWsData.servers.reduce((total, server) => total + server.state.net_in_transfer, 0);
+ // 计算服务器总数和在线数量
+ const totalServers = nezhaWsData.servers.length;
+ const onlineServers = nezhaWsData.servers.filter(
+ (server) => formatNezhaInfo(server).online,
+ ).length;
+ const offlineServers = nezhaWsData.servers.filter(
+ (server) => !formatNezhaInfo(server).online,
+ ).length;
+ const up = nezhaWsData.servers.reduce(
+ (total, server) => total + server.state.net_out_transfer,
+ 0,
+ );
+ const down = nezhaWsData.servers.reduce(
+ (total, server) => total + server.state.net_in_transfer,
+ 0,
+ );
return (
-
-
+
+
{nezhaWsData.servers.map((serverInfo) => (
))}
);
-}
\ No newline at end of file
+}
diff --git a/src/types/nezha-api.ts b/src/types/nezha-api.ts
index 6546e1a..1686da3 100644
--- a/src/types/nezha-api.ts
+++ b/src/types/nezha-api.ts
@@ -3,7 +3,6 @@ export interface NezhaAPIResponse {
servers: NezhaAPI[];
}
-
export interface NezhaAPI {
id: number;
name: string;
diff --git a/vite.config.ts b/vite.config.ts
index ef849d0..a6839f4 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -12,11 +12,11 @@ export default defineConfig({
},
server: {
proxy: {
- '/api/v1/ws/server': {
- target: 'ws://localhost:8080',
- changeOrigin: true,
- ws: true,
- },
- }
- }
+ "/api/v1/ws/server": {
+ target: "ws://localhost:8080",
+ changeOrigin: true,
+ ws: true,
+ },
+ },
+ },
});