aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sokolov <eug-vs@keemail.me>2020-06-28 18:56:38 +0300
committerGitHub <noreply@github.com>2020-06-28 18:56:38 +0300
commit699c702ca941c0e7e5fdcb971c9135e28b80c221 (patch)
tree782231cf1b155acbbedcf2642628b9e6d2f008c4
parentccb26a42a3ad8d748e00cfbe9687f3198d5b8cb4 (diff)
parent8c06adcb2d79a9966003760eebf21388b35d2b4d (diff)
downloadwhich-ui-699c702ca941c0e7e5fdcb971c9135e28b80c221.tar.gz
Merge pull request #51 from which-ecosystem/votes-update
Migrate to new Poll interface
-rw-r--r--package-lock.json6
-rw-r--r--package.json2
-rw-r--r--src/components/PollCard/PollCard.tsx18
3 files changed, 13 insertions, 13 deletions
diff --git a/package-lock.json b/package-lock.json
index 84e7815..e7f7059 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14118,9 +14118,9 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"which-types": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/which-types/-/which-types-1.4.2.tgz",
- "integrity": "sha512-nwcohvhH+VEA11cReLi/BgeuKHJYH7VM2BWe9OIX89CB+iaZ0+wb6oLFcIP6Vp6jw3k93yoPMe9pMBsOi4kj6w=="
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/which-types/-/which-types-1.6.1.tgz",
+ "integrity": "sha512-uTCrp6+rbU48kyT9Z6upVo9CgGmiR50zFSwzDik8slE8oZ+0FC9SBEfJlfgADX/rFJVbIe8Vxsw4BsSxlL5Lsw=="
},
"word-wrap": {
"version": "1.2.3",
diff --git a/package.json b/package.json
index ca1967a..f75c0e8 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"react-icons": "^3.10.0",
"react-scripts": "3.4.1",
"typeface-roboto": "0.0.75",
- "which-types": "^1.4.2"
+ "which-types": "^1.6.1"
},
"scripts": {
"start": "react-scripts start",
diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx
index d3b4fc2..caa2de1 100644
--- a/src/components/PollCard/PollCard.tsx
+++ b/src/components/PollCard/PollCard.tsx
@@ -57,20 +57,20 @@ const useStyles = makeStyles(theme => ({
const PollCard: React.FC<PropTypes> = ({ initialPoll, navigate }) => {
const [poll, setPoll] = useState<Poll>(initialPoll);
const classes = useStyles();
- const { author, contents: { left, right }, userChoice } = poll;
+ const { author, contents: { left, right }, vote } = poll;
const date: string = new Date(poll.createdAt).toLocaleString('default', DATE_FORMAT);
- const vote = (which: Which) => {
- if (userChoice) return;
- post('votes/', { which, pollId: poll._id }).then(() => {
+ const handleVote = (which: Which) => {
+ if (vote) return;
+ post('votes/', { which, pollId: poll._id }).then(response => {
poll.contents[which].votes += 1;
- poll.userChoice = which;
+ poll.vote = response.data;
setPoll({ ...poll });
});
};
- const handleLeft = () => vote('left');
- const handleRight = () => vote('right');
+ const handleLeft = () => handleVote('left');
+ const handleRight = () => handleVote('right');
const leftPercentage = Math.round(100 * (left.votes / (left.votes + right.votes)));
const rightPercentage = 100 - leftPercentage;
@@ -86,14 +86,14 @@ const PollCard: React.FC<PropTypes> = ({ initialPoll, navigate }) => {
className={classes.images}
image={left.url}
/>
- <PercentageBar value={leftPercentage} which="left" like={userChoice === 'left'} />
+ <PercentageBar value={leftPercentage} which="left" like={vote?.which === 'left'} />
</CardActionArea>
<CardActionArea onDoubleClick={handleRight}>
<CardMedia
className={classes.images}
image={right.url}
/>
- <PercentageBar value={rightPercentage} which="right" like={userChoice === 'right'} />
+ <PercentageBar value={rightPercentage} which="right" like={vote?.which === 'right'} />
</CardActionArea>
</div>
<div className={`${classes.rateLine} ${dominant === 'right' ? classes.highlight : ''}`}>