Skip to content

Commit

Permalink
Remove contracts call functionality (not working) (polkadot-js#1999)
Browse files Browse the repository at this point in the history
  • Loading branch information
jacogr authored and kwingram25 committed Dec 4, 2019
1 parent 00c3ac3 commit 0aacf3a
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 57 deletions.
20 changes: 11 additions & 9 deletions packages/app-contracts/src/Contracts/Contract.tsx
Expand Up @@ -18,7 +18,7 @@ import translate from '../translate';
interface Props extends I18nProps, RouteComponentProps {
basePath: string;
contract: ApiContract;
onCall: (_?: number) => () => void;
onCall?: (_?: number) => () => void;
}

const ContractCard = styled(Card)`
Expand Down Expand Up @@ -82,14 +82,16 @@ function Contract (props: Props): React.ReactElement<Props> | null {
size='small'
tooltip={t('Forget this contract')}
/>
<Button
icon='play'
isPrimary
label={t('execute')}
onClick={onCall()}
size='small'
tooltip={t('Call a method on this contract')}
/>
{onCall && (
<Button
icon='play'
isPrimary
label={t('execute')}
onClick={onCall()}
size='small'
tooltip={t('Call a method on this contract')}
/>
)}
</div>
}
isContract
Expand Down
93 changes: 45 additions & 48 deletions packages/app-contracts/src/Contracts/index.tsx
Expand Up @@ -3,7 +3,7 @@
// of the Apache-2.0 license. See the LICENSE file for details.

import { ApiProps } from '@polkadot/react-api/types';
import { I18nProps, StringOrNull } from '@polkadot/react-components/types';
import { I18nProps } from '@polkadot/react-components/types';
import { ComponentProps } from '../types';

import React, { useState, useEffect } from 'react';
Expand All @@ -14,7 +14,7 @@ import { Button, CardGrid } from '@polkadot/react-components';
import translate from '../translate';
import Add from './Add';
import ContractCard from './Contract';
import Call from './Call';
// import Call from './Call';
import { getContractForAddress } from './util';

interface Props extends ComponentProps, I18nProps, ApiProps {}
Expand All @@ -27,49 +27,47 @@ function filterContracts ({ api, accounts, contracts: keyringContracts }: Props)

function Contracts (props: Props): React.ReactElement<Props> {
const { accounts, basePath, contracts: keyringContracts, hasCode, showDeploy, t } = props;
// const { callAddress, callMessage, isAddOpen, isCallOpen } = this.state;

const [contracts, setContracts] = useState<ApiContract[]>(filterContracts(props));
const [callContractIndex, setCallContractIndex] = useState<number>(0);
const [callMessageIndex, setCallMessageIndex] = useState<number>(0);
const [isAddOpen, setIsAddOpen] = useState(false);
const [isCallOpen, setIsCallOpen] = useState(false);
// const [isCallOpen, setIsCallOpen] = useState(false);
// const [callContractIndex, setCallContractIndex] = useState<number>(0);
// const [callMessageIndex, setCallMessageIndex] = useState<number>(0);

useEffect((): void => {
setContracts(filterContracts(props));
}, [accounts, keyringContracts]);

let callContract = contracts[callContractIndex] || null;
// let callContract = contracts[callContractIndex] || null;

useEffect((): void => {
callContract = contracts[callContractIndex];
}, [callContractIndex]);
// useEffect((): void => {
// callContract = contracts[callContractIndex];
// }, [callContractIndex]);

const _toggleAdd = (): void => setIsAddOpen(!isAddOpen);
const _toggleCall = (): void => setIsCallOpen(!isCallOpen);

const _onChangeCallContractAddress = (newCallContractAddress: StringOrNull): void => {
const index = contracts.findIndex(({ address }: ApiContract): boolean => newCallContractAddress === address.toString());

if (index > -1) {
index !== callContractIndex && setCallMessageIndex(0);
setCallContractIndex(index);
}
};

const _onChangeCallMessageIndex = (callMessageIndex: number): void => {
!!callContract && setCallMessageIndex(callMessageIndex);
};

const _onCall = (callContractIndex: number): (_?: number) => () => void => {
return function (callMessageIndex?: number): () => void {
return function (): void {
setCallContractIndex(callContractIndex);
setCallMessageIndex(callMessageIndex || 0);
setIsCallOpen(true);
};
};
};
// const _toggleCall = (): void => setIsCallOpen(!isCallOpen);

// const _onChangeCallContractAddress = (newCallContractAddress: StringOrNull): void => {
// const index = contracts.findIndex(({ address }: ApiContract): boolean => newCallContractAddress === address.toString());

// if (index > -1) {
// index !== callContractIndex && setCallMessageIndex(0);
// setCallContractIndex(index);
// }
// };

// const _onChangeCallMessageIndex = (callMessageIndex: number): void => {
// !!callContract && setCallMessageIndex(callMessageIndex);
// };

// const _onCall = (callContractIndex: number): (_?: number) => () => void => {
// return function (callMessageIndex?: number): () => void {
// return function (): void {
// setCallContractIndex(callContractIndex);
// setCallMessageIndex(callMessageIndex || 0);
// setIsCallOpen(true);
// };
// };
// };

return (
<>
Expand Down Expand Up @@ -97,31 +95,30 @@ function Contracts (props: Props): React.ReactElement<Props> {
</Button.Group>
}
>
{contracts
.map((contract: ApiContract, index): React.ReactNode => {
return (
<ContractCard
basePath={basePath}
contract={contract}
key={contract.address.toString()}
onCall={_onCall(index)}
/>
);
})}
{contracts.map((contract: ApiContract): React.ReactNode => {
return (
<ContractCard
basePath={basePath}
contract={contract}
key={contract.address.toString()}
// onCall={_onCall(index)}
/>
);
})}
</CardGrid>
<Add
basePath={basePath}
isOpen={isAddOpen}
onClose={_toggleAdd}
/>
<Call
{/* <Call
callContract={callContract}
callMessageIndex={callMessageIndex}
isOpen={isCallOpen}
onChangeCallContractAddress={_onChangeCallContractAddress}
onChangeCallMessageIndex={_onChangeCallMessageIndex}
onClose={_toggleCall}
/>
/> */}
</>
);
}
Expand Down

0 comments on commit 0aacf3a

Please sign in to comment.