Skip to content

Commit

Permalink
fix: correctly disable governance buttons (#5884)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
Tuditi and MarkNerdi996 committed Feb 16, 2023
1 parent dfb6362 commit ce69933
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 21 deletions.
6 changes: 4 additions & 2 deletions packages/shared/components/VotingPower.svelte
Expand Up @@ -5,13 +5,15 @@
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
$: votingPower = parseInt($selectedAccount?.votingPower, 10)
$: 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({
Expand All @@ -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')}
</Button>
Expand Down
18 changes: 7 additions & 11 deletions packages/shared/components/popups/ManageVotingPowerPopup.svelte
Expand Up @@ -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 {
Expand Down Expand Up @@ -102,7 +98,7 @@
<Button outline disabled={isTransferring} classes="w-full" onClick={onCancelClick}>
{localize('actions.cancel')}
</Button>
<Button type={HTMLButtonType.Submit} disabled={confirmDisabled} isBusy={isTransferring} classes="w-full">
<Button type={HTMLButtonType.Submit} {disabled} isBusy={isTransferring} classes="w-full">
{localize('actions.confirm')}
</Button>
</div>
Expand Down
4 changes: 2 additions & 2 deletions packages/shared/components/popups/RevotePopup.svelte
Expand Up @@ -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<void> {
await checkActiveProfileAuth(async () => {
Expand Down
10 changes: 4 additions & 6 deletions packages/shared/components/popups/VotingPowerToZeroPopup.svelte
Expand Up @@ -4,13 +4,16 @@
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'
import { popupState } from '@auxiliary/popup/stores'
const ZERO_VOTING_POWER = '0'
$: isTransferring = $hasPendingGovernanceTransaction?.[$selectedAccount.index]
function onCancelClick(): void {
closePopup()
}
Expand Down Expand Up @@ -40,12 +43,7 @@
<Button outline classes="w-full" onClick={onCancelClick}>
{localize('actions.cancel')}
</Button>
<Button
type={HTMLButtonType.Submit}
isBusy={$selectedAccount?.isTransferring}
disabled={$selectedAccount?.isTransferring}
classes="w-full"
>
<Button type={HTMLButtonType.Submit} isBusy={isTransferring} disabled={isTransferring} classes="w-full">
{localize('actions.confirm')}
</Button>
</div>
Expand Down

0 comments on commit ce69933

Please sign in to comment.