import React from 'react';
import { Link, Text, Badge } from '@chakra-ui/react';

type BadgeLinkType = {
  target: string;
  badgeText: string;
  href: string;
  colorScheme?: string;
  children: React.ReactNode;
};

export function BadgeLink(props: BadgeLinkType) {
  const {
    target = '_blank',
    colorScheme = 'purple',
    badgeText,
    href,
    children,
  } = props;

  // Is external URL or is a media URL
  const isExternalUrl = /(^http(s)?:\/\/)|(\.(png|svg|jpeg|jpg)$)/.test(
    props.href
  );

  const linkProps: Record<string, string> = {
    ...(isExternalUrl
      ? {
          rel: 'nofollow',
        }
      : {}),
  };

  return (
    <Text mb={'0px'}>
      <Link
        fontSize="14px"
        color="blue.700"
        fontWeight={500}
        textDecoration="none"
        href={href}
        target={target}
        _hover={{ textDecoration: 'none', color: 'purple.400' }}
        {...linkProps}
      >
        <Badge fontSize="11px" mr="7px" colorScheme={colorScheme}>
          {badgeText}
        </Badge>
        {children}
      </Link>
    </Text>
  );
}