Skip to content

Commit 37077bc

Browse files
committed
Implement committee aproval modal
1 parent cff615b commit 37077bc

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

src/containers/votingTerminal/committeeVotingTerminal.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export const CommitteeVotingTerminal = ({
7272
notBegan,
7373
} = useGaslessCommiteVotes(address, proposal);
7474

75-
const {handleSubmitVote, transactionHash, executionFailed} =
75+
const {handleCommitteApprove, transactionHash, executionFailed} =
7676
useProposalTransactionContext();
7777

7878
const mappedProps = useMemo(() => {
@@ -154,14 +154,14 @@ export const CommitteeVotingTerminal = ({
154154
return {
155155
voteNowDisabled: false,
156156
onClick: () => {
157-
handleSubmitVote({vote: VoteValues.YES});
157+
handleCommitteApprove({vote: VoteValues.YES});
158158
},
159159
};
160160
} else return {voteNowDisabled: true};
161161
}, [
162162
address,
163163
canApprove,
164-
handleSubmitVote,
164+
handleCommitteApprove,
165165
isApprovalPeriod,
166166
isOnWrongNetwork,
167167
statusRef,

src/context/proposalTransaction.tsx

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ type ProposalTransactionContextType = {
5757
handleSubmitVote: (params: SubmitVoteParams) => void;
5858
handleExecuteProposal: () => void;
5959
handleGaslessVoting: (params: SubmitVoteParams) => void;
60+
handleCommitteApprove: (params: SubmitVoteParams) => void;
6061
isLoading: boolean;
6162
voteSubmitted: boolean;
6263
executeSubmitted: boolean;
@@ -87,6 +88,8 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
8788
const [showVoteModal, setShowVoteModal] = useState(false);
8889
const [showGaslessModal, setShowGaslessModal] = useState(false);
8990
const [showExecuteModal, setShowExecuteModal] = useState(false);
91+
const [showCommitteeApprovalModal, setShowCommitteeApprovalModal] =
92+
useState(false);
9093

9194
const [voteParams, setVoteParams] = useState<VoteProposalParams>();
9295
const [voteSubmitted, setVoteSubmitted] = useState(false);
@@ -179,6 +182,20 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
179182
[urlId]
180183
);
181184

185+
const handleCommitteApprove = useCallback(
186+
(params: SubmitVoteParams) => {
187+
setVoteParams({
188+
proposalId: new ProposalId(urlId!).export(),
189+
vote: params.vote,
190+
});
191+
setReplacingVote(!!params.replacement);
192+
setTokenAddress(params.token);
193+
setVoteProcessState(TransactionState.WAITING);
194+
setShowCommitteeApprovalModal(true);
195+
},
196+
[urlId]
197+
);
198+
182199
// estimate voting fees
183200
const estimateVotingFees = useCallback(async () => {
184201
if (voteParams) {
@@ -261,9 +278,11 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
261278
break;
262279
case TransactionState.SUCCESS:
263280
setShowVoteModal(false);
281+
setShowCommitteeApprovalModal(false);
264282
break;
265283
default: {
266284
setShowVoteModal(false);
285+
setShowCommitteeApprovalModal(false);
267286
stopPolling();
268287
}
269288
}
@@ -288,7 +307,10 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
288307
let voteToPersist;
289308

290309
// cache multisig vote
291-
if (pluginType === 'multisig.plugin.dao.eth') {
310+
if (
311+
pluginType === 'multisig.plugin.dao.eth' ||
312+
pluginType === GaselessPluginName
313+
) {
292314
voteToPersist = address.toLowerCase();
293315
}
294316

@@ -537,6 +559,7 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
537559
handleSubmitVote,
538560
handleExecuteProposal,
539561
handleGaslessVoting,
562+
handleCommitteApprove,
540563
isLoading,
541564
voteSubmitted,
542565
executeSubmitted,
@@ -547,6 +570,7 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
547570
handleSubmitVote,
548571
handleExecuteProposal,
549572
handleGaslessVoting,
573+
handleCommitteApprove,
550574
isLoading,
551575
voteSubmitted,
552576
executeSubmitted,
@@ -573,18 +597,22 @@ const ProposalTransactionProvider: React.FC<Props> = ({children}) => {
573597
title={
574598
showExecuteModal
575599
? t('labels.signExecuteProposal')
600+
: showCommitteeApprovalModal
601+
? t('labels.approveProposal')
576602
: t('labels.signVote')
577603
}
578604
buttonLabel={
579605
showExecuteModal
580606
? t('governance.proposals.buttons.execute')
607+
: showCommitteeApprovalModal
608+
? t('labels.approve')
581609
: t('governance.proposals.buttons.vote')
582610
}
583611
state={
584612
(showExecuteModal ? executeProcessState : voteProcessState) ||
585613
TransactionState.WAITING
586614
}
587-
isOpen={showVoteModal || showExecuteModal}
615+
isOpen={showVoteModal || showExecuteModal || showCommitteeApprovalModal}
588616
onClose={
589617
showExecuteModal ? handleCloseExecuteModal : handleCloseVoteModal
590618
}

src/locales/en/common.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
},
3737
"labels": {
3838
"approvals": "Approvals",
39+
"approve": "Approve",
40+
"approveProposal":"Approve proposal",
3941
"loading": "Loading …",
4042
"members": "Members",
4143
"tokenHolders": "Token holders",

0 commit comments

Comments
 (0)