|
@@ -1,49 +1,22 @@
|
|
|
-import React from "react";
|
|
|
-import styled from "styled-components";
|
|
|
-
|
|
|
-const Tile = styled.div`
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- flex-flow: column nowrap;
|
|
|
- justify-content: flex-start;
|
|
|
- align-items: center;
|
|
|
- min-width: 10em;
|
|
|
-`
|
|
|
-
|
|
|
-const Name = styled.span`
|
|
|
- font-size: 1.4em;
|
|
|
- font-weight: 800;
|
|
|
-`
|
|
|
-
|
|
|
-const TotalScore = styled.span`
|
|
|
- font-size: 1.1em;
|
|
|
- margin-left: .5em;
|
|
|
-`
|
|
|
-
|
|
|
-const List = styled.div`
|
|
|
- display: flex;
|
|
|
- flex-flow: column nowrap;
|
|
|
- justify-content: center;
|
|
|
- align-items: flex-start;
|
|
|
- margin-bottom: 20%;
|
|
|
- margin-left: 1em;
|
|
|
- list-style: none;
|
|
|
-`
|
|
|
-
|
|
|
-const Score = styled.span`
|
|
|
-`
|
|
|
+import React from 'react';
|
|
|
+import styles from './PlayerScores.module.css';
|
|
|
|
|
|
export default ({ name, guesses, totalScore }) => (
|
|
|
- <Tile>
|
|
|
- <Name>{name}</Name>
|
|
|
- <TotalScore>Score: {totalScore}</TotalScore>
|
|
|
- <List>
|
|
|
- {
|
|
|
- Object.entries(guesses)
|
|
|
- .map(([k, v]) => [parseInt(k), v])
|
|
|
- .sort(([k1], [k2]) => k1 < k2 ? -1 : k1 > k2 ? 1 : 0)
|
|
|
- .map(([num, { score }]) => score !== undefined ? <Score key={num}>{num}: {score ?? 0}</Score> : null)
|
|
|
- }
|
|
|
- </List>
|
|
|
- </Tile>
|
|
|
+ <div className={styles.tile}>
|
|
|
+ <span className={styles.name}>{name}</span>
|
|
|
+ <span className={styles.total}>Score: {totalScore}</span>
|
|
|
+ <div className={styles.scores}>
|
|
|
+ {Object.entries(guesses)
|
|
|
+ .map(([ k, v ]) => [ parseInt(k), v ])
|
|
|
+ .sort(([ k1 ], [ k2 ]) => (k1 < k2 ? -1 : k1 > k2 ? 1 : 0))
|
|
|
+ .map(
|
|
|
+ ([ num, { score } ]) =>
|
|
|
+ score !== undefined ? (
|
|
|
+ <span key={num}>
|
|
|
+ {num}: {score ?? 0}
|
|
|
+ </span>
|
|
|
+ ) : null
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
);
|