/* eslint-disable @typescript-eslint/camelcase */ // Copyright 2017-2019 @polkadot/react-components 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 { DerivedBalances, DerivedStaking } from '@polkadot/api-derive/types'; import { ValidatorPrefs0to145 } from '@polkadot/types/interfaces'; import { BareProps, I18nProps } from './types'; import BN from 'bn.js'; import React from 'react'; import styled from 'styled-components'; import { formatBalance, formatNumber } from '@polkadot/util'; import { Icon, Tooltip, TxButton } from '@polkadot/react-components'; import { withCalls, withMulti } from '@polkadot/react-api'; import CryptoType from './CryptoType'; import Label from './Label'; import translate from './translate'; // true to display, or (for bonded) provided values [own, ...all extras] export interface BalanceActiveType { available?: boolean; bonded?: boolean | BN[]; free?: boolean; redeemable?: boolean; unlocking?: boolean; } export interface CryptoActiveType { crypto?: boolean; nonce?: boolean; } export interface ValidatorPrefsType { unstakeThreshold?: boolean; validatorPayment?: boolean; } type Props = BareProps & I18nProps & { address: string; balances_all?: DerivedBalances; children?: React.ReactNode; staking_info?: DerivedStaking; withBalance?: boolean | BalanceActiveType; withExtended?: boolean | CryptoActiveType; withHexSessionId: string | null; withRewardDestination?: boolean; withValidatorPrefs?: boolean | ValidatorPrefsType; }; class AddressInfo extends React.PureComponent { public render (): React.ReactNode { const { children, className } = this.props; return (
{this.renderBalances()} {this.renderHexSessionId()} {this.renderValidatorPrefs()} {this.renderRewardDestination()}
{this.renderExtended()} {children && (
{children}
)}
); } private renderBalances (): React.ReactNode { const { balances_all, staking_info, t, withBalance = true } = this.props; const balanceDisplay = withBalance === true ? { available: true, bonded: true, free: true, redeemable: true, unlocking: true } : withBalance || undefined; if (!balanceDisplay || !balances_all) { return null; } return ( <> {balanceDisplay.free && ( <>