@@ -7,17 +7,17 @@ type Props = {
77 track : FeaturedTrack
88}
99
10- const MAX_VISIBLE_GUIDES = 4
10+ const DEFAULT_VISIBLE_GUIDES = 4
1111export const LearningTrack = ( { track } : Props ) => {
12- const [ visibleGuides , setVisibleGuides ] = useState ( track ?. guides ?. slice ( 0 , 4 ) )
12+ const [ numVisible , setNumVisible ] = useState ( DEFAULT_VISIBLE_GUIDES )
1313 const showAll = ( ) => {
14- setVisibleGuides ( track ?. guides )
14+ setNumVisible ( track ?. guides ?. length || 0 )
1515 }
1616 const { t } = useTranslation ( 'product_sublanding' )
1717
1818 return (
1919 < div className = "my-3 px-4 col-12 col-md-6 learning-track" >
20- < div className = "Box js-show-more-container d-flex flex-column" >
20+ < div className = "Box d-flex flex-column" >
2121 < div className = "Box-header bg-gradient--blue-pink p-4 d-flex flex-1 flex-items-start flex-wrap" >
2222 < div className = "d-flex flex-auto flex-items-start col-8 col-md-12 col-xl-8" >
2323 < div className = "my-xl-0 mr-xl-3" >
@@ -38,10 +38,11 @@ export const LearningTrack = ({ track }: Props) => {
3838 </ span >
3939 </ a >
4040 </ div >
41- { visibleGuides ?. map ( ( guide ) => (
42- < div >
41+
42+ { track ?. guides ?. slice ( 0 , numVisible ) . map ( ( guide ) => (
43+ < div key = { guide . href + track ?. trackName } >
4344 < a
44- className = "Box-row d-flex flex-items-center color-text-primary no-underline js-show-more-item "
45+ className = "Box-row d-flex flex-items-center color-text-primary no-underline"
4546 href = { `${ guide . href } ?learn=${ track ?. trackName } ` }
4647 >
4748 < div className = "circle color-bg-tertiary d-inline-flex mr-4" >
@@ -56,24 +57,25 @@ export const LearningTrack = ({ track }: Props) => {
5657 { t ( 'guide_types' ) [ guide . page ?. type || '' ] }
5758 </ div >
5859 </ a >
59- { track ?. guides && track ?. guides ?. indexOf ( guide ) + 1 === MAX_VISIBLE_GUIDES ? (
60- < button
61- className = "Box-footer btn-link border-top-0 position-relative text-center text-bold color-text-link pt-1 pb-3 col-12 js-show-more-button"
62- onClick = { showAll }
63- >
64- < div
65- className = "position-absolute left-0 right-0 py-5 fade-background-bottom"
66- style = { { bottom : '50px' } }
67- > </ div >
68- < span >
69- Show { track ?. guides ?. length - MAX_VISIBLE_GUIDES } { t ( `more_guides` ) }
70- </ span >
71- </ button >
72- ) : (
73- < div />
74- ) }
7560 </ div >
7661 ) ) }
62+
63+ { ( track ?. guides ?. length || 0 ) > numVisible ? (
64+ < button
65+ className = "Box-footer btn-link border-top-0 position-relative text-center text-bold color-text-link pt-1 pb-3 col-12"
66+ onClick = { showAll }
67+ >
68+ < div
69+ className = "position-absolute left-0 right-0 py-5 fade-background-bottom"
70+ style = { { bottom : '50px' } }
71+ > </ div >
72+ < span >
73+ Show { ( track ?. guides ?. length || 0 ) - numVisible } { t ( `more_guides` ) }
74+ </ span >
75+ </ button >
76+ ) : (
77+ < div />
78+ ) }
7779 </ div >
7880 </ div >
7981 )
0 commit comments