From cd1c514ac0a9b30a3e1267019f3fb4301f9510e2 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Wed, 19 Aug 2020 17:38:14 +0200 Subject: [PATCH] basic error handling during add/remove --- .../organisms/AssetActions/Pool/Add.tsx | 23 ++++++---- .../organisms/AssetActions/Pool/Remove.tsx | 46 +++++++++++++------ 2 files changed, 48 insertions(+), 21 deletions(-) diff --git a/src/components/organisms/AssetActions/Pool/Add.tsx b/src/components/organisms/AssetActions/Pool/Add.tsx index d88f7620f..10119b02d 100644 --- a/src/components/organisms/AssetActions/Pool/Add.tsx +++ b/src/components/organisms/AssetActions/Pool/Add.tsx @@ -6,6 +6,7 @@ import Input from '../../../atoms/Input' import { useOcean } from '@oceanprotocol/react' import Header from './Header' import Loader from '../../../atoms/Loader' +import { toast } from 'react-toastify' export default function Add({ setShowAdd, @@ -19,17 +20,23 @@ export default function Add({ const { ocean, accountId } = useOcean() const [amount, setAmount] = useState() const [isLoading, setIsLoading] = useState() - const [error, setError] = useState() async function handleAddLiquidity() { setIsLoading(true) - const result = await ocean.pool.addOceanLiquidity( - accountId, - poolAddress, - amount - ) - console.log(result) - setIsLoading(false) + + try { + const result = await ocean.pool.addOceanLiquidity( + accountId, + poolAddress, + amount + ) + console.log(result) + } catch (error) { + console.error(error.message) + toast.error(error.message) + } finally { + setIsLoading(false) + } } function handleAmountChange(e: ChangeEvent) { diff --git a/src/components/organisms/AssetActions/Pool/Remove.tsx b/src/components/organisms/AssetActions/Pool/Remove.tsx index 6e5b91189..b5c2de428 100644 --- a/src/components/organisms/AssetActions/Pool/Remove.tsx +++ b/src/components/organisms/AssetActions/Pool/Remove.tsx @@ -1,9 +1,12 @@ import React, { ReactElement, useState, ChangeEvent } from 'react' import styles from './Remove.module.css' +import stylesIndex from './index.module.css' import Button from '../../../atoms/Button' import Input from '../../../atoms/Input' import { useOcean } from '@oceanprotocol/react' import Header from './Header' +import { toast } from 'react-toastify' +import Loader from '../../../atoms/Loader' export default function Remove({ setShowRemove, @@ -14,16 +17,27 @@ export default function Remove({ }): ReactElement { const { ocean, accountId } = useOcean() const [amount, setAmount] = useState() + const [isLoading, setIsLoading] = useState() const maximumPoolShares = '?' async function handleRemoveLiquidity() { - await ocean.pool.removeOceanLiquidity( - accountId, - poolAddress, - amount, - maximumPoolShares - ) + setIsLoading(true) + + try { + const result = await ocean.pool.removeOceanLiquidity( + accountId, + poolAddress, + amount, + maximumPoolShares + ) + console.log(result) + } catch (error) { + console.error(error.message) + toast.error(error.message) + } finally { + setIsLoading(false) + } } function handleAmountChange(e: ChangeEvent) { @@ -48,13 +62,19 @@ export default function Remove({

You will receive:

- +
+ {isLoading ? ( + + ) : ( + + )} +
) }