import { ChainInfoID, useWallet, useWalletManager } from '@marsprotocol/wallet-connector' import { AnimatedNumber, Button, CircularProgress, DisplayCurrency, SVG } from 'components/common' import { findByDenom } from 'functions' import { useUserBalance } from 'hooks/queries' import { formatValue, lookup } from 'libs/parse' import { truncate } from 'libs/text' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import useClipboard from 'react-use-clipboard' import useStore from 'store' import colors from 'styles/_assets.module.scss' import styles from './ConnectedButton.module.scss' export const ConnectedButton = () => { // --------------- // EXTERNAL HOOKS // --------------- const { disconnect } = useWallet() const { disconnect: terminate } = useWalletManager() const { t } = useTranslation() // --------------- // STORE // --------------- const baseCurrency = useStore((s) => s.baseCurrency) const chainInfo = useStore((s) => s.chainInfo) const userWalletAddress = useStore((s) => s.userWalletAddress) const userIcns = useStore((s) => s.userIcns) // --------------- // LOCAL STATE // --------------- const [isCopied, setCopied] = useClipboard(userWalletAddress, { successDuration: 1000 * 5, }) const { data, isLoading } = useUserBalance() // --------------- // VARIABLES // --------------- const baseCurrencyBalance = Number(findByDenom(data || [], baseCurrency.denom || '')?.amount || 0) const explorerName = chainInfo ? chainInfo.explorerName : '' const [showDetails, setShowDetails] = useState(false) const viewOnFinder = useCallback(() => { const explorerUrl = chainInfo ? chainInfo.explorer : '' window.open(`${explorerUrl}/account/${userWalletAddress}`, '_blank') }, [chainInfo, userWalletAddress]) const onClickAway = useCallback(() => { setShowDetails(false) }, []) const currentBalanceAmount = lookup( baseCurrencyBalance, baseCurrency.denom, baseCurrency.decimals, ) const handleDisconnect = () => { disconnect() terminate() } return (
{chainInfo?.chainId !== ChainInfoID.Osmosis1 && ( {chainInfo?.chainId} )}

{userIcns ? userIcns : t('common.yourAddress')}

{userWalletAddress}

{truncate(userWalletAddress, [14, 14])}

)}
) }