diff --git a/packages/kit/src/components/Connect.tsx b/packages/kit/src/components/Connect.tsx index ff23d0429..dd6641305 100644 --- a/packages/kit/src/components/Connect.tsx +++ b/packages/kit/src/components/Connect.tsx @@ -1,31 +1,54 @@ import React, {useState} from "react" import {useCurrentFlowUser} from "../hooks" +import { + useCrossVmTokenBalance, + UseCrossVmTokenBalanceData, +} from "../hooks/useCrossVmTokenBalance" +import {useFlowChainId} from "../hooks/useFlowChainId" import {Button, ButtonProps} from "./internal/Button" import {Dialog} from "./internal/Dialog" import {CircleUserRoundIcon} from "../icons/CircleUserRoundIcon" import {CopyIcon} from "../icons/CopyIcon" import {LogOutIcon} from "../icons/LogOutIcon" +type BalanceType = keyof UseCrossVmTokenBalanceData + interface ConnectProps { variant?: ButtonProps["variant"] onConnect?: () => void onDisconnect?: () => void + balanceType?: BalanceType } export const Connect: React.FC = ({ variant = "primary", onConnect, onDisconnect, + balanceType = "cadence", }) => { const {user, authenticate, unauthenticate} = useCurrentFlowUser() const [open, setOpen] = useState(false) const [copied, setCopied] = useState(false) + const {data: chainId} = useFlowChainId() + + const {data: balanceData} = useCrossVmTokenBalance({ + owner: user?.addr, + vaultIdentifier: `A.${chainId === "testnet" ? "7e60df042a9c0868" : "1654653399040a61"}.FlowToken.Vault`, + query: { + enabled: !!user?.addr && !!chainId, + }, + }) const displayAddress = user?.loggedIn && user.addr ? `${user.addr.slice(0, 6)}...${user.addr.slice(-4)}` : "" + const displayBalance = + balanceData && typeof balanceData !== "string" + ? `${balanceData[balanceType].formatted} FLOW` + : "0.00 FLOW" + const handleButtonClick = async () => { if (user?.loggedIn) { setOpen(true) @@ -73,7 +96,7 @@ export const Connect: React.FC = ({ {displayAddress}
- 1,416.00 FLOW + {displayBalance}
diff --git a/packages/kit/src/hooks/useCrossVmTokenBalance.ts b/packages/kit/src/hooks/useCrossVmTokenBalance.ts index 457f54f4e..11b22eefa 100644 --- a/packages/kit/src/hooks/useCrossVmTokenBalance.ts +++ b/packages/kit/src/hooks/useCrossVmTokenBalance.ts @@ -17,7 +17,7 @@ interface TokenBalance { precision: number } -interface UseCrossVmTokenBalanceData { +export interface UseCrossVmTokenBalanceData { cadence: TokenBalance evm: TokenBalance combined: TokenBalance