import { ChainInfoID, SimpleChainInfoList, useWallet, useWalletManager, } from '@marsprotocol/wallet-connector' import classNames from 'classnames' import { useCallback, useEffect, useState } from 'react' import useClipboard from 'react-use-clipboard' import Button from 'components/Button' import CircularProgress from 'components/CircularProgress' import FormattedNumber from 'components/FormattedNumber' import CheckIcon from 'components/Icons/check.svg' import CopyIcon from 'components/Icons/copy.svg' import ExternalLinkIcon from 'components/Icons/external-link.svg' import OsmoIcon from 'components/Icons/osmo.svg' import WalletIcon from 'components/Icons/wallet.svg' import { Overlay } from 'components/Overlay' import Text from 'components/Text' import useTokenBalance from 'hooks/useTokenBalance' import { formatValue, truncate } from 'utils/formatters' const ConnectedButton = () => { // --------------- // EXTERNAL HOOKS // --------------- const { disconnect } = useWalletManager() const { chainInfo, address, name } = useWallet() // --------------- // LOCAL HOOKS // --------------- const { data } = useTokenBalance() // --------------- // LOCAL STATE // --------------- const [isLoading, setIsLoading] = useState(false) const [showDetails, setShowDetails] = useState(false) const [isCopied, setCopied] = useClipboard(address || '', { successDuration: 1000 * 5, }) // --------------- // VARIABLES // --------------- const explorerName = chainInfo && SimpleChainInfoList[chainInfo.chainId as ChainInfoID].explorerName const viewOnFinder = useCallback(() => { const explorerUrl = chainInfo && SimpleChainInfoList[chainInfo.chainId as ChainInfoID].explorer window.open(`${explorerUrl}account/${address}`, '_blank') }, [chainInfo, address]) useEffect(() => { const loading = !(address && name && chainInfo) setIsLoading(loading) }, [address, name, chainInfo]) return (
{chainInfo?.chainId !== ChainInfoID.Osmosis1 && ( {chainInfo?.chainId} )}
{chainInfo?.stakeCurrency?.coinDenom}
{name ? `‘${name}’` : 'Your Address'} {address} {truncate(address, [14, 14])}
) } export default ConnectedButton