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 @@ - diff --git a/packages/shared/components/popups/RevotePopup.svelte b/packages/shared/components/popups/RevotePopup.svelte index 363a29702b8..5e904dd1a2b 100644 --- a/packages/shared/components/popups/RevotePopup.svelte +++ b/packages/shared/components/popups/RevotePopup.svelte @@ -5,10 +5,10 @@ import { closePopup } from '@auxiliary/popup/actions' import { checkActiveProfileAuth } from '@core/profile/actions' import { onDestroy } from 'svelte' - import { hasToRevote } from '@contexts/governance/stores' + import { hasPendingGovernanceTransaction, hasToRevote } from '@contexts/governance/stores' import { vote } from '@contexts/governance/actions' - $: disabled = $selectedAccount?.isTransferring + $: disabled = $hasPendingGovernanceTransaction?.[$selectedAccount.index] async function onSubmit(): Promise { await checkActiveProfileAuth(async () => { diff --git a/packages/shared/components/popups/VotingPowerToZeroPopup.svelte b/packages/shared/components/popups/VotingPowerToZeroPopup.svelte index 441dc8a4312..bc9ec2dec65 100644 --- a/packages/shared/components/popups/VotingPowerToZeroPopup.svelte +++ b/packages/shared/components/popups/VotingPowerToZeroPopup.svelte @@ -4,6 +4,7 @@ import { selectedAccount } from '@core/account/stores' import { handleError } from '@core/error/handlers' import { setVotingPower } from '@contexts/governance/actions' + import { hasPendingGovernanceTransaction } from '@contexts/governance/stores' import { localize } from '@core/i18n' import { checkActiveProfileAuth } from '@core/profile/actions' import { closePopup, openPopup } from '@auxiliary/popup/actions' @@ -11,6 +12,8 @@ const ZERO_VOTING_POWER = '0' + $: isTransferring = $hasPendingGovernanceTransaction?.[$selectedAccount.index] + function onCancelClick(): void { closePopup() } @@ -40,12 +43,7 @@ -