import BackButton from "@/components/ui/back-button"; import PageTitle from "@/components/ui/page-title"; import api, { parseJson } from "@/lib/api"; import { IoEllipsisVertical, IoServer } from "react-icons/io5"; import { useQuery } from "react-query"; import { useParams } from "react-router-dom"; import ConnectionStatus, { getConnectionLabel, } from "../components/connection-status"; import Card from "@/components/ui/card"; import BackupSection from "./components/backups-section"; import DatabaseSection from "./components/databases-section"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import Button from "@/components/ui/button"; import { serverFormDlg } from "../stores"; import ServerFormDialog from "../components/server-form-dialog"; import { GetServerResult } from "./schema"; import { toast } from "sonner"; const ViewServerPage = () => { const id = useParams().id!; const { data, isLoading, error } = useQuery({ queryKey: ["servers"], queryFn: () => api.servers[":id"].$get({ param: { id } }).then(parseJson), }); const check = useQuery({ queryKey: ["server", id], queryFn: async () => { return api.servers.check[":id"].$get({ param: { id } }).then(parseJson); }, refetchInterval: 30000, }); if (isLoading || error) { return null; } return (
Server Information

{data?.name}

{data?.connection?.host ? ( {data?.connection?.host} ) : null}

{getConnectionLabel(check.data?.success, check.error)}

{data != null && }
); }; const ServerMenuBtn = ({ data }: { data: GetServerResult }) => { return (