From c57ff7057a817f82ec34f329236c65b9ffcee837 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 13 Jan 2021 10:12:25 +0100 Subject: [PATCH] Show scheduled/approved (#4383) --- .../page-parachains/src/Overview/Proposal.tsx | 14 +++--- .../src/Overview/Proposals.tsx | 2 +- .../page-parachains/src/Overview/types.tsx | 15 +++++- .../src/Overview/useProposals.ts | 50 +++++++------------ 4 files changed, 39 insertions(+), 42 deletions(-) diff --git a/packages/page-parachains/src/Overview/Proposal.tsx b/packages/page-parachains/src/Overview/Proposal.tsx index cbcd5fa9b4..ca3c79109c 100644 --- a/packages/page-parachains/src/Overview/Proposal.tsx +++ b/packages/page-parachains/src/Overview/Proposal.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import type { ParaId } from '@polkadot/types/interfaces'; -import type { ScheduledProposals } from './useProposals'; +import type { ScheduledProposals } from './types'; import React, { useMemo } from 'react'; @@ -33,12 +33,12 @@ function Proposal ({ approvedIds, id, scheduled }: Props): React.ReactElement proposal && sliceHex(proposal.proposal.genesisHead, 8), + () => proposal?.proposal && sliceHex(proposal.proposal.genesisHead, 8), [proposal] ); const validationHex = useMemo( - () => proposal && sliceHex(proposal.proposal.validationCode, 8), + () => proposal?.proposal && sliceHex(proposal.proposal.validationCode, 8), [proposal] ); @@ -53,12 +53,12 @@ function Proposal ({ approvedIds, id, scheduled }: Props): React.ReactElement )} - {proposal?.proposal.name.toUtf8()} - {proposal && } - {proposal && } + {proposal?.proposal?.name.toUtf8()} + {proposal?.proposal && } + {proposal?.proposal && } {initialHex} {validationHex} - {proposal?.proposal.validators.map((validatorId) => ( + {proposal?.proposal?.validators.map((validatorId) => ( >(api.query.proposeParachain_UNUSED?.proposals, [id]); + + return useMemo( + (): ProposalExt => ({ + id, + isApproved: approvedIds.some((a) => a.eq(id)), + isScheduled: scheduled.some(({ scheduledIds }) => scheduledIds.some((s) => s.eq(id))), + proposal: opt && opt.isSome + ? opt.unwrap() + : undefined + }), + [approvedIds, id, opt, scheduled] + ); } - -// export function useProposal (id: ParaId, approvedIds: ParaId[], scheduled: Scheduled[]): ProposalExt | undefined { -// const { api } = useApi(); -// const proposal = useCall>(api.query.proposeParachain.proposals, [id]); - -// return useMemo( -// (): ProposalExt | undefined => { -// proposal && proposal?.isSome -// ? -// ), -// [approvedIds, id, proposal, scheduled] -// ); -// }