From 71616eed441c2da117401308c3a27142d34aab2c Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 13 Mar 2021 22:58:41 +0100 Subject: [PATCH] Display lease period (#4842) * Display lease period * useLeasePeriod --- .../page-parachains/src/Overview/Summary.tsx | 14 ++++++++ .../page-parachains/src/useLeasePeriod.ts | 34 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 packages/page-parachains/src/useLeasePeriod.ts diff --git a/packages/page-parachains/src/Overview/Summary.tsx b/packages/page-parachains/src/Overview/Summary.tsx index 29d1f24ab6..b930297329 100644 --- a/packages/page-parachains/src/Overview/Summary.tsx +++ b/packages/page-parachains/src/Overview/Summary.tsx @@ -10,6 +10,7 @@ import { BestNumber } from '@polkadot/react-query'; import { formatNumber, isNumber } from '@polkadot/util'; import { useTranslation } from '../translate'; +import useLeasePeriod from '../useLeasePeriod'; interface Props { parachainCount?: number; @@ -20,6 +21,7 @@ interface Props { function Summary ({ parachainCount, proposalCount, upcomingCount }: Props): React.ReactElement { const { t } = useTranslation(); const { api } = useApi(); + const leaseInfo = useLeasePeriod(); return ( @@ -46,6 +48,18 @@ function Summary ({ parachainCount, proposalCount, upcomingCount }: Props): Reac )} + {leaseInfo && ( + ('lease period')} + progress={{ + total: leaseInfo.length, + value: leaseInfo.remainder, + withTime: true + }} + > + {formatNumber(leaseInfo.currentPeriod)} + + )}
(api.derive.chain.bestNumber); + + return useMemo((): Result | null => { + if (api.consts.slots?.leasePeriod && bestNumber) { + const length = api.consts.slots.leasePeriod as BlockNumber; + + return { + currentPeriod: bestNumber.div(length), + length, + remainder: bestNumber.mod(length) + }; + } + + return null; + }, [api, bestNumber]); +}