From ce69933fffe9b5f75ac06f80c38bc87cb46d741b Mon Sep 17 00:00:00 2001
From: Tuditi <45079109+Tuditi@users.noreply.github.com>
Date: Thu, 16 Feb 2023 08:04:12 +0100
Subject: [PATCH] fix: correctly disable governance buttons (#5884)
* fix: confirm button stays disabled
* fix: disable revote button
* fix: use correct store to disable buttons
* chore: remove duplicate disable variabled
---------
Co-authored-by: MarkNerdi <105642810+MarkNerdi@users.noreply.github.com>
---
packages/shared/components/VotingPower.svelte | 6 ++++--
.../popups/ManageVotingPowerPopup.svelte | 18 +++++++-----------
.../components/popups/RevotePopup.svelte | 4 ++--
.../popups/VotingPowerToZeroPopup.svelte | 10 ++++------
4 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/packages/shared/components/VotingPower.svelte b/packages/shared/components/VotingPower.svelte
index 69ea3653ad4..1cb6d2957ed 100644
--- a/packages/shared/components/VotingPower.svelte
+++ b/packages/shared/components/VotingPower.svelte
@@ -5,6 +5,7 @@
import { localize } from '@core/i18n'
import { formatTokenAmountBestMatch, visibleSelectedAccountAssets } from '@core/wallet'
import { openPopup } from '@auxiliary/popup'
+ import { hasPendingGovernanceTransaction } from '@contexts/governance/stores'
const asset = $visibleSelectedAccountAssets?.baseCoin
@@ -12,6 +13,7 @@
$: maxVotingPower = parseInt($selectedAccount?.balances?.baseCoin?.available) + votingPower
$: formattedVotingPower = formatTokenAmountBestMatch(votingPower, asset?.metadata)
$: formattedMaxVotingPower = formatTokenAmountBestMatch(maxVotingPower, asset?.metadata)
+ $: isTransferring = $hasPendingGovernanceTransaction?.[$selectedAccount.index] || $selectedAccount?.isTransferring
function handleManageVotingPower(): void {
openPopup({
@@ -32,8 +34,8 @@
size={ButtonSize.Medium}
onClick={handleManageVotingPower}
classes="w-full"
- disabled={$selectedAccount.isTransferring}
- isBusy={$selectedAccount.isTransferring}
+ disabled={isTransferring}
+ isBusy={isTransferring}
>
{localize('views.governance.votingPower.manage')}
diff --git a/packages/shared/components/popups/ManageVotingPowerPopup.svelte b/packages/shared/components/popups/ManageVotingPowerPopup.svelte
index 489f4983d92..ea1a3b33e66 100644
--- a/packages/shared/components/popups/ManageVotingPowerPopup.svelte
+++ b/packages/shared/components/popups/ManageVotingPowerPopup.svelte
@@ -20,22 +20,18 @@
let assetAmountInput: AssetAmountInput
let amount: string
let rawAmount = newVotingPower ?? $selectedAccount?.votingPower
- let confirmDisabled = false
$: asset = $visibleSelectedAccountAssets?.baseCoin
$: votingPower = parseInt($selectedAccount?.votingPower, 10)
- $: isTransferring = $hasPendingGovernanceTransaction?.[$selectedAccount.index]
- $: disabled = $hasToRevote || isTransferring
+ $: isTransferring = $hasPendingGovernanceTransaction?.[$selectedAccount.index] || $selectedAccount?.isTransferring
+ $: disabled = getDisabled(amount, $hasToRevote, isTransferring)
- $: amount, disabled, setConfirmDisabled()
-
- function setConfirmDisabled(): void {
- if (disabled || !amount) {
- confirmDisabled = true
- return
+ function getDisabled(amount: string, hasToRevote: boolean, isTransferring: boolean): boolean {
+ if (!amount) {
+ return hasToRevote || isTransferring
}
const convertedSliderAmount = convertToRawAmount(amount, asset?.metadata).toString()
- confirmDisabled = convertedSliderAmount === $selectedAccount?.votingPower || $selectedAccount?.isTransferring
+ return convertedSliderAmount === $selectedAccount?.votingPower || isTransferring
}
function onCancelClick(): void {
@@ -102,7 +98,7 @@
-