Support for optional usage of pallet_balance (#2578)

* Allow polkadot UI to function without having pallet_balance enabled

* Update packages/page-123code/src/SummaryBar.tsx

Co-Authored-By: Jaco Greeff <jacogr@gmail.com>

* formatting

* fix spacing

Co-authored-by: Jaco Greeff <jacogr@gmail.com>
This commit is contained in:
Brandon Kite 2020-04-16 22:22:26 -07:00 committed by GitHub
parent 80bf9e65a2
commit 805ee9dc5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 12 deletions

View File

@ -17,7 +17,7 @@ function SummaryBar (): React.ReactElement {
const { api, systemChain, systemName, systemVersion } = useApi();
const bestNumber = useCall<BlockNumber>(api.derive.chain.bestNumber, []);
const bestNumberLag = useCall<BlockNumber>(api.derive.chain.bestNumberLag, []);
const totalInsurance = useCall<Balance>(api.query.balances.totalIssuance, []);
const totalIssuance = useCall<Balance>(api.query.balances?.totalIssuance, []);
const validators = useCall<DeriveStakingValidators>(api.derive.staking.validators, []);
return (
@ -42,9 +42,14 @@ function SummaryBar (): React.ReactElement {
))
}</Bubble>
)}
<Bubble icon='circle' label='total tokens'>
{formatBalance(totalInsurance)}
</Bubble>
{totalIssuance && (
<Bubble
icon='circle'
label='total tokens'
>
{formatBalance(totalIssuance)}
</Bubble>
)}
</div>
</summary>
);

View File

@ -4,6 +4,7 @@
import BN from 'bn.js';
import React from 'react';
import { useApi } from '@polkadot/react-hooks';
import { SummaryBox, CardSummary } from '@polkadot/react-components';
import { BestFinalized, BestNumber, BlockToTime, TimeNow, TotalIssuance } from '@polkadot/react-query';
@ -14,6 +15,7 @@ const ONE_BLOCK = new BN(1);
function Summary (): React.ReactElement<{}> {
const { t } = useTranslation();
const { api } = useApi();
return (
<SummaryBox>
@ -27,12 +29,14 @@ function Summary (): React.ReactElement<{}> {
>
<BlockToTime blocks={ONE_BLOCK} />
</CardSummary>
<CardSummary
className='ui--media-small'
label={t('total issuance')}
>
<TotalIssuance />
</CardSummary>
{api.query.balances && (
<CardSummary
className='ui--media-small'
label={t('total issuance')}
>
<TotalIssuance />
</CardSummary>
)}
</section>
<section className='ui--media-large'>
<SummarySession withEra={false} />

View File

@ -22,7 +22,7 @@ interface Props {
function Summary ({ lastReward, numNominators, numValidators, totalStaked }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const { api } = useApi();
const totalIssuance = useCall<Balance>(api.query.balances.totalIssuance, []);
const totalIssuance = useCall<Balance>(api.query.balances?.totalIssuance, []);
const [percentage, setPercentage] = useState<string | undefined>();
useEffect((): void => {

View File

@ -15,7 +15,7 @@ interface Props extends BareProps {
function TotalIssuance ({ children, className, label, style }: Props): React.ReactElement<Props> {
const { api } = useApi();
const totalIssuance = useCall<string>(api.query.balances.totalIssuance, []);
const totalIssuance = useCall<string>(api.query.balances?.totalIssuance, []);
return (
<div