From 2c1c6505b79d9b99bc39e2a3ec0c4db97cfaccc7 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sun, 28 Mar 2021 10:05:38 +0300 Subject: [PATCH] Check newRaise vec for active crowdloans --- .../page-parachains/src/Auctions/Auction.tsx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/page-parachains/src/Auctions/Auction.tsx b/packages/page-parachains/src/Auctions/Auction.tsx index e49e5a69fd..45ea154d43 100644 --- a/packages/page-parachains/src/Auctions/Auction.tsx +++ b/packages/page-parachains/src/Auctions/Auction.tsx @@ -1,11 +1,13 @@ // Copyright 2017-2021 @polkadot/app-parachains authors & contributors // SPDX-License-Identifier: Apache-2.0 +import type { ParaId } from '@polkadot/types/interfaces'; import type { AuctionInfo, Campaigns, WinnerData, Winning } from '../types'; import React, { useCallback, useRef } from 'react'; import { Table } from '@polkadot/react-components'; +import { useApi, useCall } from '@polkadot/react-hooks'; import { useTranslation } from '../translate'; import WinRange from './WinRange'; @@ -19,6 +21,8 @@ interface Props { function Auction ({ auctionInfo, campaigns, className, winningData }: Props): React.ReactElement { const { t } = useTranslation(); + const { api } = useApi(); + const newRaise = useCall(api.query.crowdloan.newRaise); const headerRef = useRef([ [t('bids'), 'start', 3], @@ -29,19 +33,20 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re ]); const interleave = useCallback( - (winners: WinnerData[], asIs: boolean): WinnerData[] => { + (winners: WinnerData[], newRaise: ParaId[], asIs: boolean): WinnerData[] => { if (asIs) { return winners; } - const sorted = (campaigns.funds || []).sort((a, b) => b.value.cmp(a.value)); + const sorted = (campaigns.funds || []) + .filter(({ paraId }) => newRaise.some((n) => n.eq(paraId))) + .sort((a, b) => b.value.cmp(a.value)); return winners.map((w): WinnerData => - sorted.find(({ firstSlot, isWinner, lastSlot, value }) => + sorted.find(({ firstSlot, lastSlot, value }) => w.firstSlot.eq(firstSlot) && w.lastSlot.eq(lastSlot) && - w.value.lt(value) && - !isWinner + w.value.lt(value) ) || w ); }, @@ -52,7 +57,7 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re ('No winners in this auction') : t('No ongoing auction') @@ -61,9 +66,9 @@ function Auction ({ auctionInfo, campaigns, className, winningData }: Props): Re header={headerRef.current} noBodyTag > - {auctionInfo && winningData?.map(({ blockNumber, winners }, round) => ( + {auctionInfo && newRaise && winningData?.map(({ blockNumber, winners }, round) => ( - {interleave(winners, round !== 0 || winningData.length !== 1).map((value, index) => ( + {interleave(winners, newRaise, round !== 0 || winningData.length !== 1).map((value, index) => (