@@ -102,6 +102,29 @@ const undergraduateTemplate = ({
102102 ) ;
103103} ;
104104
105+ const viewCurriculum = majorMapURL => {
106+ const label = "View Curriculum" ;
107+ return (
108+ < >
109+ < p >
110+ View curriculum below for a detailed list of courses and other
111+ requirements.
112+ </ p >
113+ < ButtonList >
114+ < li >
115+ < Button
116+ ariaLabel = { label }
117+ color = "maroon"
118+ href = { majorMapURL }
119+ label = { label }
120+ size = "small"
121+ />
122+ </ li >
123+ </ ButtonList >
124+ </ >
125+ ) ;
126+ } ;
127+
105128/**
106129 * @param {ApplicationRequirementsProps } props
107130 * @returns {JSX.Element }
@@ -112,17 +135,33 @@ function ApplicationRequirements({
112135 isMinorOrCertificate,
113136 additionalRequirements,
114137 minorRequirements,
138+ majorMapURL,
115139} ) {
116- let reqsLabel ;
117- if ( graduateRequirements || isMinorOrCertificate ) {
118- reqsLabel = ! isMinorOrCertificate
119- ? "Degree requirements"
120- : "Program requirements" ;
121- } else {
122- reqsLabel = ! isMinorOrCertificate
123- ? "Admission requirements"
124- : "Program requirements" ;
140+ if ( ! graduateRequirements && ! isMinorOrCertificate ) {
141+ // if the program is not a graduate program AND not a minor/certificate
142+ // we only show the undergraduate template
143+ return (
144+ < section
145+ id = { progDetailSectionIds . applicationRequirements . targetIdName }
146+ data-testid = "application-requirements"
147+ >
148+ < h2 >
149+ < span className = "highlight-gold" > Admission requirements</ span >
150+ </ h2 >
151+ { undergraduateTemplate ( {
152+ transferRequirements,
153+ additionalRequirements,
154+ } ) }
155+ </ section >
156+ ) ;
125157 }
158+
159+ const reqsLabel = ! isMinorOrCertificate
160+ ? "Degree requirements"
161+ : "Program requirements" ;
162+
163+ const requirements = graduateRequirements || minorRequirements ;
164+
126165 return (
127166 < >
128167 < section
@@ -132,35 +171,28 @@ function ApplicationRequirements({
132171 < h2 >
133172 < span className = "highlight-gold" > { reqsLabel } </ span >
134173 </ h2 >
135- { graduateRequirements || isMinorOrCertificate ? (
174+ { requirements ? (
136175 < div
137- dangerouslySetInnerHTML = { sanitizeDangerousMarkup (
138- graduateRequirements || minorRequirements
139- ) }
176+ dangerouslySetInnerHTML = { sanitizeDangerousMarkup ( requirements ) }
140177 />
141178 ) : (
142- undergraduateTemplate ( {
143- transferRequirements,
144- additionalRequirements,
145- } )
179+ viewCurriculum ( majorMapURL )
146180 ) }
147181 </ section >
148182
149- { graduateRequirements || isMinorOrCertificate ? (
150- < section
151- id = { progDetailSectionIds . degreeRequirements . targetIdName }
152- data-testid = "degree-requirements"
153- >
154- < h2 >
155- < span className = "highlight-gold" > Admission requirements</ span >
156- </ h2 >
157- < div
158- dangerouslySetInnerHTML = { sanitizeDangerousMarkup (
159- additionalRequirements
160- ) }
161- />
162- </ section >
163- ) : null }
183+ < section
184+ id = { progDetailSectionIds . degreeRequirements . targetIdName }
185+ data-testid = "degree-requirements"
186+ >
187+ < h2 >
188+ < span className = "highlight-gold" > Admission requirements</ span >
189+ </ h2 >
190+ < div
191+ dangerouslySetInnerHTML = { sanitizeDangerousMarkup (
192+ additionalRequirements
193+ ) }
194+ />
195+ </ section >
164196 </ >
165197 ) ;
166198}
@@ -171,6 +203,7 @@ ApplicationRequirements.propTypes = {
171203 isMinorOrCertificate : PropTypes . bool ,
172204 additionalRequirements : PropTypes . string ,
173205 minorRequirements : PropTypes . string ,
206+ majorMapURL : PropTypes . string ,
174207} ;
175208
176209export { ApplicationRequirements } ;
0 commit comments