diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx index 140ee20f19..1434e31b9a 100644 --- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx +++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx @@ -4,10 +4,7 @@ import React, { useContext } from "react"; import styled from "styled-components"; import { AppContext } from "../../../../../core/context"; -import { - degreeDataPropResolverService, - parseMajorInfoLink, -} from "../../../../../core/services"; +import { degreeDataPropResolverService } from "../../../../../core/services"; import { accellerateDegreeLink } from "../../../../../core/services/degree-http-service"; import { toTitleCase } from "../../../../../core/utils"; import { degreeListPropTypes } from "../programs-prop-types"; @@ -96,7 +93,7 @@ const AccordionView = ({ programs, actionUrls }) => {
  • Major:
    - + ${resolver.getMajorDesc()}
  • diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx index 7cc5a3d573..d6d828f997 100644 --- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx +++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx @@ -5,10 +5,7 @@ import React, { useContext } from "react"; import { AppContext } from "../../../../../core/context"; import { GRID_PROGRAMS_ID } from "../../../../../core/models"; import { degreeDataPropResolverService } from "../../../../../core/services"; -import { - parseMajorInfoLink, - requestInfoLink, -} from "../../../../../core/services/degree-http-service"; +import { requestInfoLink } from "../../../../../core/services/degree-http-service"; import { degreeListPropTypes } from "../programs-prop-types"; import { SectionCard } from "./index.style"; /** @@ -42,7 +39,7 @@ function GridView({ programs, loading, actionUrls }) { imageAltText="An example image" title={resolver.getMajorDesc()} linkLabel="View Program Details" - linkUrl={parseMajorInfoLink(resolver, actionUrls.majorInfoUrl)} + linkUrl={resolver.getDegreeSearchUrl()} buttons={[ { color: "maroon", diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx index 9d10ad93b6..49581f75cc 100644 --- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx +++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx @@ -10,7 +10,6 @@ import { } from "../../../../../core/components/icons"; import { getFullCampusLocalText } from "../../../../../core/models"; import { - parseMajorInfoLink, accellerateDegreeTooltipLink, // TODO: this link needs a double check mapTooltipLink, accellerateDegreeLink, @@ -29,7 +28,7 @@ const columns = [ sortable: true, contentTemplate: ({ resolver, rowIndex, actionUrls, onClick }) => (
    - + {resolver.getMajorDesc()} +
      + {breadcrumbs.map(bread => + bread?.isActive ? ( +
    1. + + trackGAEvent({ + event: "link", + action: "click", + name: "onclick", + type: "internal link", + region: "main content", + section, + text: bread.text, + }) + } + > + {bread.text} + +
    2. + ) : ( +
    3. + + trackGAEvent({ + event: "link", + action: "click", + name: "onclick", + type: "internal link", + region: "main content", + section, + text: bread.text, + }) + } + > + {bread.text} + +
    4. + ) + )} +
    + + ) + ); +} + +Breadcrumbs.propTypes = { + breadcrumbs: PropTypes.arrayOf(linkPropShape), + section: PropTypes.string, +}; + +export { Breadcrumbs }; diff --git a/packages/app-degree-pages/src/core/components/index.js b/packages/app-degree-pages/src/core/components/index.js index eb58c78372..54ec08507f 100644 --- a/packages/app-degree-pages/src/core/components/index.js +++ b/packages/app-degree-pages/src/core/components/index.js @@ -7,3 +7,4 @@ export * from "./OverlapContentImage"; export * from "./ParagrapList"; export * from "./Styles"; export * from "./icons"; +export * from "./Breadcrumbs"; diff --git a/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx b/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx index b8b66f5d45..90b0102707 100644 --- a/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx +++ b/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx @@ -85,6 +85,24 @@ function degreeDataPropResolverService(row = {}) { getInstitution: () => "ASU00", getAcadPlan: () => row["acadPlanCode"], /** @returns {string} */ + getDegreeSearchUrl: () => { + const degreeType = row["degreeType"]; + const planCode = row["acadPlanCode"]; + + if (!planCode || !degreeType) return ""; + + const programTypeMap = { + UG: "bachelors", + GR: "masters-phd", + UGCM: "minors", + }; + + const programTypePath = programTypeMap[degreeType]; + + if (!programTypePath) return ""; + + return `https://degrees.apps.asu.edu/${programTypePath}/major/ASU00/${planCode}`; + }, getDegree: () => { // Minors let degree = diff --git a/packages/app-degree-pages/src/index.js b/packages/app-degree-pages/src/index.js index c939ea2d95..f0935db386 100644 --- a/packages/app-degree-pages/src/index.js +++ b/packages/app-degree-pages/src/index.js @@ -3,5 +3,4 @@ export * from "./components"; export { initListingPage, - initProgramDetailPage, } from "./core/utils/init-page-degree";