import React, { useCallback } from "react"; import { Popover, Typography } from "@carrot-kpi/ui"; import { forwardRef } from "react"; import { useAccount, useConfig } from "wagmi"; import { ChainIcon } from "../chain-icon"; import Error from "../../icons/error"; import { useNavigate, useParams } from "react-router-dom"; interface NetworksPopoverProps { open: boolean; onNetworkSwitch: (chainId: number) => void; anchor?: HTMLElement | null; } export const NetworksPopover = forwardRef( function NetworksPopover({ open, anchor, onNetworkSwitch }, ref) { const { address: kpiTokenAddress } = useParams(); const navigate = useNavigate(); const { chain } = useAccount(); const { chains } = useConfig(); const handleChainClick = useCallback( (event: React.MouseEvent) => { const id = (event.target as HTMLLIElement).dataset.chainId; if (!id) return; const intId = parseInt(id); if (isNaN(intId)) return; if (!!kpiTokenAddress) navigate("/"); onNetworkSwitch(intId); }, [onNetworkSwitch, kpiTokenAddress, navigate], ); return ( {chains.map((supportedChain) => { if (supportedChain.id === chain?.id) return null; const Logo = supportedChain?.icon.logo || Error; return (
} /> {supportedChain.name}
); })}
); }, );