123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // 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 { Props, RawParam } from '@polkadot/react-params/types';
- import React, { useCallback } from 'react';
- import { useApi } from '@polkadot/react-hooks';
- import ExtrinsicDisplay from './Extrinsic';
- function OpaqueCall ({ className = '', isDisabled, isError, label, onChange, onEnter, onEscape, withLabel }: Props): React.ReactElement<Props> {
- const { apiDefaultTxSudo } = useApi();
- const _onChange = useCallback(
- ({ isValid, value }: RawParam): void => {
- let callData = null;
- if (isValid && value) {
- callData = (value as SubmittableExtrinsic<'promise'>).method.toHex();
- }
- onChange && onChange({
- isValid,
- value: callData
- });
- },
- [onChange]
- );
- return (
- <ExtrinsicDisplay
- className={className}
- defaultValue={apiDefaultTxSudo}
- isDisabled={isDisabled}
- isError={isError}
- isPrivate
- label={label}
- onChange={_onChange}
- onEnter={onEnter}
- onEscape={onEscape}
- withLabel={withLabel}
- />
- );
- }
- export default React.memo(OpaqueCall);
|