// Copyright 2017-2020 @polkadot/app-123code 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/promise/types'; import { QueueTx, QueueTxExtrinsicAdd } from './Status/types'; import { TxButtonProps as Props } from './types'; import React from 'react'; import { SubmittableResult } from '@polkadot/api'; import { withApi } from '@polkadot/react-api/hoc'; import { assert, isFunction, isUndefined } from '@polkadot/util'; import Button from './Button'; import { QueueConsumer } from './Status/Context'; interface InjectedProps { queueExtrinsic: QueueTxExtrinsicAdd; txqueue: QueueTx[]; } type InnerProps = Props & InjectedProps; interface State { extrinsic?: SubmittableExtrinsic; isSending: boolean; } class TxButtonInner extends React.PureComponent { public state: State = { isSending: false }; public render (): React.ReactNode { const { accountId, className, icon, iconSize, innerRef, isBasic, isDisabled, isNegative, isPrimary, isUnsigned, label, tooltip } = this.props; const { isSending } = this.state; const needsAccount = isUnsigned ? false : !accountId; return (