Skip to content

Commit 8ebf39f

Browse files
authored
Merge pull request #1520 from ASU/uds-1982
fix(app-degree-pages): show major map link if application-requirement…
2 parents 06aa72b + 6954dc5 commit 8ebf39f

File tree

3 files changed

+67
-32
lines changed

3 files changed

+67
-32
lines changed

packages/app-degree-pages/src/components/DetailPage/components/ApplicationRequirements/index.jsx

Lines changed: 65 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

176209
export { ApplicationRequirements };

packages/app-degree-pages/src/components/DetailPage/index.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ const DetailPage = ({
258258
minorRequirements={resolver.getMinorCourseRequirements()}
259259
additionalRequirements={resolver.getAdmissionsRequirementsText()}
260260
transferRequirements={resolver.getTransferAdmission()}
261+
majorMapURL={resolver.getGeneralDegreeMajorMap()}
261262
/>
262263
)}
263264

packages/app-degree-pages/src/core/types/detail-page-types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
* @property {string} additionalRequirements
118118
* @property {string} transferRequirements
119119
* @property {string} minorRequirements
120+
* @property {string} majorMapURL
120121
*/
121122

122123
/**

0 commit comments

Comments
 (0)