// Copyright 2017-2020 @polkadot/app-extrinsics authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import { SubmittableExtrinsic } from '@polkadot/api/types'; import React, { useCallback, useState } from 'react'; import { Button, Extrinsic, InputAddress, TxButton } from '@polkadot/react-components'; import { useApi } from '@polkadot/react-hooks'; import { BalanceFree } from '@polkadot/react-query'; import { useTranslation } from './translate'; function Selection (): React.ReactElement { const { t } = useTranslation(); const { apiDefaultTxSudo } = useApi(); const [accountId, setAccountId] = useState(null); const [error, setError] = useState(null); const [extrinsic, setExtrinsic] = useState | null>(null); const _onExtrinsicChange = useCallback( (method?: SubmittableExtrinsic<'promise'>) => setExtrinsic(() => method || null), [] ); const _onExtrinsicError = useCallback( (error?: Error | null) => setError(error ? error.message : null), [] ); return (
('using the selected account')} labelExtra={ {t('free balance')}} params={accountId} /> } onChange={setAccountId} type='account' /> ('submit the following extrinsic')} onChange={_onExtrinsicChange} onError={_onExtrinsicError} /> {error && (
{error}
)} ('Submit Unsigned')} withSpinner /> ('Submit Transaction')} />
); } export default React.memo(Selection);