diff --git a/packages/app-degree-pages/src/components/DetailPage/components/ApplicationRequirements/index.jsx b/packages/app-degree-pages/src/components/DetailPage/components/ApplicationRequirements/index.jsx index 8a3ebe9fa7..9c7785d9d2 100644 --- a/packages/app-degree-pages/src/components/DetailPage/components/ApplicationRequirements/index.jsx +++ b/packages/app-degree-pages/src/components/DetailPage/components/ApplicationRequirements/index.jsx @@ -102,6 +102,29 @@ const undergraduateTemplate = ({ ); }; +const viewCurriculum = majorMapURL => { + const label = "View Curriculum"; + return ( + <> +

+ View curriculum below for a detailed list of courses and other + requirements. +

+ +
  • +
  • +
    + + ); +}; + /** * @param {ApplicationRequirementsProps} props * @returns {JSX.Element} @@ -112,17 +135,33 @@ function ApplicationRequirements({ isMinorOrCertificate, additionalRequirements, minorRequirements, + majorMapURL, }) { - let reqsLabel; - if (graduateRequirements || isMinorOrCertificate) { - reqsLabel = !isMinorOrCertificate - ? "Degree requirements" - : "Program requirements"; - } else { - reqsLabel = !isMinorOrCertificate - ? "Admission requirements" - : "Program requirements"; + if (!graduateRequirements && !isMinorOrCertificate) { + // if the program is not a graduate program AND not a minor/certificate + // we only show the undergraduate template + return ( +
    +

    + Admission requirements +

    + {undergraduateTemplate({ + transferRequirements, + additionalRequirements, + })} +
    + ); } + + const reqsLabel = !isMinorOrCertificate + ? "Degree requirements" + : "Program requirements"; + + const requirements = graduateRequirements || minorRequirements; + return ( <>
    {reqsLabel} - {graduateRequirements || isMinorOrCertificate ? ( + {requirements ? (
    ) : ( - undergraduateTemplate({ - transferRequirements, - additionalRequirements, - }) + viewCurriculum(majorMapURL) )}
    - {graduateRequirements || isMinorOrCertificate ? ( -
    -

    - Admission requirements -

    -
    -
    - ) : null} +
    +

    + Admission requirements +

    +
    +
    ); } @@ -171,6 +203,7 @@ ApplicationRequirements.propTypes = { isMinorOrCertificate: PropTypes.bool, additionalRequirements: PropTypes.string, minorRequirements: PropTypes.string, + majorMapURL: PropTypes.string, }; export { ApplicationRequirements }; diff --git a/packages/app-degree-pages/src/components/DetailPage/index.jsx b/packages/app-degree-pages/src/components/DetailPage/index.jsx index d31aa8b06e..882a1e2bac 100644 --- a/packages/app-degree-pages/src/components/DetailPage/index.jsx +++ b/packages/app-degree-pages/src/components/DetailPage/index.jsx @@ -258,6 +258,7 @@ const DetailPage = ({ minorRequirements={resolver.getMinorCourseRequirements()} additionalRequirements={resolver.getAdmissionsRequirementsText()} transferRequirements={resolver.getTransferAdmission()} + majorMapURL={resolver.getGeneralDegreeMajorMap()} /> )} diff --git a/packages/app-degree-pages/src/core/types/detail-page-types.js b/packages/app-degree-pages/src/core/types/detail-page-types.js index 7361c120e2..375571d36c 100644 --- a/packages/app-degree-pages/src/core/types/detail-page-types.js +++ b/packages/app-degree-pages/src/core/types/detail-page-types.js @@ -117,6 +117,7 @@ * @property {string} additionalRequirements * @property {string} transferRequirements * @property {string} minorRequirements + * @property {string} majorMapURL */ /**