import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { Badge, Button, makeStyles, MessageBar, MessageBarBody, shorthands, Table, TableBody, TableCell, TableHeader, TableHeaderCell, TableRow, Text, Title3, tokens, Tooltip, } from "@fluentui/react-components"; import { ArrowLeftRegular, DeleteRegular, OpenRegular } from "@fluentui/react-icons"; import { Link, useParams } from "react-router-dom"; import { portalApi } from "../api/portalApi"; import { DataState } from "../components/DataState"; import { PageHeader } from "../components/PageHeader"; const useStyles = makeStyles({ backLink: { display: "inline-flex", marginBottom: "18px", textDecorationLine: "none", }, details: { display: "grid", gap: "14px", gridTemplateColumns: "repeat(2, minmax(180px, 1fr))", marginBottom: "24px", maxWidth: "720px", ...shorthands.border("1px", "solid", tokens.colorNeutralStroke2), ...shorthands.borderRadius("8px"), ...shorthands.padding("18px"), }, field: { display: "grid", gap: "4px", minWidth: 0, }, value: { overflowWrap: "anywhere", }, sectionTitle: { marginBottom: "12px", }, actions: { display: "flex", gap: "4px", ...shorthands.padding("2px", "0"), }, }); export function EnvironmentDetailsPage() { const styles = useStyles(); const queryClient = useQueryClient(); const { id } = useParams(); const { data, error, isLoading } = useQuery({ enabled: Boolean(id), queryKey: ["environment", id, "domains"], queryFn: ({ signal }) => portalApi.getEnvironmentDomains(id!, signal), }); const links = data?.environmentDomains?.filter((link) => link.domain) ?? []; const unlinkDomainFromEnvironment = useMutation({ mutationFn: ({ domainId, environmentId }: { domainId: string; environmentId: string }) => portalApi.unlinkDomainFromEnvironment(domainId, environmentId), onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: ["environment", id, "domains"] }); await queryClient.invalidateQueries({ queryKey: ["domains"] }); await queryClient.invalidateQueries({ queryKey: ["environments"] }); }, }); return ( <> {data && ( <>
Name {data.name}
Id {data.id}
Environment Stage {data.environmentType}
Hosting Type {data.hostingType}
Cloud Enabled {data.hostingType === "OnPrem" ? "Nein" : "Ja"}
Provider Type {data.hostingType === "OnPrem" ? data.providerType : ""}
{data.hostingType !== "OnPrem" && (
Tenant Id {data.tenantId}
)} {data.hostingType === "AzureTenant" && (
Subscription Id {data.subscriptionId}
)}
Linked Domains {links.length === 0 ? ( Dieses Environment ist noch mit keiner Domain verknuepft. ) : ( Name FQDN NetBIOS Status Actions {links.map((link) => ( {link.domain!.name} {link.domain!.fqdn} {link.domain!.netBIOS} Linked
))}
)} )} ); }