From 103e4dd8238f8e998dfafdf0c370be8be0adabf9 Mon Sep 17 00:00:00 2001 From: Nikola Glumac Date: Tue, 27 Oct 2020 12:49:34 +0100 Subject: [PATCH] [DDW] Fix stake slider pools selection --- .../staking/stake-pools/StakePoolsRanking.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/renderer/app/components/staking/stake-pools/StakePoolsRanking.js b/source/renderer/app/components/staking/stake-pools/StakePoolsRanking.js index 375a651800..06b49929dd 100644 --- a/source/renderer/app/components/staking/stake-pools/StakePoolsRanking.js +++ b/source/renderer/app/components/staking/stake-pools/StakePoolsRanking.js @@ -184,17 +184,17 @@ export default class StakePoolsRanking extends Component { const selectedWallet = wallets.find( (wallet) => wallet.id === selectedWalletId ); + const hasSelectedWallet = !!selectedWallet; + const isAllWalletsSelected = selectedWalletId === ALL_WALLETS_SELECTION_ID; + const wasSelectedWalletChanged = + selectedWalletId !== selectedDelegationWalletId; - if ( - selectedWalletId === selectedDelegationWalletId || - (selectedWalletId !== ALL_WALLETS_SELECTION_ID && !selectedWallet) - ) { + // Prevent ranking stake pools if we don't have data for the selected wallet ready + if (wasSelectedWalletChanged && !isAllWalletsSelected && !hasSelectedWallet) return; - } let amountValue = 0; let sliderValue = 0; - if (selectedWalletId === ALL_WALLETS_SELECTION_ID) { amountValue = Math.min( getAllAmounts(wallets).toNumber(), @@ -205,6 +205,11 @@ export default class StakePoolsRanking extends Component { } amountValue = Math.max(amountValue, MIN_DELEGATION_FUNDS); sliderValue = Math.round(Math.log(amountValue) * RANKING_SLIDER_RATIO); + const hasSliderValueChanged = sliderValue !== this.state.sliderValue; + + // Prevent ranking stake pools if selected wallet and slider value remains unchanged + if (!wasSelectedWalletChanged && !hasSliderValueChanged) return; + const displayValue = formattedWalletAmount( new BigNumber(amountValue), false