22
33import { SplitIcon } from "lucide-react" ;
44import { useMemo } from "react" ;
5- import { toast } from "sonner" ;
65import type { ThirdwebContract } from "thirdweb" ;
76import type { GetBalanceResult } from "thirdweb/extensions/erc20" ;
87import { TransactionButton } from "@/components/tx-button" ;
98import { Button } from "@/components/ui/button" ;
109import { ToolTipLabel } from "@/components/ui/tooltip" ;
1110import { useSplitDistributeFunds } from "@/hooks/useSplit" ;
12- import { parseError } from "@/utils/errorParser" ;
1311
1412export const DistributeButton = ( {
1513 contract,
@@ -25,6 +23,7 @@ export const DistributeButton = ({
2523 isLoggedIn : boolean ;
2624} ) => {
2725 const validBalances = balances . filter ( ( item ) => item . value !== 0n ) ;
26+
2827 const numTransactions = useMemo ( ( ) => {
2928 if (
3029 validBalances . length === 1 &&
@@ -38,28 +37,18 @@ export const DistributeButton = ({
3837 return validBalances ?. filter ( ( b ) => b . value !== 0n ) . length ;
3938 } , [ validBalances , balancesIsPending ] ) ;
4039
41- const mutation = useSplitDistributeFunds ( contract ) ;
40+ const distributeFundsMutation = useSplitDistributeFunds ( contract ) ;
4241
4342 const distributeFunds = ( ) => {
44- mutation . mutate ( undefined , {
45- onError : ( error ) => {
46- toast . error ( "Failed to process transaction" , {
47- description : parseError ( error ) ,
48- } ) ;
49- console . error ( error ) ;
50- } ,
51- onSuccess : ( ) => {
52- toast . success ( "Funds splitted successfully" ) ;
53- } ,
54- } ) ;
43+ distributeFundsMutation . mutateAsync ( ) ;
5544 } ;
5645
5746 if ( balancesIsError ) {
5847 return (
5948 < TransactionButton
6049 client = { contract . client }
6150 isLoggedIn = { isLoggedIn }
62- isPending = { mutation . isPending }
51+ isPending = { distributeFundsMutation . isPending }
6352 onClick = { distributeFunds }
6453 size = "sm"
6554 transactionCount = { undefined }
@@ -86,7 +75,7 @@ export const DistributeButton = ({
8675 < TransactionButton
8776 client = { contract . client }
8877 isLoggedIn = { isLoggedIn }
89- isPending = { mutation . isPending }
78+ isPending = { distributeFundsMutation . isPending }
9079 onClick = { distributeFunds }
9180 transactionCount = { numTransactions === 1 ? undefined : numTransactions }
9281 txChainID = { contract . chain . id }
0 commit comments