RoundSummary.jsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from "react";
  2. import ClickToCopy from "../util/ClickToCopy";
  3. import Button from "../util/Button";
  4. // TODO eventually we want this to query and show other players
  5. export default ({ round, onNext }) => {
  6. const {
  7. roundNum,
  8. selectedPoint,
  9. targetPoint,
  10. score,
  11. totalScore,
  12. } = round;
  13. // TODO determine zoom and center dynamically, or make this a dynamic map
  14. const mapUrl = `https://maps.googleapis.com/maps/api/staticmap?key=AIzaSyCDtEWf192OYuMvd2cp8a04DYQo-RU_sXs`;
  15. const size = `&size=600x400`
  16. const zoom = `&zoom=5`;
  17. const centerOnTarget = `&center=${targetPoint.lat},${targetPoint.lng}`;
  18. const targetMarker = `&markers=color:blue|label:T|${targetPoint.lat},${targetPoint.lng}`;
  19. const selectedMarker = selectedPoint ? `&markers=color:red|label:S|${selectedPoint.lat},${selectedPoint.lng}` : ""
  20. return (
  21. <div className="round-summary">
  22. <img
  23. className="round-summary__map"
  24. src={mapUrl + size + zoom + centerOnTarget + targetMarker + selectedMarker}
  25. alt={`Map pointing to ${targetPoint.lat},${targetPoint.lng}`}
  26. />
  27. <div className="round-summary__info-pane">
  28. {selectedPoint
  29. ? <span className="round-summary__guess">
  30. You selected: <ClickToCopy text={`${selectedPoint.lat}, ${selectedPoint.lng}`}/>
  31. </span>
  32. : <span className="round-summary__guess round-summary__guess--timed-out">
  33. Timed out!
  34. </span>
  35. }
  36. <span className="round-summary__target-point">Target: <ClickToCopy text={`${targetPoint.lat}, ${targetPoint.lng}`}/></span>
  37. <span className="round-summary__round-score">Score For Round {roundNum}: {score}</span>
  38. <span className="round-summary__total-score">Running Total Score: {totalScore}</span>
  39. <Button className="round-summary__button" onClick={onNext}>{roundNum === "5" ? "View Summary" : "Next Round"}</Button>
  40. </div>
  41. </div>
  42. );
  43. };