import { BitcoinCircle, Block, BlockProps, EthCircle, LabelMedium, LabelXSmall, mergeOverrides, MonoLabelXSmall, useStyletron, } from "@mezo-org/mezo-clay" import React, { useState } from "react" import { useCopyToClipboard } from "usehooks-ts" import { usePassportContext } from "../../../hooks/usePassportContext" import { getAddressExplorerUrl, trimAddress } from "../../../utils/address" import { useWalletAccount } from "../../../hooks/useWalletAccount" export default function WalletAddress(props: BlockProps) { const { overrides, ...restProps } = props const { walletAddress, networkFamily } = useWalletAccount() const { environment = "mainnet" } = usePassportContext() const [, theme] = useStyletron() const [, copy] = useCopyToClipboard() const [isCopiedMessageVisible, setIsCopiedMessageVisible] = useState(false) const handleCopyAddress = () => { copy(walletAddress!) setIsCopiedMessageVisible(true) setTimeout(() => { setIsCopiedMessageVisible(false) }, 2000) } const blockExplorerUrl = getAddressExplorerUrl( walletAddress!, networkFamily, environment === "testnet", ) const trimmedAddress = trimAddress(walletAddress!) const AccountIcon = networkFamily === "bitcoin" ? BitcoinCircle : EthCircle return ( Connected Wallet {isCopiedMessageVisible ? ( Copied address to clipboard ) : ( {trimmedAddress} )} ) }