mirror of
https://github.com/luxfhe/example-poker.git
synced 2026-10-30 18:13:22 +00:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { useCallback, useEffect, useState } from "react";
|
|
import { useTargetNetwork } from "./useTargetNetwork";
|
|
import { Address } from "viem";
|
|
import { useBalance } from "wagmi";
|
|
import { useGlobalState } from "~~/services/store/store";
|
|
|
|
export function useAccountBalance(address?: Address) {
|
|
const [isEthBalance, setIsEthBalance] = useState(true);
|
|
const [balance, setBalance] = useState<number | null>(null);
|
|
const price = useGlobalState(state => state.nativeCurrencyPrice);
|
|
const { targetNetwork } = useTargetNetwork();
|
|
|
|
const {
|
|
data: fetchedBalanceData,
|
|
isError,
|
|
isLoading,
|
|
} = useBalance({
|
|
address,
|
|
watch: true,
|
|
chainId: targetNetwork.id,
|
|
});
|
|
|
|
const onToggleBalance = useCallback(() => {
|
|
if (price > 0) {
|
|
setIsEthBalance(!isEthBalance);
|
|
}
|
|
}, [isEthBalance, price]);
|
|
|
|
useEffect(() => {
|
|
if (fetchedBalanceData?.formatted) {
|
|
setBalance(Number(fetchedBalanceData.formatted));
|
|
}
|
|
}, [fetchedBalanceData, targetNetwork]);
|
|
|
|
return { balance, price, isError, isLoading, onToggleBalance, isEthBalance };
|
|
}
|