From 3a354ecc32d87e0d7e9e6f8efaa3dbcd7683babf Mon Sep 17 00:00:00 2001 From: Jaco Date: Wed, 21 Sep 2022 11:29:26 +0300 Subject: [PATCH] Formatting changes for referenda (#8151) * Formatting changes for referenda * Deposit * Refund deposit * group functionality --- .../page-referenda/src/Referenda/Deposit.tsx | 42 ---- .../src/Referenda/Deposits/Place.tsx | 89 ++++++++ .../src/Referenda/Deposits/Refund.tsx | 73 +++++++ .../src/Referenda/Deposits/index.tsx | 68 ++++++ .../src/Referenda/RefOngoing.tsx | 12 +- .../page-referenda/src/Referenda/RefTuple.tsx | 26 +-- .../page-referenda/src/Referenda/Submit.tsx | 193 ++++++++++-------- .../page-referenda/src/Referenda/Votes.tsx | 56 +++-- .../page-referenda/src/Referenda/index.tsx | 28 +-- packages/page-referenda/src/types.ts | 1 + packages/page-referenda/src/useReferenda.ts | 10 +- 11 files changed, 397 insertions(+), 201 deletions(-) delete mode 100644 packages/page-referenda/src/Referenda/Deposit.tsx create mode 100644 packages/page-referenda/src/Referenda/Deposits/Place.tsx create mode 100644 packages/page-referenda/src/Referenda/Deposits/Refund.tsx create mode 100644 packages/page-referenda/src/Referenda/Deposits/index.tsx diff --git a/packages/page-referenda/src/Referenda/Deposit.tsx b/packages/page-referenda/src/Referenda/Deposit.tsx deleted file mode 100644 index 6b3ac53f27..0000000000 --- a/packages/page-referenda/src/Referenda/Deposit.tsx +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2017-2022 @polkadot/app-referenda authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Option } from '@polkadot/types'; -import type { PalletReferendaDeposit } from '@polkadot/types/lookup'; - -import React, { useMemo } from 'react'; - -import { AddressMini } from '@polkadot/react-components'; - -interface Props { - decision: Option | null; - submit: PalletReferendaDeposit | null; -} - -function Deposit ({ decision, submit }: Props): React.ReactElement { - const [first, second] = useMemo( - () => [submit, decision && decision.unwrapOr(null)], - [decision, submit] - ); - - return ( - - {first && ( - - )} - {second && ( - - )} - - ); -} - -export default React.memo(Deposit); diff --git a/packages/page-referenda/src/Referenda/Deposits/Place.tsx b/packages/page-referenda/src/Referenda/Deposits/Place.tsx new file mode 100644 index 0000000000..14de0c50cc --- /dev/null +++ b/packages/page-referenda/src/Referenda/Deposits/Place.tsx @@ -0,0 +1,89 @@ +// Copyright 2017-2022 @polkadot/app-referenda authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PalletReferendaTrackInfo } from '@polkadot/types/lookup'; +import type { BN } from '@polkadot/util'; +import type { PalletReferenda } from '../../types'; + +import React, { useState } from 'react'; + +import { Button, InputAddress, InputBalance, InputNumber, Modal, TxButton } from '@polkadot/react-components'; +import { useApi, useToggle } from '@polkadot/react-hooks'; +import { Available } from '@polkadot/react-query'; + +import { useTranslation } from '../../translate'; + +interface Props { + className?: string; + id: BN; + palletReferenda: PalletReferenda; + track: PalletReferendaTrackInfo; +} + +function Deposit ({ className = '', id, palletReferenda, track }: Props): React.ReactElement | null { + const { t } = useTranslation(); + const { api } = useApi(); + const [isOpen, toggleOpen] = useToggle(); + const [accountId, setAccountId] = useState(null); + + return ( + <> + {isOpen && ( + ('Place decision deposit')} + onClose={toggleOpen} + size='large' + > + + ('The deposit will be registered from this account and the balance lock will be applied here.')}> + ('The account you want to deposit from')} + label={t('deposit from account')} + labelExtra={ + {t('transferrable')}} + params={accountId} + /> + } + onChange={setAccountId} + type='account' + /> + + ('The referendum this deposit would apply to.')}> + ('referendum id')} + /> + + ('The deposit for this proposal will be locked for the referendum duration.')}> + ('decision deposit')} + /> + + + + ('Place deposit')} + onStart={toggleOpen} + params={[id]} + tx={api.tx[palletReferenda as 'referenda'].placeDecisionDeposit} + /> + + + )} +