From 42790b339fd1836f18eea87e2ace0b05863d71ab Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 26 Mar 2021 19:00:32 +0100 Subject: [PATCH] No contributions to past crowdloans (#4953) * No contributions to past crowdloans * Past status to completed * Remove extra var --- .../page-parachains/src/Crowdloan/Fund.tsx | 6 ++++-- .../page-parachains/src/Crowdloan/Funds.tsx | 19 +++++++++++-------- .../page-parachains/src/Crowdloan/index.tsx | 1 + 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/page-parachains/src/Crowdloan/Fund.tsx b/packages/page-parachains/src/Crowdloan/Fund.tsx index 17404c88ba..3545cd853e 100644 --- a/packages/page-parachains/src/Crowdloan/Fund.tsx +++ b/packages/page-parachains/src/Crowdloan/Fund.tsx @@ -58,7 +58,7 @@ function Fund ({ bestNumber, className, isOngoing, value: { info: { cap, deposit [cap, raised] ); - const canContribute = blocksLeft && !isCapped && !isWinner && retiring.isFalse; + const canContribute = isOngoing && blocksLeft && !isCapped && !isWinner && retiring.isFalse; const canDissolve = raised.isZero() || isRetired; return ( @@ -75,7 +75,9 @@ function Fund ({ bestNumber, className, isOngoing, value: { info: { cap, deposit : blocksLeft ? isCapped ? t('Capped') - : t('Active') + : isOngoing + ? t('Active') + : t('Past') : t('Ended') } diff --git a/packages/page-parachains/src/Crowdloan/Funds.tsx b/packages/page-parachains/src/Crowdloan/Funds.tsx index 7a731f2fd7..8ae3e2daa4 100644 --- a/packages/page-parachains/src/Crowdloan/Funds.tsx +++ b/packages/page-parachains/src/Crowdloan/Funds.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import type BN from 'bn.js'; -import type { Campaign } from '../types'; +import type { Campaign, LeasePeriod } from '../types'; import React, { useMemo, useRef } from 'react'; @@ -14,19 +14,22 @@ import Fund from './Fund'; interface Props { bestNumber?: BN; className?: string; + leasePeriod?: LeasePeriod; value: Campaign[] | null; } -function extractLists (value: Campaign[] | null): [Campaign[] | null, Campaign[] | null] { - return value +function extractLists (value: Campaign[] | null, leasePeriod?: LeasePeriod): [Campaign[] | null, Campaign[] | null] { + const currentPeriod = leasePeriod?.currentPeriod; + + return value && currentPeriod ? [ - value.filter(({ isCapped, isEnded, isWinner }) => !(isCapped || isEnded || isWinner)), - value.filter(({ isCapped, isEnded, isWinner }) => (isCapped || isEnded || isWinner)) + value.filter(({ firstSlot, isCapped, isEnded, isWinner }) => !(isCapped || isEnded || isWinner) && currentPeriod.lt(firstSlot)), + value.filter(({ firstSlot, isCapped, isEnded, isWinner }) => (isCapped || isEnded || isWinner) || currentPeriod.gte(firstSlot)) ] : [null, null]; } -function Funds ({ bestNumber, className, value }: Props): React.ReactElement { +function Funds ({ bestNumber, className, leasePeriod, value }: Props): React.ReactElement { const { t } = useTranslation(); const headerActiveRef = useRef([ @@ -47,8 +50,8 @@ function Funds ({ bestNumber, className, value }: Props): React.ReactElement extractLists(value), - [value] + () => extractLists(value, leasePeriod), + [leasePeriod, value] ); return ( diff --git a/packages/page-parachains/src/Crowdloan/index.tsx b/packages/page-parachains/src/Crowdloan/index.tsx index 6e7ae9c574..a106e1b290 100644 --- a/packages/page-parachains/src/Crowdloan/index.tsx +++ b/packages/page-parachains/src/Crowdloan/index.tsx @@ -42,6 +42,7 @@ function Crowdloan ({ auctionInfo, campaigns: { activeCap, activeRaised, funds,