import { useContext, useMemo } from "react"; import { t } from "i18next"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faArrowDown, faArrowUp, faPingPongPaddleBall } from "@fortawesome/free-solid-svg-icons"; import StatisticContainer from "@/pages/Statistics/components/StatisticContainer"; import { PreferencesContext } from "@/common/contexts/Preferences"; import { convertSpeed, getSpeedUnit } from "@/common/utils/FormatUtil"; import "./styles.sass"; export const ConsistencyChart = (props) => { const [preferences] = useContext(PreferencesContext); const speedUnit = getSpeedUnit(preferences); const data = useMemo(() => { if (!props.consistency) return null; return props.consistency; }, [props.consistency]); if (!data) return null; const getConsistencyColor = (value) => { if (value >= 90) return 'icon-green'; if (value >= 70) return 'icon-orange'; return 'icon-red'; }; return (

{t("latest.down")}

{data.download.consistency}%

±{convertSpeed(data.download.stdDev, preferences)} {speedUnit}

{t("latest.up")}

{data.upload.consistency}%

±{convertSpeed(data.upload.stdDev, preferences)} {speedUnit}

{t("latest.ping")}

±{data.ping.stdDev} {t("latest.ping_unit")}

{t("statistics.consistency.ping_variance")}
); };