import { useRef, useState } from "react"; import { NetworkOptions } from "./NetworkOptions"; import { getAddress } from "viem"; import { Address } from "viem"; import { useAccount, useDisconnect } from "wagmi"; import { ArrowLeftOnRectangleIcon, ArrowTopRightOnSquareIcon, ArrowsRightLeftIcon, CheckCircleIcon, ChevronDownIcon, DocumentDuplicateIcon, EyeIcon, QrCodeIcon, } from "@heroicons/react/24/outline"; import { BlockieAvatar, isENS } from "~~/components/scaffold-eth"; import { useCopyToClipboard, useOutsideClick } from "~~/hooks/scaffold-eth"; import { getTargetNetworks } from "~~/utils/scaffold-eth"; const BURNER_WALLET_ID = "burnerWallet"; const allowedNetworks = getTargetNetworks(); type AddressInfoDropdownProps = { address: Address; blockExplorerAddressLink: string | undefined; displayName: string; ensAvatar?: string; }; export const AddressInfoDropdown = ({ address, ensAvatar, displayName, blockExplorerAddressLink, }: AddressInfoDropdownProps) => { const { disconnect } = useDisconnect(); const { connector } = useAccount(); const checkSumAddress = getAddress(address); const { copyToClipboard: copyAddressToClipboard, isCopiedToClipboard: isAddressCopiedToClipboard } = useCopyToClipboard(); const [selectingNetwork, setSelectingNetwork] = useState(false); const dropdownRef = useRef(null); const closeDropdown = () => { setSelectingNetwork(false); dropdownRef.current?.removeAttribute("open"); }; useOutsideClick(dropdownRef, closeDropdown); return ( <>
{isENS(displayName) ? displayName : checkSumAddress?.slice(0, 6) + "..." + checkSumAddress?.slice(-4)}
); };