diff --git a/packages/page-democracy/src/Overview/DispatchEntry.tsx b/packages/page-democracy/src/Overview/DispatchEntry.tsx index a894a28995..4ee6d7acf4 100644 --- a/packages/page-democracy/src/Overview/DispatchEntry.tsx +++ b/packages/page-democracy/src/Overview/DispatchEntry.tsx @@ -5,9 +5,11 @@ import { AccountId, Balance, BlockNumber, Hash, Proposal, ReferendumIndex } from '@polkadot/types/interfaces'; import { ITuple } from '@polkadot/types/types'; +import BN from 'bn.js'; import React, { useEffect, useState } from 'react'; import { LinkExternal } from '@polkadot/react-components'; import { useApi, useCall } from '@polkadot/react-hooks'; +import { BlockToTime } from '@polkadot/react-query'; import { Bytes, Option } from '@polkadot/types'; import { formatNumber } from '@polkadot/util'; @@ -24,6 +26,7 @@ interface Props { export default function DispatchEntry ({ blockNumber, hash, referendumIndex }: Props): React.ReactElement { const { t } = useTranslation(); const { api } = useApi(); + const bestNumber = useCall(api.derive.chain.bestNumber, []) || new BN(0); const preimage = useCall> >(api.query.democracy.preimages, [hash]); const [proposal, setProposal] = useState(); @@ -37,10 +40,11 @@ export default function DispatchEntry ({ blockNumber, hash, referendumIndex }: P return (

{formatNumber(referendumIndex)}

- + {blockNumber && ( <> + {formatNumber(blockNumber)} )} diff --git a/packages/page-democracy/src/Overview/Referendum.tsx b/packages/page-democracy/src/Overview/Referendum.tsx index 7178c74044..fa89968a8d 100644 --- a/packages/page-democracy/src/Overview/Referendum.tsx +++ b/packages/page-democracy/src/Overview/Referendum.tsx @@ -11,7 +11,7 @@ import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; import { Button, LinkExternal } from '@polkadot/react-components'; import { useApi, useCall } from '@polkadot/react-hooks'; -import { FormatBalance } from '@polkadot/react-query'; +import { FormatBalance, BlockToTime } from '@polkadot/react-query'; import { formatNumber } from '@polkadot/util'; import { useTranslation } from '../translate'; @@ -90,6 +90,7 @@ function Referendum ({ className, idNumber, value }: Props): React.ReactElement< } const enactBlock = value.info.end.add(value.info.delay); + const remainBlock = value.info.end.sub(bestNumber).subn(1); return ( @@ -101,10 +102,12 @@ function Referendum ({ className, idNumber, value }: Props): React.ReactElement< /> - {formatNumber(value.info.end.sub(bestNumber).subn(1))} blocks + + {t('{{blocks}} blocks', { replace: { blocks: formatNumber(remainBlock) } })} + {formatNumber(enactBlock)} diff --git a/packages/react-query/src/BlockToTime.tsx b/packages/react-query/src/BlockToTime.tsx index adfdafd2f1..585a10bd3b 100644 --- a/packages/react-query/src/BlockToTime.tsx +++ b/packages/react-query/src/BlockToTime.tsx @@ -70,8 +70,8 @@ export default function BlockToTime ({ blocks, children, className, label, style time[2] ? (time[2] > 1) ? t('{{m}} mins', { replace: { m: time[2] } }) : t('1 min') : null, time[3] ? (time[3] > 1) ? t('{{s}} s', { replace: { s: time[3] } }) : t('1 s') : null ].filter((value): value is string => !!value) - .join(', '); - }, [api, t]); + .join(' '); + }, [api, blocks, t]); return (