import React from "react";
import { DEFAULT_EMPTY_CELL_VALUE } from "utilities/constants";
import { formatFloatAsPercentage } from "utilities/helpers";
import Icon from "components/Icon";
import TooltipWrapper from "components/TooltipWrapper";
const baseClass = "probability-of-exploit";
interface IProbabilityOfExploit {
probabilityOfExploit?: number | null;
cisaKnownExploit?: boolean | null;
tooltipPosition?: "top" | "bottom" | "left" | "right";
}
const ProbabilityOfExploit = ({
probabilityOfExploit,
cisaKnownExploit,
tooltipPosition = "top",
}: IProbabilityOfExploit): JSX.Element => {
// Grey out if API returns null or undefined (but not 0)
if (typeof probabilityOfExploit !== "number") {
return (
{DEFAULT_EMPTY_CELL_VALUE}
);
}
const renderExploitedIcon = () => {
return (
The vulnerability has been actively exploited in the
wild. This data is reported by the Cybersecurity
and Infrastructure Security Agency (CISA).
}
position={tooltipPosition}
underline={false}
showArrow
tipOffset={8}
>
);
};
return (
{formatFloatAsPercentage(probabilityOfExploit)}
{cisaKnownExploit && renderExploitedIcon()}
);
};
export default ProbabilityOfExploit;