1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

basic error handling during add/remove

This commit is contained in:
Matthias Kretschmann 2020-08-19 17:38:14 +02:00
parent da23dd51da
commit cd1c514ac0
Signed by: m
GPG Key ID: 606EEEF3C479A91F
2 changed files with 48 additions and 21 deletions

View File

@ -6,6 +6,7 @@ import Input from '../../../atoms/Input'
import { useOcean } from '@oceanprotocol/react' import { useOcean } from '@oceanprotocol/react'
import Header from './Header' import Header from './Header'
import Loader from '../../../atoms/Loader' import Loader from '../../../atoms/Loader'
import { toast } from 'react-toastify'
export default function Add({ export default function Add({
setShowAdd, setShowAdd,
@ -19,18 +20,24 @@ export default function Add({
const { ocean, accountId } = useOcean() const { ocean, accountId } = useOcean()
const [amount, setAmount] = useState<string>() const [amount, setAmount] = useState<string>()
const [isLoading, setIsLoading] = useState<boolean>() const [isLoading, setIsLoading] = useState<boolean>()
const [error, setError] = useState<string>()
async function handleAddLiquidity() { async function handleAddLiquidity() {
setIsLoading(true) setIsLoading(true)
try {
const result = await ocean.pool.addOceanLiquidity( const result = await ocean.pool.addOceanLiquidity(
accountId, accountId,
poolAddress, poolAddress,
amount amount
) )
console.log(result) console.log(result)
} catch (error) {
console.error(error.message)
toast.error(error.message)
} finally {
setIsLoading(false) setIsLoading(false)
} }
}
function handleAmountChange(e: ChangeEvent<HTMLInputElement>) { function handleAmountChange(e: ChangeEvent<HTMLInputElement>) {
setAmount(e.target.value) setAmount(e.target.value)

View File

@ -1,9 +1,12 @@
import React, { ReactElement, useState, ChangeEvent } from 'react' import React, { ReactElement, useState, ChangeEvent } from 'react'
import styles from './Remove.module.css' import styles from './Remove.module.css'
import stylesIndex from './index.module.css'
import Button from '../../../atoms/Button' import Button from '../../../atoms/Button'
import Input from '../../../atoms/Input' import Input from '../../../atoms/Input'
import { useOcean } from '@oceanprotocol/react' import { useOcean } from '@oceanprotocol/react'
import Header from './Header' import Header from './Header'
import { toast } from 'react-toastify'
import Loader from '../../../atoms/Loader'
export default function Remove({ export default function Remove({
setShowRemove, setShowRemove,
@ -14,16 +17,27 @@ export default function Remove({
}): ReactElement { }): ReactElement {
const { ocean, accountId } = useOcean() const { ocean, accountId } = useOcean()
const [amount, setAmount] = useState<string>() const [amount, setAmount] = useState<string>()
const [isLoading, setIsLoading] = useState<boolean>()
const maximumPoolShares = '?' const maximumPoolShares = '?'
async function handleRemoveLiquidity() { async function handleRemoveLiquidity() {
await ocean.pool.removeOceanLiquidity( setIsLoading(true)
try {
const result = await ocean.pool.removeOceanLiquidity(
accountId, accountId,
poolAddress, poolAddress,
amount, amount,
maximumPoolShares maximumPoolShares
) )
console.log(result)
} catch (error) {
console.error(error.message)
toast.error(error.message)
} finally {
setIsLoading(false)
}
} }
function handleAmountChange(e: ChangeEvent<HTMLInputElement>) { function handleAmountChange(e: ChangeEvent<HTMLInputElement>) {
@ -48,13 +62,19 @@ export default function Remove({
<p>You will receive:</p> <p>You will receive:</p>
<div className={stylesIndex.actions}>
{isLoading ? (
<Loader message="Removing Liquidity..." />
) : (
<Button <Button
style="primary" style="primary"
size="small" size="small"
onClick={() => handleRemoveLiquidity()} onClick={() => handleRemoveLiquidity()}
> >
Remove Supply
</Button> </Button>
)}
</div>
</div> </div>
) )
} }