/* eslint-disable @typescript-eslint/camelcase */ // Copyright 2017-2019 @polkadot/app-123code authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import { DeriveStakingValidators } from '@polkadot/api-derive/types'; import { BareProps, I18nProps } from '@polkadot/react-components/types'; import { Balance, BlockNumber } from '@polkadot/types/interfaces'; import React from 'react'; import { Bubble, IdentityIcon } from '@polkadot/react-components'; import { useApi, useCall } from '@polkadot/react-hooks'; import { formatBalance, formatNumber } from '@polkadot/util'; import translate from './translate'; interface Props extends BareProps, I18nProps {} // eslint-disable-next-line @typescript-eslint/no-unused-vars function SummaryBar (props: Props): React.ReactElement { const { api, systemChain, systemName, systemVersion } = useApi(); const bestNumber = useCall(api.derive.chain.bestNumber, []); const bestNumberLag = useCall(api.derive.chain.bestNumberLag, []); const totalInsurance = useCall(api.query.balances.totalIssuance, []); const validators = useCall(api.derive.staking.validators, []); return (
{systemName} v{systemVersion} {systemChain} {api.runtimeVersion.implName} v{api.runtimeVersion.implVersion.toString(10)} {formatNumber(bestNumber)} ({formatNumber(bestNumberLag)} lag) {validators && ( { validators.validators.map((accountId, index): React.ReactNode => ( )) } )} {formatBalance(totalInsurance)}
); } // inject the actual API calls automatically into props export default translate(SummaryBar);