You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

5 years ago
  1. import React from 'react';
  2. import {COLOR_NEUTRAL, colorByDiff} from "../helpers/color";
  3. import "./Score.css";
  4. const Score = ({value, suffix = null, color = COLOR_NEUTRAL}) => (
  5. <div className="Score">
  6. <span className="Score-value" style={{color}}>{value}</span>
  7. {suffix !== null && (
  8. <>
  9. &nbsp;
  10. <span className="Score-suffix">{suffix}</span>
  11. </>
  12. )}
  13. </div>
  14. );
  15. export const Timer = ({minutes, seconds}) => {
  16. function pad(number) {
  17. return number >= 10 ? `${number}` : `0${number}`;
  18. }
  19. return (
  20. <div className="Timer">
  21. <span className="Timer-number">{pad(minutes)}</span>
  22. {" : "}
  23. <span className="Timer-number">{pad(seconds)}</span>
  24. </div>
  25. );
  26. };
  27. export const CalorieScore = ({calories, diff, prevDiff}) => (
  28. <Score value={calories} color={colorByDiff(diff, prevDiff)} suffix="kal"/>
  29. );
  30. export const DistanceScore = ({distance}) => <Score value={distance.toFixed(1)} suffix="km"/>;
  31. export const RpmScore = ({rpm}) => <Score value={rpm} suffix="rpm"/>;
  32. export const CpmScore = ({cpm}) => <Score value={cpm.toFixed(1)} suffix="kpm"/>;