import { useTranslation } from '@/languages/components/useTranslation'
import { ArrowRightIcon } from '@primer/octicons-react'
import { LearningTrack as LearningTrackT } from '@/landings/components/ProductGuidesContext'
import { Link } from '@/frame/components/Link'

import { HeadingLink } from '@/frame/components/article/HeadingLink'

type Props = {
  track: LearningTrackT
}

export const LearningTrack = ({ track }: Props) => {
  const { t, tObject } = useTranslation('product_guides')
  if (!track) return <div />

  return (
    <div data-testid="learning-track" className="col-12 col-md-6 my-3 px-4">
      <HeadingLink as="h3">{track.title}</HeadingLink>
      <p className="color-text f4 color-fg-muted">{track.description}</p>

      <Link
        {...{ 'aria-label': `${track?.title} - ${t('start_path')}` }}
        className="d-inline-flex btn"
        href={`${track.guides?.[0].href}?learn=${track.trackName}&learnProduct=${track.trackProduct}`}
      >
        <span>{t('start_path')}</span>
        <ArrowRightIcon size={20} className="ml-2" />
      </Link>

      {track.guides && (
        <ol className="pl-4 my-3 f4">
          {track.guides.map((guide) => (
            <li key={guide.href + track.trackName}>
              <span className="mr-2">
                {tObject('guide_types')[guide.page?.type || ''] as string}
              </span>
              <Link
                href={`${guide.href}?learn=${track.trackName}&learnProduct=${track.trackProduct}`}
                className="text-underline"
              >
                {guide.title}
              </Link>
            </li>
          ))}
        </ol>
      )}
    </div>
  )
}
