// Every item made up with title, params input and query button. import { Divider, Form, Input, Button, Collapse } from 'antd'; import { useState } from 'react'; import { useAElfReact } from '@aelf-react/core'; import { IMethod, tokenContractAddress } from '../index'; import ReactJson from 'react-json-view'; export default function FormItem({ name, input, fn, activeKey }: IMethod) { const { account, activate, defaultAElfBridge } = useAElfReact(); const [form] = Form.useForm(); const [toggle, setToggle] = useState(false); const [res, setRes] = useState(''); const query = async () => { // get all fileds value with param true const filedsValue = form.getFieldsValue(); try { const result = await fn.call(filedsValue); setRes(result); } catch (e: any) { setRes(e); } }; const write = async (name: string) => { if (!account) { await activate(); } if (!defaultAElfBridge) return; const filedsValue = form.getFieldsValue(); try { await defaultAElfBridge.chain.getChainStatus(); const contract = await defaultAElfBridge.chain.contractAt( tokenContractAddress, { address: account as string, }, ); const result = await contract[name](filedsValue); setRes(result); return; } catch (e: any) { debugger; setRes(e); } }; return ( <>
{input?.map((ele) => ( ))}
{res && ( <>
Response Body
)} ); }