"use client"

import NextLink from "next/link"

import Button from "@/components/TempDesignSystem/Button"
import { trackClick } from "@/utils/tracking"

import type { ButtonLinkProps } from "@/types/components/buttonLink"

export default function ButtonLink({
  children,
  href,
  target,
  trackingId,
  trackingParams,
  onClick = () => {},
  ...buttonProps
}: ButtonLinkProps) {
  return (
    <Button {...buttonProps} asChild>
      <NextLink
        href={href}
        target={target}
        onClick={(e) => {
          onClick(e)
          if (trackingId) {
            trackClick(trackingId, trackingParams)
          }
        }}
      >
        {children}
      </NextLink>
    </Button>
  )
}
