fix: fix vote refund and token withdrawal messages

This commit is contained in:
Sebastian.Bor 2021-04-06 11:00:57 +01:00
parent af2969ea35
commit e6a6122142
4 changed files with 52 additions and 21 deletions

View File

@ -12,7 +12,11 @@ import {
actions, actions,
} from '@oyster/common'; } from '@oyster/common';
import { TimelockSet, TimelockState } from '../models/timelock'; import {
TimelockSet,
TimelockState,
TimelockStateStatus,
} from '../models/timelock';
import { AccountLayout } from '@solana/spl-token'; import { AccountLayout } from '@solana/spl-token';
import { withdrawVotingTokensInstruction } from '../models/withdrawVotingTokens'; import { withdrawVotingTokensInstruction } from '../models/withdrawVotingTokens';
import { LABELS } from '../constants'; import { LABELS } from '../constants';
@ -141,8 +145,13 @@ export const withdrawVotingTokens = async (
), ),
); );
const [msg, completedMsg] =
state.info.status === TimelockStateStatus.Voting
? [LABELS.WITHDRAWING_YOUR_VOTE, LABELS.VOTE_WITHDRAWN]
: [LABELS.REFUNDING_YOUR_TOKENS, LABELS.TOKENS_REFUNDED];
notify({ notify({
message: LABELS.WITHDRAWING_VOTING_TOKENS, message: msg,
description: LABELS.PLEASE_WAIT, description: LABELS.PLEASE_WAIT,
type: 'warn', type: 'warn',
}); });
@ -157,7 +166,7 @@ export const withdrawVotingTokens = async (
); );
notify({ notify({
message: LABELS.TOKENS_WITHDRAWN, message: completedMsg,
type: 'success', type: 'success',
description: LABELS.TRANSACTION + ` ${tx}`, description: LABELS.TRANSACTION + ` ${tx}`,
}); });

View File

