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