Results.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import React from "react";
  2. import { Link } from "react-router";
  3. import styles from "../styles";
  4. import MainContainer from "../containers/MainContainer";
  5. import UserDetails from "../components/UserDetails";
  6. import UserDetailsWrapper from "../components/UserDetailsWrapper";
  7. const PropTypes = React.PropTypes;
  8. const StartOver = () => {
  9. return (
  10. <div className="col-sm-12" style={styles.space}>
  11. <Link to="/playerOne">
  12. <button type="button" className="btn btn-lg btn-danger">Start over</button>
  13. </Link>
  14. </div>
  15. );
  16. };
  17. const Results = (props) => {
  18. if (props.isLoading) {
  19. return (
  20. <p> LOADING </p>
  21. );
  22. }
  23. if (props.scores[0] === props.scores[1]) {
  24. return (
  25. <MainContainer>
  26. <h1>It's a tie</h1>
  27. <StartOver path="/playerOne" />
  28. </MainContainer>
  29. );
  30. }
  31. const winningIndex = props.scores[0] > props.scores[1] ? 0 : 1;
  32. const losingIndex = winningIndex ? 0 : 1;
  33. return (
  34. <MainContainer>
  35. <h1>Results</h1>
  36. <div className="col-sm-8 col-sm-offset-2">
  37. <UserDetailsWrapper header="Winner">
  38. <UserDetails score={props.scores[winningIndex]} info={props.playerInfo[winningIndex]} />
  39. </UserDetailsWrapper>
  40. <UserDetailsWrapper header="Loser">
  41. <UserDetails score={props.scores[losingIndex]} info={props.playerInfo[losingIndex]} />
  42. </UserDetailsWrapper>
  43. </div>
  44. <StartOver />
  45. </MainContainer>
  46. );
  47. };
  48. Results.propTypes = {
  49. isLoading: PropTypes.bool.isRequired,
  50. playerInfo: PropTypes.array.isRequired,
  51. scores: PropTypes.array.isRequired
  52. };
  53. export default Results;