// Copyright 2017-2019 @polkadot/app-staking 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 { BareProps } from './types'; import BN from 'bn.js'; import React from 'react'; import { AccountId, AccountIndex, Address, Balance } from '@polkadot/types'; import { withCall, withMulti } from '@polkadot/ui-api/index'; import { classes, toShortAddress } from './util'; import BalanceDisplay from './Balance'; import IdentityIcon from './IdentityIcon'; type Props = BareProps & { balance?: Balance | Array | BN, children?: React.ReactNode, isPadded?: boolean, isShort?: boolean, session_validators?: Array, value?: AccountId | AccountIndex | Address | string, withAddress?: boolean, withBalance?: boolean }; class AddressMini extends React.PureComponent { render () { const { children, className, isPadded = true, session_validators, style, value } = this.props; if (!value) { return null; } const address = value.toString(); const isValidator = (session_validators || []).find((validator) => validator.toString() === address ); return (
{this.renderAddress(address)} {children}
{this.renderBalance()}
); } private renderAddress (address: string) { const { isShort = true, withAddress = true } = this.props; if (!withAddress) { return null; } return (
{isShort ? toShortAddress(address) : address}
); } private renderBalance () { const { balance, value, withBalance = false } = this.props; if (!withBalance || !value) { return null; } return ( ); } } export default withMulti( AddressMini, withCall('query.session.validators') );