diff --git a/packages/page-staking/src/Targets/Validator.tsx b/packages/page-staking/src/Targets/Validator.tsx
index 8d15301561..8cdd2d6481 100644
--- a/packages/page-staking/src/Targets/Validator.tsx
+++ b/packages/page-staking/src/Targets/Validator.tsx
@@ -7,7 +7,7 @@ import { ValidatorInfo } from '../types';
import React, { useCallback, useEffect, useState } from 'react';
import { ApiPromise } from '@polkadot/api';
-import { AddressSmall, Icon, Toggle } from '@polkadot/react-components';
+import { AddressSmall, Badge, Icon, Toggle } from '@polkadot/react-components';
import { FormatBalance } from '@polkadot/react-query';
import { useApi, useCall } from '@polkadot/react-hooks';
import { formatNumber } from '@polkadot/util';
@@ -75,7 +75,7 @@ function Validator ({ canSelect, info, isSelected, toggleFavorite, toggleSelecte
return null;
}
- const { accountId, bondOther, bondOwn, bondTotal, commissionPer, isCommission, isFavorite, isNominating, key, numNominators, rankOverall, rewardPayout, validatorPayment } = info;
+ const { accountId, bondOther, bondOwn, bondTotal, commissionPer, isCommission, isElected, isFavorite, isNominating, key, numNominators, rankOverall, rewardPayout, validatorPayment } = info;
return (
@@ -84,7 +84,14 @@ function Validator ({ canSelect, info, isSelected, toggleFavorite, toggleSelecte
isFavorite={isFavorite}
toggleFavorite={toggleFavorite}
/>
- |
+ |
+ {isElected && (
+ }
+ isInline
+ type='next'
+ />
+ )}
|
{formatNumber(rankOverall)} |
diff --git a/packages/page-staking/src/types.ts b/packages/page-staking/src/types.ts
index c2b9d7e9a8..546ac19651 100644
--- a/packages/page-staking/src/types.ts
+++ b/packages/page-staking/src/types.ts
@@ -48,6 +48,7 @@ export interface ValidatorInfo extends ValidatorInfoRank {
commissionPer: number;
hasIdentity: boolean;
isCommission: boolean;
+ isElected: boolean;
isFavorite: boolean;
isNominating: boolean;
key: string;
diff --git a/packages/page-staking/src/useSortedTargets.ts b/packages/page-staking/src/useSortedTargets.ts
index b1c951479e..f69c52ba6b 100644
--- a/packages/page-staking/src/useSortedTargets.ts
+++ b/packages/page-staking/src/useSortedTargets.ts
@@ -65,7 +65,7 @@ function sortValidators (list: ValidatorInfo[]): ValidatorInfo[] {
);
}
-function extractSingle (allAccounts: string[], amount: BN = baseBalance(), { info }: DeriveStakingElected | DeriveStakingWaiting, favorites: string[], perValidatorReward: BN): [ValidatorInfo[], string[], BN] {
+function extractSingle (allAccounts: string[], amount: BN = baseBalance(), { info }: DeriveStakingElected | DeriveStakingWaiting, favorites: string[], perValidatorReward: BN, isElected: boolean): [ValidatorInfo[], string[], BN] {
const nominators: string[] = [];
let totalStaked = BN_ZERO;
const list = info.map(({ accountId, exposure: _exposure, stakingLedger, validatorPrefs }): ValidatorInfo => {
@@ -114,6 +114,7 @@ function extractSingle (allAccounts: string[], amount: BN = baseBalance(), { inf
commissionPer: (((prefs as ValidatorPrefs).commission?.unwrap() || BN_ZERO).toNumber() / 10_000_000),
hasIdentity: false,
isCommission: !!(prefs as ValidatorPrefs).commission,
+ isElected,
isFavorite: favorites.includes(key),
isNominating,
key,
@@ -137,8 +138,8 @@ function extractSingle (allAccounts: string[], amount: BN = baseBalance(), { inf
function extractInfo (allAccounts: string[], amount: BN = baseBalance(), electedDerive: DeriveStakingElected, waitingDerive: DeriveStakingWaiting, favorites: string[], lastReward = BN_ONE): Partial {
const perValidatorReward = lastReward.divn(electedDerive.info.length);
- const [elected, nominators, totalStaked] = extractSingle(allAccounts, amount, electedDerive, favorites, perValidatorReward);
- const [waiting] = extractSingle(allAccounts, amount, waitingDerive, favorites, perValidatorReward);
+ const [elected, nominators, totalStaked] = extractSingle(allAccounts, amount, electedDerive, favorites, perValidatorReward, true);
+ const [waiting] = extractSingle(allAccounts, amount, waitingDerive, favorites, perValidatorReward, false);
const validators = sortValidators(elected.concat(waiting));
return { nominators, totalStaked, validators };