From f94da748e79be38526f31e7b022bb483b7124dfd Mon Sep 17 00:00:00 2001 From: abefernan <44572727+abefernan@users.noreply.github.com> Date: Mon, 11 Mar 2024 08:33:58 +0100 Subject: [PATCH] Use new toast in pages --- .../[address]/transaction/[transactionID].tsx | 56 +++++++------------ 1 file changed, 19 insertions(+), 37 deletions(-) diff --git a/pages/[chainName]/[address]/transaction/[transactionID].tsx b/pages/[chainName]/[address]/transaction/[transactionID].tsx index f605212..4ec7640 100644 --- a/pages/[chainName]/[address]/transaction/[transactionID].tsx +++ b/pages/[chainName]/[address]/transaction/[transactionID].tsx @@ -1,4 +1,5 @@ import { isChainInfoFilled } from "@/context/ChainsContext/helpers"; +import { toastError, toastSuccess } from "@/lib/utils"; import { MultisigThresholdPubkey } from "@cosmjs/amino"; import { fromBase64 } from "@cosmjs/encoding"; import { Account, StargateClient, makeMultisignedTxBytes } from "@cosmjs/stargate"; @@ -6,6 +7,7 @@ import { assert } from "@cosmjs/utils"; import { GetServerSideProps } from "next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; +import { toast } from "sonner"; import CompletedTransaction from "../../../../components/dataViews/CompletedTransaction"; import ThresholdInfo from "../../../../components/dataViews/ThresholdInfo"; import TransactionInfo from "../../../../components/dataViews/TransactionInfo"; @@ -69,12 +71,10 @@ const TransactionPage = ({ }) => { const { chain } = useChains(); const [currentSignatures, setCurrentSignatures] = useState(signatures); - const [broadcastError, setBroadcastError] = useState(""); const [isBroadcasting, setIsBroadcasting] = useState(false); const [transactionHash, setTransactionHash] = useState(txHash); const [accountOnChain, setAccountOnChain] = useState(null); const [pubkey, setPubkey] = useState(); - const [hasAccountError, setHasAccountError] = useState(false); const txInfo = dbTxFromJson(transactionJSON); const router = useRouter(); const multisigAddress = router.query.address?.toString(); @@ -95,20 +95,21 @@ const TransactionPage = ({ setPubkey(result[0]); setAccountOnChain(result[1]); - setHasAccountError(false); - } catch (error: unknown) { - setHasAccountError(true); - console.error( - error instanceof Error ? error.message : "Multisig address could not be found", - ); + } catch (e) { + console.error("Failed to find multisig address:", e); + toastError({ + description: "Failed to find multisig address", + fullError: e instanceof Error ? e : undefined, + }); } })(); }, [chain, multisigAddress]); const broadcastTx = async () => { + const loadingToastId = toast.loading("Broadcasting transaction"); + try { setIsBroadcasting(true); - setBroadcastError(""); assert(accountOnChain, "Account on chain value missing."); assert( @@ -132,11 +133,17 @@ const TransactionPage = ({ await requestJson(`/api/transaction/${transactionID}`, { body: { txHash: result.transactionHash }, }); + toastSuccess("Transaction broadcasted with hash", result.transactionHash); setTransactionHash(result.transactionHash); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } catch (e: any) { + } catch (e) { + console.error("Failed to broadcast tx:", e); + toastError({ + description: "Failed to broadcast tx", + fullError: e instanceof Error ? e : undefined, + }); + } finally { setIsBroadcasting(false); - setBroadcastError(e.toString()); + toast.dismiss(loadingToastId); } }; @@ -159,13 +166,6 @@ const TransactionPage = ({

{transactionHash ? "Completed Transaction" : "In Progress Transaction"}

- {hasAccountError ? ( - -
-

Multisig address could not be found.

-
-
- ) : null} {transactionHash ? : null} {!transactionHash ? ( @@ -178,7 +178,6 @@ const TransactionPage = ({ primary disabled={isBroadcasting} /> - {broadcastError ?
{broadcastError}
: null} ) : null} {pubkey && txInfo ? ( @@ -194,23 +193,6 @@ const TransactionPage = ({ ) : null} {txInfo ? : null}
- ); };