From a3129aaab7055a634ae5391a591833325ada330b Mon Sep 17 00:00:00 2001 From: "Sebastian.Bor" Date: Mon, 5 Apr 2021 22:11:22 +0100 Subject: [PATCH] feat: split vote button into yeah/nay buttons on proposal page --- .../src/components/Proposal/Vote.tsx | 39 +++++++------------ packages/proposals/src/constants/labels.ts | 9 ++++- .../proposals/src/views/proposal/index.tsx | 7 ++++ 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/packages/proposals/src/components/Proposal/Vote.tsx b/packages/proposals/src/components/Proposal/Vote.tsx index cc18b0b..69892da 100644 --- a/packages/proposals/src/components/Proposal/Vote.tsx +++ b/packages/proposals/src/components/Proposal/Vote.tsx @@ -1,5 +1,5 @@ import { ParsedAccount } from '@oyster/common'; -import { Button, Col, Modal, Row, Switch, Radio } from 'antd'; +import { Button, Col, Modal, Row } from 'antd'; import React from 'react'; import { TimelockConfig, @@ -16,17 +16,19 @@ import './style.less'; const { useWallet } = contexts.Wallet; const { useConnection } = contexts.Connection; -const { useAccountByMint, useThatState } = hooks; +const { useAccountByMint } = hooks; const { confirm } = Modal; export function Vote({ proposal, state, timelockConfig, + yeahVote, }: { proposal: ParsedAccount; state: ParsedAccount; timelockConfig: ParsedAccount; + yeahVote: boolean; }) { const wallet = useWallet(); const connection = useConnection(); @@ -37,50 +39,37 @@ export function Vote({ const userTokenAccount = useAccountByMint(proposal.info.sourceMint); - const [vote, setVote, getLatestVote] = useThatState(0); - const eligibleToView = userTokenAccount && userTokenAccount.info.amount.toNumber() > 0 && state.info.status === TimelockStateStatus.Voting; + const btnLabel = yeahVote ? LABELS.VOTE_YEAH : LABELS.VOTE_NAY; + const title = yeahVote ? LABELS.VOTE_YEAH_QUESTION : LABELS.VOTE_NAY_QUESTION; + const msg = yeahVote ? LABELS.VOTE_YEAH_MSG : LABELS.VOTE_NAY_MSG; + return eligibleToView ? ( ) : null; } diff --git a/packages/proposals/src/constants/labels.ts b/packages/proposals/src/constants/labels.ts index 25f5c86..f2a6f3e 100644 --- a/packages/proposals/src/constants/labels.ts +++ b/packages/proposals/src/constants/labels.ts @@ -65,7 +65,14 @@ export const LABELS = { ADD_GOVERNANCE_TOKENS: 'Add Governance Tokens', ADD_COUNCIL_TOKENS: 'Add Council Tokens', ACTIONS: 'Actions', - VOTE: 'Vote', + + VOTE_YEAH: 'Yeah', + VOTE_NAY: 'Nay', + VOTE_YEAH_QUESTION: 'Vote Yeah?', + VOTE_YEAH_MSG: 'Vote in favour of the proposal.', + VOTE_NAY_QUESTION: 'Vote Nay?', + VOTE_NAY_MSG: 'Vote against the proposal.', + EXECUTING: 'Executing...', EXECUTED: 'Executed.', WITHDRAWING_VOTING_TOKENS: 'Refunding voting tokens as Source Tokens', diff --git a/packages/proposals/src/views/proposal/index.tsx b/packages/proposals/src/views/proposal/index.tsx index 7eaec8a..d2ebbfb 100644 --- a/packages/proposals/src/views/proposal/index.tsx +++ b/packages/proposals/src/views/proposal/index.tsx @@ -304,6 +304,13 @@ function InnerProposalView({ timelockConfig={timelockConfig} proposal={proposal} state={timelockState} + yeahVote={true} + /> +