diff --git a/src/app/servers/NewServerDialog.tsx b/src/app/servers/NewServerDialog.tsx index 5e46978..0b08a08 100644 --- a/src/app/servers/NewServerDialog.tsx +++ b/src/app/servers/NewServerDialog.tsx @@ -80,7 +80,7 @@ export default function NewServerDialog({ disabled={name == "" || ip == ""} onClick={() => { session - ?.addServer({ name, ip, coordinates, location }) + ?.addServer({ name, ip, coordinates, location, }) .then(() => { toast.success( "Server added successfully, refresh to view it" diff --git a/src/app/servers/[server]/ClientPage.tsx b/src/app/servers/[server]/ClientPage.tsx new file mode 100644 index 0000000..f5bb757 --- /dev/null +++ b/src/app/servers/[server]/ClientPage.tsx @@ -0,0 +1,66 @@ +"use client"; + +import useSession from "@/hooks/useSession"; +import Server from "@/types/server"; +import { useEffect, useState } from "react"; +import ServiceComponent from "./service"; +import ServerComponent from "@/app/dashboard/server"; +import Service, { AppService } from "@/types/service"; +import AppComponent from "./AppComponent"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { toast } from "sonner"; + +interface Server2 extends Server { + services: Service[], + apps: AppService[], +} + +export default function ClientPage({ serverId }: { serverId: string }) { + const index = parseInt(serverId) || 0; + const session = useSession(); + const [server, setServer] = useState(); + + useEffect(() => { + session?.getServerIndex(index).then((s) => { + setServer(s.data); + setInterval(() => { + session?.getServerIndex(index).then((s) => { + setServer(s.data); + }); + }, 1000); + }); + }, [session]); + + return server && ( +
+
+ +
+ + +
+ Sentryx Apps + Your Sentryx apps on this server +
+ +
+ +
+ {server.apps.map((a, i) => { + const srv = server.services.find(s => s.name === a.service); + return srv && ; + })} +
+
+
+
+ {server.services.map((a, i) => ( + + ))} +
+
+ ); +} diff --git a/src/app/servers/[server]/page.tsx b/src/app/servers/[server]/page.tsx index 5f76fb6..ebea101 100644 --- a/src/app/servers/[server]/page.tsx +++ b/src/app/servers/[server]/page.tsx @@ -1,65 +1,5 @@ -"use client"; -import useSession from "@/hooks/useSession"; -import Server from "@/types/server"; -import { useEffect, useState } from "react"; -import ServiceComponent from "./service"; -import ServerComponent from "@/app/dashboard/server"; -import Service, { AppService } from "@/types/service"; -import AppComponent from "./AppComponent"; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; -import { Button } from "@/components/ui/button"; -import { toast } from "sonner"; +import ClientPage from './ClientPage'; -interface Server2 extends Server { - services: Service[], - apps: AppService[], -} - -export default function ServerPage(params: { server: string }) { - const index = parseInt(params.server) || 0; - const session = useSession(); - const [server, setServer] = useState(); - - useEffect(() => { - session?.getServerIndex(index).then((s) => { - setServer(s.data); - setInterval(() => { - session?.getServerIndex(index).then((s) => { - setServer(s.data); - }); - }, 1000); - }); - }, [session]); - - return server && ( -
-
- -
- - -
- Sentryx Apps - Your Sentryx apps on this server -
- -
- -
- {server.apps.map((a, i) => { - const srv = server.services.find(s => s.name == a.service); - return srv && ; - })} -
-
-
-
- {server.services.map((a, i) => ( - - ))} -
-
- ); +export default async function ServerPage({ params }: { params: Promise<{ server: string }> }) { + return ; } diff --git a/src/types/server.ts b/src/types/server.ts index 812c941..0f2fcaa 100644 --- a/src/types/server.ts +++ b/src/types/server.ts @@ -5,7 +5,7 @@ export interface ServerAPI { ip: string; location?: string; coordinates?: [number, number]; - apps: AppService[]; + apps?: AppService[]; } export default interface Server extends ServerAPI {