+
+
+ {(includeGuides || []).map((card, index) => {
+ return index + 1 > MAX_ARTICLES ? (
+
+ ) : (
+
+ )
+ })}
+
+ {includeGuides && includeGuides.length > MAX_ARTICLES && (
+
+ )}
+
+
{t('no_result')}
+
+
+ )
+}
diff --git a/components/sublanding/LearningTrack.tsx b/components/sublanding/LearningTrack.tsx
new file mode 100644
index 0000000000..c1c59f59a4
--- /dev/null
+++ b/components/sublanding/LearningTrack.tsx
@@ -0,0 +1,80 @@
+import { useTranslation } from 'components/hooks/useTranslation'
+import { ArrowRightIcon } from '@primer/octicons-react'
+import { useState } from 'react'
+import { FeaturedTrack } from 'components/context/ProductSubLandingContext'
+
+type Props = {
+ track: FeaturedTrack
+}
+
+const MAX_VISIBLE_GUIDES = 4
+export const LearningTrack = ({ track }: Props) => {
+ const [visibleGuides, setVisibleGuides] = useState(track.guides?.slice(0, 4))
+ const showAll = () => {
+ setVisibleGuides(track.guides)
+ }
+ const { t } = useTranslation('product_sublanding')
+
+ return (
+