From 1ec6dfd3025dddea5e99ac4b1aaf6013f37707ff Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Sat, 6 Feb 2021 15:51:09 +0100 Subject: [PATCH] Support new contracts putCode (#4622) * Support new contracts putCode * New works * Swap to default constructor as available * Split into steps --- packages/page-accounts/src/modals/Create.tsx | 21 +- packages/page-contracts/src/Codes/Upload.tsx | 206 +++++++++++++----- .../page-contracts/src/Contracts/Banner.tsx | 50 ----- .../page-contracts/src/Contracts/Deploy.tsx | 4 +- .../page-contracts/src/Contracts/index.tsx | 4 +- packages/react-hooks/src/index.ts | 1 + packages/react-hooks/src/useFormField.ts | 21 +- packages/react-hooks/src/useNonEmptyString.ts | 11 +- packages/react-hooks/src/useNonZeroBn.ts | 19 +- packages/react-hooks/src/useStepper.ts | 22 ++ 10 files changed, 216 insertions(+), 143 deletions(-) delete mode 100644 packages/page-contracts/src/Contracts/Banner.tsx create mode 100644 packages/react-hooks/src/useStepper.ts diff --git a/packages/page-accounts/src/modals/Create.tsx b/packages/page-accounts/src/modals/Create.tsx index f76a30a14c..d8a6405e6f 100644 --- a/packages/page-accounts/src/modals/Create.tsx +++ b/packages/page-accounts/src/modals/Create.tsx @@ -13,7 +13,7 @@ import styled from 'styled-components'; import { DEV_PHRASE } from '@polkadot/keyring/defaults'; import { getEnvironment } from '@polkadot/react-api/util'; import { AddressRow, Button, Checkbox, CopyButton, Dropdown, Expander, Input, InputAddress, MarkError, MarkWarning, Modal, TextArea } from '@polkadot/react-components'; -import { useApi, useLedger } from '@polkadot/react-hooks'; +import { useApi, useLedger, useStepper } from '@polkadot/react-hooks'; import { keyring } from '@polkadot/ui-keyring'; import { settings } from '@polkadot/ui-settings'; import { isHex, u8aToHex } from '@polkadot/util'; @@ -199,7 +199,7 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ const { isLedgerEnabled } = useLedger(); const [{ address, derivePath, deriveValidation, isSeedValid, pairType, seed, seedType }, setAddress] = useState(() => generateSeed(propsSeed, '', propsSeed ? 'raw' : 'bip', isEthereum ? 'ethereum' : propsType)); const [isMnemonicSaved, setIsMnemonicSaved] = useState(false); - const [step, setStep] = useState(1); + const [step, nextStep, prevStep] = useStepper(); const [isBusy, setIsBusy] = useState(false); const [{ isNameValid, name }, setName] = useState({ isNameValid: false, name: '' }); const [{ isPasswordValid, password }, setPassword] = useState({ isPasswordValid: false, password: '' }); @@ -268,15 +268,6 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ setIsMnemonicSaved(!isMnemonicSaved); }; - const _nextStep = useCallback( - () => setStep((step) => step + 1), - [] - ); - - const _previousStep = useCallback( - () => setStep((step) => step - 1), - [] - ); const _onCommit = useCallback( (): void => { if (!isValid) { @@ -480,7 +471,7 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ icon='step-forward' isDisabled={!isFirstStepValid} label={t('Next')} - onClick={_nextStep} + onClick={nextStep} /> } {step === 2 && ( @@ -488,13 +479,13 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