import { ListItemProps, TableCell } from "@mui/material"; import Alert from "@mui/material/Alert"; import AlertTitle from "@mui/material/AlertTitle"; import Box from "@mui/material/Box"; import Container from "@mui/material/Container"; import Paper from "@mui/material/Paper"; import Stack from "@mui/material/Stack"; import Table from "@mui/material/Table"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; import Typography from "@mui/material/Typography"; import Markdown from "markdown-to-jsx"; import React, { FC } from "react"; import { CheckCircle, MinusCircle, XCircle } from "react-feather"; import { ErrorPageData, PolicyEvaluationTrace } from "../types"; import SectionFooter from "./SectionFooter"; type PolicyEvaluationTraceDetailsProps = { trace: PolicyEvaluationTrace; } & ListItemProps; const PolicyEvaluationTraceDetails: FC = ({ trace, ...props }) => { return ( {trace.deny ? ( ) : trace.allow ? ( ) : ( )} {trace.explanation || trace.id} {trace.deny || !trace.allow ? trace.remediation : ""} ); }; export type ErrorPageProps = { data: ErrorPageData; }; export const ErrorPage: FC = ({ data }) => { const traces = data?.policyEvaluationTraces?.filter((trace) => !!trace.id) || []; return ( {data?.status || 500}{" "} {data?.statusText || "Internal Server Error"} {!!data?.errorMessageFirstParagraph && ( {data.errorMessageFirstParagraph} )} {traces?.length > 0 && ( Outcome Explanation Remediation {traces.map((trace) => ( ))}
)} {data?.requestId ? ( If you should have access, contact your administrator with your request id {data?.requestId}. ) : ( <> )}
); }; export default ErrorPage;