From dd2e9b6348db4537584b30e744252186065d09bf Mon Sep 17 00:00:00 2001 From: Ojas Atkar Date: Tue, 30 Jun 2026 17:42:13 -0700 Subject: [PATCH 1/2] fix(app-degree-pages): degree links point to degree search degree pages --- .../ProgramList/AccordionView/index.jsx | 7 ++----- .../components/ProgramList/GridView/index.jsx | 7 ++----- .../ListView/index.colums.config.jsx | 3 +-- .../degree-data-prop-resolver-service.jsx | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+), 12 deletions(-) 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()} "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 = From 83e8992e36c56dd89994714f11b37f0fb211477f Mon Sep 17 00:00:00 2001 From: Ojas Atkar Date: Tue, 7 Jul 2026 11:42:22 -0700 Subject: [PATCH 2/2] fix(app-degree-pages): delete degree detail page component --- .../src/components/ListingPage/index.jsx | 2 +- .../src/core/components/Breadcrumbs/index.jsx | 80 +++++++++++++++++++ .../src/core/components/index.js | 1 + packages/app-degree-pages/src/index.js | 1 - 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 packages/app-degree-pages/src/core/components/Breadcrumbs/index.jsx diff --git a/packages/app-degree-pages/src/components/ListingPage/index.jsx b/packages/app-degree-pages/src/components/ListingPage/index.jsx index 0c0e3882f7..0c7a519ff4 100644 --- a/packages/app-degree-pages/src/components/ListingPage/index.jsx +++ b/packages/app-degree-pages/src/components/ListingPage/index.jsx @@ -28,7 +28,7 @@ import { } from "../../core/models/app-prop-types"; import { filterData, sortPrograms } from "../../core/services"; import { urlResolver } from "../../core/utils"; -import { Breadcrumbs } from "../DetailPage/components/Breadcrumbs"; +import { Breadcrumbs } from "../../core/components/Breadcrumbs"; import { BrowseTitle } from "./components/BrowseTitle"; import { Filters, INITIAL_FILTER_STATE } from "./components/Filters"; import { FiltersSummary } from "./components/FiltersSummary"; diff --git a/packages/app-degree-pages/src/core/components/Breadcrumbs/index.jsx b/packages/app-degree-pages/src/core/components/Breadcrumbs/index.jsx new file mode 100644 index 0000000000..68f9d4e3ec --- /dev/null +++ b/packages/app-degree-pages/src/core/components/Breadcrumbs/index.jsx @@ -0,0 +1,80 @@ +// @ts-check +import { idGenerator } from "@asu/shared"; +import PropTypes from "prop-types"; +import React from "react"; + +import { linkPropShape } from "../../../../core/models"; +import { trackGAEvent } from "../../../../core/services/google-analytics"; + +/** + * + * @param {{ + * breadcrumbs: import("src/core/types/detail-page-types").BreadcrumbItem [], + * section: string + * }} param0 + * @returns + */ +function Breadcrumbs({ breadcrumbs, section }) { + const genId = idGenerator("breadcrumb-"); + + return ( + breadcrumbs && ( + + ) + ); +} + +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/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";