import "./Misc.sass"; import {Icon, WithChildren} from "../Shared"; import {Values} from "../../models/Shared"; import {faArrowUpRightDots, faHeart} from "@fortawesome/free-solid-svg-icons"; export function TitleLine({children}: WithChildren) { return (
{children}
); } interface ValueProps { raw: Values | number valueKey: keyof Values } export function FluffyValue({raw, valueKey}: ValueProps): JSX.Element | null { if (typeof raw !== "number" && (raw[valueKey] === undefined || raw[valueKey] === null)) { return null; } return (
); } export function Value({raw, valueKey}: ValueProps): JSX.Element | null { const actual = typeof raw === "number" ? raw : (raw[valueKey]); if (actual !== null && actual !== undefined) { if (valueKey === "time") { const minutes = Math.floor(actual / 60).toString(10).padStart(2, "0"); const seconds = (actual % 60).toString(10).padStart(2, "0"); return <>{minutes}'{seconds}"; } if (valueKey === "calories") { return <>{actual} kcal; } if (valueKey === "distance") { const km = actual / 1000; return <>{km.toFixed(1)} km; } if (valueKey === "level") { return ( <> {" "} {actual} ); } if (valueKey === "rpmSpeed") { return <>{actual} rpm } if (valueKey === "pulse") { return ( <> {" "} {actual} ); } } return null; }