import React, { ChangeEvent, ReactElement } from 'react' import styles from './TradeInput.module.css' import { Field, FieldInputProps, FormikContextType, useFormikContext } from 'formik' import Input from '../../../atoms/Input' import Button from '../../../atoms/Button' import UserLiquidity from '../../../atoms/UserLiquidity' import { FormTradeData, TradeItem } from '../../../../models/FormTrade' import { useOcean } from '../../../../providers/Ocean' export default function TradeInput({ name, item, handleValueChange }: { name: string item: TradeItem handleValueChange: (name: string, value: number) => void }): ReactElement { const { ocean } = useOcean() // Connect with form const { handleChange, setFieldValue, validateForm, values }: FormikContextType = useFormikContext() const isTopField = (name === 'ocean' && values.type === 'buy') || (name === 'datatoken' && values.type === 'sell') const titleAvailable = isTopField ? `Balance` : `Available from pool` const titleMaximum = isTopField ? `Maximum to spend` : `Maximum to receive` return (
{({ field, form }: { field: FieldInputProps; form: any }) => ( ) => { handleValueChange(name, Number(e.target.value)) validateForm() handleChange(e) }} disabled={!ocean} /> )} {!isTopField && ( )}
) }