Files
prowler/ui/app/(prowler)/_overview/exploitability/exploitability-chart.ssr.tsx
T

37 lines
1.1 KiB
TypeScript

import { getIssuesOverview } from "@/actions/issues";
import { IssuesLoadError } from "@/components/issues/issues-load-error";
import { Card } from "@/components/shadcn/card/card";
import { pickIssueScope } from "@/lib/issues/scope";
import { verdictCounts } from "@/lib/issues/verdicts";
import { SSRComponentProps } from "../_types";
import { ExploitabilityChart } from "./_components/exploitability-chart";
export const ExploitabilityChartSSR = async ({
searchParams,
}: SSRComponentProps) => {
const filters = pickIssueScope(searchParams);
const summary = await getIssuesOverview({ filters });
const attributes = summary?.data?.attributes;
if (!attributes) {
return (
<Card variant="base" className="min-h-[372px] w-full lg:max-w-[312px]">
<IssuesLoadError message="Failed to load exploitability." />
</Card>
);
}
return (
<ExploitabilityChart
counts={verdictCounts(attributes)}
issues={attributes.issues ?? 0}
findings={attributes.findings ?? 0}
actionable={attributes.actionable ?? 0}
coveredFindings={attributes.not_exploitable_findings ?? 0}
scope={filters}
/>
);
};