import { upperFirst } from 'es-toolkit';
import React from 'react';
import type { MultichainProviderConfigParsed } from 'types/client/multichainProviderConfig';
import { route } from 'nextjs-routes';
import { Image } from 'toolkit/chakra/image';
import { Link } from 'toolkit/chakra/link';
import { Tooltip } from 'toolkit/chakra/tooltip';
import TextSeparator from 'ui/shared/TextSeparator';
import styles from './AddressMultichainButton.module.css';
const TEMPLATE_ADDRESS = '{address}';
type Props = {
item: MultichainProviderConfigParsed;
addressHash: string;
onClick?: () => void;
isFirst?: boolean;
isLast?: boolean;
};
const AddressMultichainButton = ({ item, addressHash, onClick, isFirst, isLast }: Props) => {
const isOnlyOne = isFirst && isLast;
const buttonIcon = (
);
const name = upperFirst(item.name.replaceAll('_', ' '));
const buttonContent = isOnlyOne ? (
<>
{ buttonIcon }
{ name }
>
) : (
{ buttonIcon }
);
try {
const portfolioUrlString = item.urlTemplate.replace(TEMPLATE_ADDRESS, addressHash);
const portfolioUrl = new URL(portfolioUrlString);
portfolioUrl.searchParams.append('utm_source', 'blockscout');
portfolioUrl.searchParams.append('utm_medium', 'address');
const dappId = item.dappId;
const isExternal = typeof dappId !== 'string';
return (
<>
{ buttonContent }
{ item.promo && isFirst && !isLast && }
>
);
} catch (error) {}
return null;
};
export default AddressMultichainButton;