import React, { ReactElement, useState, ChangeEvent, useEffect } from 'react' import styles from './Remove.module.css' import { useOcean } from '@oceanprotocol/react' import Header from './Header' import { toast } from 'react-toastify' import Actions from './Actions' import { Logger } from '@oceanprotocol/lib' import { Balance } from '.' import Token from './Token' export default function Remove({ setShowRemove, poolAddress, poolTokens, totalPoolTokens, userLiquidity, dtSymbol }: { setShowRemove: (show: boolean) => void poolAddress: string poolTokens: string totalPoolTokens: string userLiquidity: Balance dtSymbol: string }): ReactElement { const { ocean, accountId } = useOcean() const [amountPercent, setAmountPercent] = useState('0') const [amountPoolShares, setAmountPoolShares] = useState('0') const [amountOcean, setAmountOcean] = useState('0') const [amountDatatoken, setAmountDatatoken] = useState('0') const [isLoading, setIsLoading] = useState() const [txId, setTxId] = useState('') async function handleRemoveLiquidity() { setIsLoading(true) try { const result = await ocean.pool.removePoolLiquidity( accountId, poolAddress, amountPoolShares ) setTxId(result.transactionHash) } catch (error) { Logger.error(error.message) toast.error(error.message) } finally { setIsLoading(false) } } function handleAmountPercentChange(e: ChangeEvent) { setAmountPercent(e.target.value) } useEffect(() => { if (!ocean) return async function getValues() { const amountPoolShares = (Number(poolTokens) / Number(amountPercent)) * 100 setAmountPoolShares(`${amountPoolShares}`) const amountOcean = await ocean.pool.getPoolSharesForRemoveOcean( poolAddress, `${amountPoolShares}` ) setAmountOcean(amountOcean) const amountDatatoken = await ocean.pool.getPoolSharesForRemoveDT( poolAddress, `${amountPoolShares}` ) setAmountDatatoken(amountDatatoken) } getValues() }, [amountPercent, ocean, poolTokens, poolAddress]) return (
setShowRemove(false)} />

{amountPercent}%

You will receive

) }