diff options
author | ilyayudovin <ilyayudovin123@gmail.com> | 2020-09-03 12:42:36 +0300 |
---|---|---|
committer | ilyayudovin <ilyayudovin123@gmail.com> | 2020-09-03 12:42:36 +0300 |
commit | a03127a0a29c6896643d6043afb5fcd0d3407f7b (patch) | |
tree | cc2da6da6dc417902507e2bc342ed4763568f8e4 | |
parent | 48a12ab8616e36a5bc853350a8a74b6be897bbd0 (diff) | |
download | which-ui-a03127a0a29c6896643d6043afb5fcd0d3407f7b.tar.gz |
feat: add separation function of single and double clicks
-rw-r--r-- | src/components/PollCard/PollCard.tsx | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx index 80a1386..87d9fae 100644 --- a/src/components/PollCard/PollCard.tsx +++ b/src/components/PollCard/PollCard.tsx @@ -51,6 +51,25 @@ const PollCard: React.FC<PropTypes> = React.memo(({ poll, setPoll }) => { const { enqueueSnackbar } = useSnackbar(); const { isAuthenticated } = useAuth(); const date: string = new Date(poll.createdAt).toLocaleString('default', DATE_FORMAT); + let timer: any; + let delay = 200; + let prevent = false; + + const handleClick = (which: Which) => () => { + if(!prevent) { + prevent = true; + timer = setTimeout(() => { + console.log('single click', prevent); + prevent = false; + }, delay) + } + else { + clearTimeout(timer); + prevent = false; + console.log('double click', prevent); + handleVote(which); + } + }; const handleVote = (which: Which) => { if (!isAuthenticated) { @@ -77,9 +96,6 @@ const PollCard: React.FC<PropTypes> = React.memo(({ poll, setPoll }) => { } }; - const handleLeft = () => handleVote('left'); - const handleRight = () => handleVote('right'); - let leftPercentage; let rightPercentage; @@ -97,11 +113,11 @@ const PollCard: React.FC<PropTypes> = React.memo(({ poll, setPoll }) => { <Card elevation={3}> <UserStrip user={author} info={date} /> <div className={classes.media}> - <CardActionArea onDoubleClick={handleLeft} className={classes.media}> + <CardActionArea onClick={handleClick('left')} className={classes.media}> <BackgroundImage src={left.url} /> <PercentageBar value={leftPercentage} which="left" like={vote?.which === 'left'} /> </CardActionArea> - <CardActionArea onDoubleClick={handleRight} className={classes.media}> + <CardActionArea onClick={handleClick('right')} className={classes.media}> <BackgroundImage src={right.url} /> <PercentageBar value={rightPercentage} which="right" like={vote?.which === 'right'} /> </CardActionArea> |