import React, { useState, useMemo } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/Components/ui/card"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/Components/ui/select"; import {SecuritySummaryReportResultType} from "@/types/security-summary"; import VulnerabilityPieChart from "@/Components/VulnerabilityPieChart"; export default function VulnerabilitiesActiveCard({reportData}: { reportData: SecuritySummaryReportResultType }) { const vulnerabilityData = useMemo(() => [ { name: 'Critical', value: reportData.n_vulns.active.critical, fill: 'hsl(var(--chart-1))' }, { name: 'High', value: reportData.n_vulns.active.high, fill: 'hsl(var(--chart-2))' }, { name: 'Medium', value: reportData.n_vulns.active.medium, fill: 'hsl(var(--chart-3))' }, ], [reportData]); const [activeMetric, setActiveMetric] = useState(vulnerabilityData[0].name); const activeIndex = useMemo( () => vulnerabilityData.findIndex((item) => item.name === activeMetric), [activeMetric, vulnerabilityData] ); const metrics = useMemo(() => vulnerabilityData.map((item) => item.name), [vulnerabilityData]); const chartConfig: any = { 'Critical': { label: "Critical", color: 'hsl(var(--chart-1))' }, 'High': { label: "High", color: 'hsl(var(--chart-2))' }, 'Medium': { label: "Medium", color: 'hsl(var(--chart-3))' }, }; return (
Active Vulnerabilities Number of Active Vulnerabilities
); }