From eaf409c82258d0b321bd1023c393ae58b37b86b8 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 16 Jan 2021 10:58:18 +0100 Subject: [PATCH] Chainlink available in para proposals (#4429) * Chainlink avalable in para proposals * slice visual fix (e.g. on empty) * group * R-add 666 --- .../src/endpoints/testingRococo.ts | 2 +- .../src/Overview/Parachain.tsx | 13 +--------- .../src/Proposals/Proposal.tsx | 15 ++++++++--- packages/page-parachains/src/util.ts | 10 -------- packages/page-parachains/src/util.tsx | 25 +++++++++++++++++++ 5 files changed, 38 insertions(+), 27 deletions(-) delete mode 100644 packages/page-parachains/src/util.ts create mode 100644 packages/page-parachains/src/util.tsx diff --git a/packages/apps-config/src/endpoints/testingRococo.ts b/packages/apps-config/src/endpoints/testingRococo.ts index f41182d3e2..0f119d7fc2 100644 --- a/packages/apps-config/src/endpoints/testingRococo.ts +++ b/packages/apps-config/src/endpoints/testingRococo.ts @@ -53,7 +53,7 @@ export function createRococo (t: TFunction): EndpointOption { // add any additional parachains here, alphabetical { info: 'rococoAcala', - paraId: 667, + paraId: 666, text: t('rpc.rococo.acala', 'Mandala PC2', { ns: 'apps-config' }), providers: { Acala: 'wss://rococo-1.acala.laminar.one/ws' diff --git a/packages/page-parachains/src/Overview/Parachain.tsx b/packages/page-parachains/src/Overview/Parachain.tsx index 7f7c9bcc33..d2eb3d95b4 100644 --- a/packages/page-parachains/src/Overview/Parachain.tsx +++ b/packages/page-parachains/src/Overview/Parachain.tsx @@ -1,7 +1,6 @@ // Copyright 2017-2021 @polkadot/app-parachains authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { LinkOption } from '@polkadot/apps-config/settings/types'; import type { Option, Vec } from '@polkadot/types'; import type { Balance, BlockNumber, HeadData, Header, ParaId } from '@polkadot/types/interfaces'; import type { Codec } from '@polkadot/types/types'; @@ -13,7 +12,7 @@ import { useApi, useCall, useCallMulti, useParaApi } from '@polkadot/react-hooks import { BlockToTime, FormatBalance } from '@polkadot/react-query'; import { formatNumber } from '@polkadot/util'; -import { sliceHex } from '../util'; +import { getChainLink, sliceHex } from '../util'; interface Props { bestNumber?: BN; @@ -61,16 +60,6 @@ const transformMulti = { }) }; -function getChainLink (endpoints: LinkOption[]): React.ReactNode { - if (!endpoints.length) { - return null; - } - - const { text, value } = endpoints[endpoints.length - 1]; - - return {text}; -} - function Parachain ({ bestNumber, className = '', id, lastInclusion }: Props): React.ReactElement { const { api } = useApi(); const { api: paraApi, endpoints } = useParaApi(id); diff --git a/packages/page-parachains/src/Proposals/Proposal.tsx b/packages/page-parachains/src/Proposals/Proposal.tsx index 282b00bb1b..316c9a0ebb 100644 --- a/packages/page-parachains/src/Proposals/Proposal.tsx +++ b/packages/page-parachains/src/Proposals/Proposal.tsx @@ -7,12 +7,12 @@ import type { ScheduledProposals } from '../types'; import React, { useMemo } from 'react'; import { AddressMini, AddressSmall, Badge, Spinner, Toggle, TxButton } from '@polkadot/react-components'; -import { useAccounts, useApi, useSudo, useToggle } from '@polkadot/react-hooks'; +import { useAccounts, useApi, useParaEndpoints, useSudo, useToggle } from '@polkadot/react-hooks'; import { FormatBalance } from '@polkadot/react-query'; import { formatNumber } from '@polkadot/util'; import { useTranslation } from '../translate'; -import { sliceHex } from '../util'; +import { getChainLink, sliceHex } from '../util'; import { useProposal } from './useProposals'; interface Props { @@ -28,6 +28,12 @@ function Proposal ({ approvedIds, id, scheduled }: Props): React.ReactElement getChainLink(endpoints), + [endpoints] + ); const cancelTx = useMemo( () => api.tx.sudo && hasSudoKey @@ -55,14 +61,15 @@ function Proposal ({ approvedIds, id, scheduled }: Props): React.ReactElement -

{formatNumber(id)}

- +

{formatNumber(id)}

+ {(proposal.isApproved || proposal.isScheduled) && ( )} + {chainLink} {isQueried && !proposal.proposal ? ( diff --git a/packages/page-parachains/src/util.ts b/packages/page-parachains/src/util.ts deleted file mode 100644 index 898112840a..0000000000 --- a/packages/page-parachains/src/util.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2021 @polkadot/app-parachains authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Codec } from '@polkadot/types/types'; - -export function sliceHex (value: Codec, max: number): string { - const hex = value.toHex(); - - return `${hex.slice(0, max + 2)}…${hex.slice(-max)}`; -} diff --git a/packages/page-parachains/src/util.tsx b/packages/page-parachains/src/util.tsx new file mode 100644 index 0000000000..5a9488b90c --- /dev/null +++ b/packages/page-parachains/src/util.tsx @@ -0,0 +1,25 @@ +// Copyright 2017-2021 @polkadot/app-parachains authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { LinkOption } from '@polkadot/apps-config/settings/types'; +import type { Codec } from '@polkadot/types/types'; + +import React from 'react'; + +export function sliceHex (value: Codec, max: number): string { + const hex = value.toHex(); + + return hex.length > ((2 * max) + 2) + ? `${hex.slice(0, max + 2)}…${hex.slice(-max)}` + : hex; +} + +export function getChainLink (endpoints: LinkOption[]): React.ReactNode { + if (!endpoints.length) { + return null; + } + + const { text, value } = endpoints[endpoints.length - 1]; + + return {text}; +}