1
0
mirror of https://github.com/kremalicious/blog.git synced 2024-06-28 16:48:00 +02:00
blog/src/features/Web3/hooks/useSend/useSend.tsx
2023-11-05 11:47:58 +00:00

42 lines
1.0 KiB
TypeScript

import { getTransactionMessage } from '@features/Web3/components/Alert/Alert'
import type { SendFormData } from '@features/Web3/components/Form/types'
import { useEffect, useState } from 'react'
export function useSend(sendFormData: SendFormData | undefined) {
const { isLoading, isSuccess, isError, error } = sendFormData || {}
const [message, setMessage] = useState<{ status: string; text: string }>()
useEffect(() => {
if (!isError || !error) return
setMessage(
error.message.includes('User rejected the request.')
? undefined
: {
status: 'error',
text: error?.message as string
}
)
}, [isError])
useEffect(() => {
if (!isLoading) return
setMessage({
status: 'loading',
text: getTransactionMessage().waitingConfirmation
})
}, [isLoading])
useEffect(() => {
if (!isSuccess) return
setMessage({
status: 'success',
text: getTransactionMessage().success
})
}, [isSuccess])
return { message }
}