Description
Clicking "Discover New" in the header from the Learner Dashboard navigates to the catalog with a full page reload, instead of a client-side route change, even when the catalog app is loaded into the same shell (as in frontend-template-site).
DiscoverLinkMenuItem builds its href from platformSettings.courseSearchUrl, which the LMS sets to an absolute {CATALOG_MICROFRONTEND_URL}/courses URL, so the browser always leaves the page. It should link by the org.openedx.frontend.role.courses route role instead, falling back to the LMS-provided URL when that role doesn't resolve, since LinkMenuItem renders nothing for an unresolvable role.
That change alone isn't sufficient: LinkMenuItem in frontend-base passes the resolved URL straight to Paragon's Hyperlink and NavLink, so in-site paths still render as plain anchors. It needs to use getLinkProps the way LoginButton already does, which requires a companion fix in openedx/frontend-base.
Description
Clicking "Discover New" in the header from the Learner Dashboard navigates to the catalog with a full page reload, instead of a client-side route change, even when the catalog app is loaded into the same shell (as in
frontend-template-site).DiscoverLinkMenuItembuilds its href fromplatformSettings.courseSearchUrl, which the LMS sets to an absolute{CATALOG_MICROFRONTEND_URL}/coursesURL, so the browser always leaves the page. It should link by theorg.openedx.frontend.role.coursesroute role instead, falling back to the LMS-provided URL when that role doesn't resolve, sinceLinkMenuItemrenders nothing for an unresolvable role.That change alone isn't sufficient:
LinkMenuItemin frontend-base passes the resolved URL straight to Paragon'sHyperlinkandNavLink, so in-site paths still render as plain anchors. It needs to usegetLinkPropsthe wayLoginButtonalready does, which requires a companion fix in openedx/frontend-base.