xchange-create
Version:
Create Xchange Project
25 lines (21 loc) • 836 B
text/typescript
import { useEffect } from "react"
import { useTargetNetwork } from "./useTargetNetwork"
import { useQueryClient } from "@tanstack/react-query"
import { useBalance, UseBalanceParameters, useBlockNumber } from "wagmi"
/**
* Wrapper around wagmi's useBalance hook. Updates data on every block change.
*/
export const useWatchBalance = (useBalanceParameters: UseBalanceParameters) => {
const { targetNetwork } = useTargetNetwork()
const queryClient = useQueryClient()
const { data: blockNumber } = useBlockNumber({
watch: true,
chainId: targetNetwork.id,
})
const { queryKey, ...restUseBalanceReturn } = useBalance(useBalanceParameters)
useEffect(() => {
queryClient.invalidateQueries({ queryKey })
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [blockNumber])
return restUseBalanceReturn
}