import { useMemo } from "react"; import { ObservatoryResult, TEST_NAMES_IN_ORDER } from "../types"; import { formatMinus, Link, PassIcon } from "../utils"; export function ObservatoryTests({ result }: { result: ObservatoryResult }) { const showFootnote = useMemo(() => { return ( (result.scan.score || 0) <= 90 && Object.entries(result.tests).find(([_n, t]) => t.score_modifier > 0) ); }, [result]); return Object.keys(result.tests).length !== 0 ? ( <> {TEST_NAMES_IN_ORDER.map((name) => { const test = result.tests[name]; return ( test && ( {test.pass === null ? ( ) : ( )} ) ); })}
Test Score Reason Recommendation
{test.title} - None

`, }} />
{showFootnote && (
* Normally awards bonus points, however, in this case they are not included in the overall score ( find out why ).
)} ) : null; } function ScoreModifier({ overallScore, scoreModifier, }: { overallScore: number; scoreModifier: number; }) { const [bonusEligible, formattedScoreModifier] = useMemo(() => { return [ overallScore >= 90, formatMinus(`${scoreModifier > 0 ? `+${scoreModifier}` : scoreModifier}`), ]; }, [overallScore, scoreModifier]); return ( 0 ? "not-counted" : ""}`} > {!bonusEligible && scoreModifier > 0 ? ( <> 0 * ) : ( <>{formattedScoreModifier} )} ); }