diff --git a/pages/distribution.js b/pages/distribution.js index 0d3f4ce1..227830b3 100644 --- a/pages/distribution.js +++ b/pages/distribution.js @@ -45,6 +45,59 @@ export default function Distribution({ selectedCurrency, fiatRate }) { { value: 'locked', label: 'With Escrow balances included (balance + escrow locked)' } ] + // calculate total balance including escrow + const calculateTotalBalance = (record, mode = escrowMode) => { + const baseBalance = parseInt(record.balance) + if (mode === 'short' && record.escrowShortBalance) { + return baseBalance + parseInt(record.escrowShortBalance) + } + if (mode === 'locked' && record.escrowLockedBalance) { + return baseBalance + parseInt(record.escrowLockedBalance) + } + return baseBalance + } + + const getEscrowAmount = (record, mode) => { + if (mode === 'short' && record.escrowShortBalance) { + return parseInt(record.escrowShortBalance) + } + if (mode === 'locked' && record.escrowLockedBalance) { + return parseInt(record.escrowLockedBalance) + } + return 0 + } + + const renderBalance = (amount, totalCoins) => ( + <> + {amountFormat(amount)} {percentFormat(amount, totalCoins)} +
+ {devNet + ? t('table.no-value') + : fiatRate > 0 && nativeCurrencyToFiat({ amount, selectedCurrency, fiatRate })} + + ) + + const renderLoadingState = (colSpan = "100") => ( + + +
+ +
+ {t('general.loading')} +
+
+ + + ) + + const renderErrorState = (colSpan = "100") => ( + + + {errorMessage} + + + ) + const checkApi = async () => { let apiUrl = 'v2/addresses/richlist' @@ -188,16 +241,7 @@ export default function Distribution({ selectedCurrency, fiatRate }) { {loading ? ( - - -
- -
- {t('general.loading')} -
-
- - + renderLoadingState() ) : ( <> {!errorMessage && data ? ( @@ -210,52 +254,23 @@ export default function Distribution({ selectedCurrency, fiatRate }) { - {amountFormat(r.balance)} {percentFormat(r.balance, rawData.summary?.totalCoins)} -
- {devNet - ? t('table.no-value') - : fiatRate > 0 && - nativeCurrencyToFiat({ amount: r.balance, selectedCurrency, fiatRate })} + {renderBalance(calculateTotalBalance(r), rawData.summary?.totalCoins)} {escrowMode === 'short' && r.escrowShortBalance && ( - {amountFormat(r.escrowShortBalance)}{' '} - {percentFormat(r.escrowShortBalance, rawData.summary?.totalCoins)} -
- {devNet - ? t('table.no-value') - : fiatRate > 0 && - nativeCurrencyToFiat({ - amount: r.escrowShortBalance, - selectedCurrency, - fiatRate - })} + {renderBalance(getEscrowAmount(r, 'short'), rawData.summary?.totalCoins, true)} )} {escrowMode === 'locked' && r.escrowLockedBalance && ( - {amountFormat(r.escrowLockedBalance)}{' '} - {percentFormat(r.escrowLockedBalance, rawData.summary?.totalCoins)} -
- {devNet - ? t('table.no-value') - : fiatRate > 0 && - nativeCurrencyToFiat({ - amount: r.escrowLockedBalance, - selectedCurrency, - fiatRate - })} + {renderBalance(getEscrowAmount(r, 'locked'), rawData.summary?.totalCoins, true)} )} ))} ) : ( - - - {errorMessage} - - + renderErrorState() )} )} @@ -266,16 +281,7 @@ export default function Distribution({ selectedCurrency, fiatRate }) { {loading ? ( - - -
- -
- {t('general.loading')} -
-
- - + renderLoadingState() ) : ( <> {!errorMessage ? ( @@ -288,43 +294,39 @@ export default function Distribution({ selectedCurrency, fiatRate }) {

- {t('table.balance')}: {amountFormat(r.balance)}{' '} - {percentFormat(r.balance, rawData.summary?.totalCoins)}{' '} + {t('table.balance')}: {amountFormat(calculateTotalBalance(r))}{' '} + {percentFormat(calculateTotalBalance(r), rawData.summary?.totalCoins)}{' '} {devNet ? t('table.no-value') : fiatRate > 0 && - nativeCurrencyToFiat({ amount: r.balance, selectedCurrency, fiatRate })} + nativeCurrencyToFiat({ amount: calculateTotalBalance(r), selectedCurrency, fiatRate })}

{escrowMode === 'short' && r.escrowShortBalance && (

- Escrow Short: {amountFormat(r.escrowShortBalance)}{' '} - {percentFormat(r.escrowShortBalance, rawData.summary?.totalCoins)}{' '} + Escrow Short: {amountFormat(getEscrowAmount(r, 'short'))}{' '} + {percentFormat(getEscrowAmount(r, 'short'), rawData.summary?.totalCoins)}{' '} {devNet ? t('table.no-value') : fiatRate > 0 && - nativeCurrencyToFiat({ amount: r.escrowShortBalance, selectedCurrency, fiatRate })} + nativeCurrencyToFiat({ amount: getEscrowAmount(r, 'short'), selectedCurrency, fiatRate })}

)} {escrowMode === 'locked' && r.escrowLockedBalance && (

- Escrow Locked: {amountFormat(r.escrowLockedBalance)}{' '} - {percentFormat(r.escrowLockedBalance, rawData.summary?.totalCoins)} + Escrow Locked: {amountFormat(getEscrowAmount(r, 'locked'))}{' '} + {percentFormat(getEscrowAmount(r, 'locked'), rawData.summary?.totalCoins)}
{devNet ? t('table.no-value') : fiatRate > 0 && - nativeCurrencyToFiat({ amount: r.escrowLockedBalance, selectedCurrency, fiatRate })} + nativeCurrencyToFiat({ amount: getEscrowAmount(r, 'locked'), selectedCurrency, fiatRate })}

)} )) ) : ( - - - {errorMessage} - - + renderErrorState() )} )}