"use client"

import { IconByIconName } from "@/components/Icons/IconByIconName"
import { trackSocialMediaClick } from "@/utils/tracking"

import type { SocialIconsProps } from "@/types/components/footer/socialIcons"
import type { SocialLinkProps } from "@/types/components/footer/socialLink"
import type { IconName } from "@/components/Icons/iconName"

function SocialIcon({ iconName }: SocialIconsProps) {
  const SocialIcon = (
    <IconByIconName iconName={iconName} color="Icon/Inverted" />
  )
  return SocialIcon ? SocialIcon : <span>{iconName}</span>
}

export default function SocialLink({ link }: SocialLinkProps) {
  const { href, title } = link
  return (
    <a
      color="white"
      href={href}
      key={title}
      target="_blank"
      aria-label={title}
      onClick={() => trackSocialMediaClick(title)}
    >
      <SocialIcon iconName={title as IconName} />
    </a>
  )
}
