From 150806c39da43ed1c584512656e4664fa6d5408a Mon Sep 17 00:00:00 2001 From: apostolof Date: Mon, 29 Mar 2021 20:03:28 +0300 Subject: [PATCH] feat: add signup-to-enable-voting view --- .../PollView/PollGuestView/index.jsx | 21 +++++++++++ .../src/components/PollView/index.jsx | 35 +++++++++++-------- 2 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 packages/concordia-app/src/components/PollView/PollGuestView/index.jsx diff --git a/packages/concordia-app/src/components/PollView/PollGuestView/index.jsx b/packages/concordia-app/src/components/PollView/PollGuestView/index.jsx new file mode 100644 index 0000000..0db3864 --- /dev/null +++ b/packages/concordia-app/src/components/PollView/PollGuestView/index.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { Container, Header, Icon } from 'semantic-ui-react'; +import { Link } from 'react-router-dom'; + +const PollGuestView = () => ( + +
+ + + Only registered users are able to vote in polls. + + You can register in the  + signup +  page. + + +
+
+); + +export default PollGuestView; diff --git a/packages/concordia-app/src/components/PollView/index.jsx b/packages/concordia-app/src/components/PollView/index.jsx index bb2ab0d..18ff75c 100644 --- a/packages/concordia-app/src/components/PollView/index.jsx +++ b/packages/concordia-app/src/components/PollView/index.jsx @@ -16,6 +16,7 @@ import { FETCH_USER_DATABASE } from '../../redux/actions/peerDbReplicationAction import { generatePollHash, generateHash } from '../../utils/hashUtils'; import { POLL_OPTIONS, POLL_QUESTION } from '../../constants/orbit/PollsDatabaseKeys'; import PollDataInvalid from './PollDataInvalid'; +import PollGuestView from './PollGuestView'; const { contracts: { [VOTING_CONTRACT]: { methods: { getPoll: { cacheCall: getPollChainData } } } } } = drizzle; const { orbit } = breeze; @@ -92,8 +93,6 @@ const PollView = (props) => { } }, [pollHash, polls, topicId]); - // TODO: add a "Signup to enable voting" view - const userHasVoted = useMemo(() => hasSignedUp && voters .some((optionVoters) => optionVoters.includes(userAddress)), [hasSignedUp, userAddress, voters]); @@ -107,18 +106,24 @@ const PollView = (props) => { return ''; }, [pollOptions, userAddress, userHasVoted, voters]); - const pollVoteTab = useMemo(() => ( - !loading - ? ( - - ) - :
- ), [loading, pollChangeVoteEnabled, pollOptions, userHasVoted, userVoteHash]); + const pollVoteTab = useMemo(() => { + if (!hasSignedUp) { + return ; + } + + if (loading) { + return null; + } + + return ( + + ); + }, [hasSignedUp, loading, pollChangeVoteEnabled, pollOptions, userHasVoted, userVoteHash]); const pollGraphTab = useMemo(() => ( !loading @@ -130,7 +135,7 @@ const PollView = (props) => { userVoteHash={userVoteHash} /> ) - :
+ : null ), [loading, pollOptions, userHasVoted, userVoteHash, voteCounts]); const panes = useMemo(() => {