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 (
<>
}>
Environments