diff --git a/app/components/WebConsole/index.tsx b/app/components/WebConsole/index.tsx index 05694e8..0c92db0 100644 --- a/app/components/WebConsole/index.tsx +++ b/app/components/WebConsole/index.tsx @@ -2,6 +2,9 @@ import React, { useEffect, useState, useRef } from "react"; import Stats from "./stats"; +import ServerName from "./serverName"; +import ServerControl from "./serverControl"; +import ServerRunning from "./serverStatus"; const Console = () => { const [url, setUrl] = useState(""); @@ -15,6 +18,7 @@ const Console = () => { const [diskTotal, setDiskTotal] = useState(0); const [network, setNetwork] = useState({ inbound: 0, outbound: 0 }); const [uptime, setUptime] = useState(0); + const [serverStatus, setServerStatus] = useState("N/A"); const websocketRef = useRef(null); // Dodajemy ref do WebSocket const textareaRef = useRef(null); // Dodajemy referencjÄ™ do textarea @@ -66,41 +70,52 @@ const Console = () => { const message = JSON.parse(event.data); // console.log("Received message:", message.event); - if (message.event === "token expiring") { - fetchData(); - websocket.send(`{"event":"auth","args":["${token}"]}`); - console.log("New token fetched"); - } - - if (message.event === "stats") { - let data = JSON.parse(JSON.parse(event.data).args[0]); - setCpuStat(data.cpu_absolute.toFixed(2)); - setRamStat( - Number((data.memory_bytes / (1024 * 1024 * 1024)).toFixed(2)) - ); - setRamTotal( - Number((data.memory_limit_bytes / (1024 * 1024 * 1024)).toFixed(2)) - ); - setDiskUsage( - Number((data.disk_bytes / (1024 * 1024 * 1024)).toFixed(2)) - ); - setNetwork({ - inbound: data.network.rx_bytes, - outbound: data.network.tx_bytes, - }); - setUptime(data.uptime); - } - - if (message.event === "console output") { - setOutput((prevOutput) => { - let tmpMessage = JSON.parse(event.data).args[0]; - tmpMessage = tmpMessage.replace(/\u001b\[[0-9;]*m/g, ""); - const newOutput = [...prevOutput, tmpMessage]; - if (newOutput.length > 1000) { - return newOutput.slice(-1000); - } - return newOutput; - }); + switch (message.event) { + case "token expiring": + fetchData(); + websocket.send(`{"event":"auth","args":["${token}"]}`); + console.log("New token fetched"); + break; + case "auth success": + console.log("Authenticated."); + break; + case "auth error": + console.error("Authentication error:", message.args[0]); + break; + case "stats": + let data = JSON.parse(JSON.parse(event.data).args[0]); + setCpuStat(data.cpu_absolute.toFixed(2)); + setRamStat( + Number((data.memory_bytes / (1024 * 1024 * 1024)).toFixed(2)) + ); + setRamTotal( + Number( + (data.memory_limit_bytes / (1024 * 1024 * 1024)).toFixed(2) + ) + ); + setDiskUsage( + Number((data.disk_bytes / (1024 * 1024 * 1024)).toFixed(2)) + ); + setNetwork({ + inbound: data.network.rx_bytes, + outbound: data.network.tx_bytes, + }); + setUptime(data.uptime); + break; + case "status": + setServerStatus(message.args[0]); + break; + case "console output": + setOutput((prevOutput) => { + let tmpMessage = JSON.parse(event.data).args[0]; + tmpMessage = tmpMessage.replace(/\u001b\[[0-9;]*m/g, ""); + const newOutput = [...prevOutput, tmpMessage]; + if (newOutput.length > 1000) { + return newOutput.slice(-1000); + } + return newOutput; + }); + break; } }; @@ -133,38 +148,50 @@ const Console = () => { }; return ( -
-
-
-