import { LstCard } from "@/components/extendedUI/LstCard"; import { Skeleton } from "@/components/ui/skeleton"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { useSessionStore } from "@/lib/store/sessionStore"; import { useModuleStore } from "@/lib/store/useModuleStore"; import { getServers } from "@/utils/querys/servers"; import { useQuery } from "@tanstack/react-query"; import { useRouter } from "@tanstack/react-router"; import { format } from "date-fns"; import UpdateServer from "./UpdateServer"; import { adminUrlCheck } from "@/utils/adminUrlCheck"; import RestartServer from "./RestartServer"; import StopServer from "./StopServer"; import StartServer from "./StartServer"; import { Button } from "@/components/ui/button"; import { getSettings } from "@/utils/querys/settings"; import { toast } from "sonner"; import axios from "axios"; //import { useState } from "react"; export type Servers = { server_id?: string; sName?: string; serverDNS?: string; plantToken?: string; idAddress: string; lastUpdated: string; isUpgrading: boolean; lstServerPort: string; }; export default function ServerPage() { const { user, token } = useSessionStore(); const { modules } = useModuleStore(); //const [upgrading, setUpgrading] = useState(false); const router = useRouter(); const { data, isError, error, isLoading } = useQuery( getServers(token ?? "") ); const adminModule = modules.filter((n) => n.name === "admin"); const userLevel = user?.roles?.filter((r) => r.module_id === adminModule[0].module_id) || []; if (!adminModule[0]?.roles?.includes(userLevel[0]?.role)) { router.navigate({ to: "/" }); } if (isError) { return
{JSON.stringify(error)}
; } const { data: set } = useQuery(getSettings(token ?? "")); const upgrade = async () => { let devDir = set.filter((n: any) => n.name === "devDir"); toast.success("All Servers was just triggered."); try { const result = await axios.post( `/api/server/update/localhost`, { devDir: devDir[0].value, all: true }, { headers: { Authorization: `Bearer ${token}` }, } ); if (result.data.success) { toast.success(result.data.message); } if (!result.data.success) { toast.success(result.data.message); } } catch (error: any) { toast.error( `There was an error updating the server: ${error.data.message}` ); } }; //console.log(data); return (
Name Server PlantToken IP Address Date Last updated Update Server {isLoading ? ( <> {Array(10) .fill(0) .map((_, i) => ( ))} ) : ( {data?.map((server: Servers) => { const strippedDate = server.lastUpdated.replace( "Z", "" ); // Remove Z const formattedDate = format( strippedDate, "MM/dd/yyyy hh:mm a" ); return ( {server.sName} {server.serverDNS} {server.plantToken} {server.idAddress} {formattedDate} {adminUrlCheck() && (
)}
); })}
)}
); }