@ -10,11 +10,7 @@ import {
import { LABELS } from '../../constants'; import { LABELS } from '../../constants';
import { depositSourceTokensAndVote } from '../../actions/depositSourceTokensAndVote'; import { depositSourceTokensAndVote } from '../../actions/depositSourceTokensAndVote';
import { contexts, hooks } from '@oyster/common'; import { contexts, hooks } from '@oyster/common';
import { import { CheckOutlined, CloseOutlined } from '@ant-design/icons';
ExclamationCircleOutlined,
CheckOutlined,
CloseOutlined,
} from '@ant-design/icons';
import './style.less'; import './style.less';

View File

@ -40,23 +40,41 @@ export function WithdrawVote({
((noVoteAccount && noVoteAccount.info.amount.toNumber()) || 0); ((noVoteAccount && noVoteAccount.info.amount.toNumber()) || 0);
const eligibleToView = const eligibleToView =
votingTokens > 0 && state.info.status === TimelockStateStatus.Voting; votingTokens > 0 &&
(state.info.status === TimelockStateStatus.Voting ||
state.info.status === TimelockStateStatus.Completed ||
state.info.status === TimelockStateStatus.Defeated);
const [btnLabel, title, msg, action] =
state.info.status === TimelockStateStatus.Voting
? [
LABELS.WITHDRAW_VOTE,
LABELS.WITHDRAW_YOUR_VOTE_QUESTION,
LABELS.WITHDRAW_YOUR_VOTE_MSG,
LABELS.WITHDRAW,
]
: [
LABELS.REFUND_TOKENS,
LABELS.REFUND_YOUR_TOKENS_QUESTION,
LABELS.REFUND_YOUR_TOKENS_MSG,
LABELS.REFUND,
];
return eligibleToView ? ( return eligibleToView ? (
<Button <Button
type="primary" type="primary"
onClick={() => onClick={() =>
confirm({ confirm({
title: LABELS.WITHDRAW_YOUR_VOTE_QUESTION, title: title,
icon: <ExclamationCircleOutlined />, icon: <ExclamationCircleOutlined />,
content: ( content: (
<Row> <Row>
<Col span={24}> <Col span={24}>
<p>{LABELS.WITHDRAW_YOUR_VOTE_MSG}</p> <p>{msg}</p>
</Col> </Col>
</Row> </Row>
), ),
okText: LABELS.WITHDRAW, okText: action,
cancelText: LABELS.CANCEL, cancelText: LABELS.CANCEL,
onOk: async () => { onOk: async () => {
if (userAccount) { if (userAccount) {
@ -76,7 +94,7 @@ export function WithdrawVote({
}) })
} }
> >
{LABELS.WITHDRAW_VOTE} {btnLabel}
</Button> </Button>
) : null; ) : null;
} }

View File

@ -64,31 +64,39 @@ export const LABELS = {
VOTE_YEAH: 'Yeah', VOTE_YEAH: 'Yeah',
VOTE_YEAH_QUESTION: 'Vote Yeah?', VOTE_YEAH_QUESTION: 'Vote Yeah?',
VOTE_YEAH_MSG: 'Vote in favour of the proposal.', VOTE_YEAH_MSG: 'Vote in favour of the proposal.',
VOTING_YEAH: 'Voting for the proposal.', VOTING_YEAH: 'Voting for the proposal',
VOTED_YEAH: 'Voted for the proposal.', VOTED_YEAH: 'Voted for the proposal',
VOTE_NAY: 'Nay', VOTE_NAY: 'Nay',
VOTE_NAY_QUESTION: 'Vote Nay?', VOTE_NAY_QUESTION: 'Vote Nay?',
VOTE_NAY_MSG: 'Vote against the proposal.', VOTE_NAY_MSG: 'Vote against the proposal.',
VOTING_NAY: 'Voting against the proposal.', VOTING_NAY: 'Voting against the proposal',
VOTED_NAY: 'Voted against the proposal.', VOTED_NAY: 'Voted against the proposal',
TOKENS_VOTED_FOR_THE_PROPOSAL: 'tokens voted for the proposal', TOKENS_VOTED_FOR_THE_PROPOSAL: 'tokens voted for the proposal',
TOKENS_VOTED_AGAINST_THE_PROPOSAL: 'tokens voted against the proposal', TOKENS_VOTED_AGAINST_THE_PROPOSAL: 'tokens voted against the proposal',
EXECUTING: 'Executing...', EXECUTING: 'Executing...',
EXECUTED: 'Executed.', EXECUTED: 'Executed.',
WITHDRAWING_VOTING_TOKENS: 'Refunding voting tokens as Source Tokens',
TOKENS_WITHDRAWN: 'Voting tokens refunded as Source Tokens',
CONFIRM: 'Confirm', CONFIRM: 'Confirm',
CANCEL: 'Cancel', CANCEL: 'Cancel',
WITHDRAW_VOTE: 'Withdraw My Vote', WITHDRAW_VOTE: 'Withdraw My Vote',
WITHDRAW: 'Withdraw',
WITHDRAW_YOUR_VOTE_QUESTION: 'Withdraw your vote?', WITHDRAW_YOUR_VOTE_QUESTION: 'Withdraw your vote?',
WITHDRAW_YOUR_VOTE_MSG: WITHDRAW_YOUR_VOTE_MSG:
'Once you withdraw your vote it wont count towards the proposal voting outcome.', 'Once you withdraw your vote it wont count towards the proposal voting outcome.',
WITHDRAW: 'Withdraw',
WITHDRAWING_YOUR_VOTE: 'Withdrawing your vote',
VOTE_WITHDRAWN: 'Your vote has been withdrawn',
REFUND_TOKENS: 'Refund My Tokens',
REFUND_YOUR_TOKENS_QUESTION: 'Refund your tokens?',
REFUND_YOUR_TOKENS_MSG:
'The proposal has been voted. Refunding your tokens wont change the outcome.',
REFUND: 'Refund',
REFUNDING_YOUR_TOKENS: 'Refunding your tokens',
TOKENS_REFUNDED: 'Your voting tokens have been refunded',
REGISTER_GOVERNANCE: 'Register', REGISTER_GOVERNANCE: 'Register',
PROGRAM: 'Program ID', PROGRAM: 'Program ID',