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> ); }