Visitar URL original
Header: the narrow-layout menu never shows primaryLinks (separate mobileMenuLinks slot that no app fills) · Issue #322 · openedx/frontend-base · GitHub
Skip to content

Header: the narrow-layout menu never shows primaryLinks (separate mobileMenuLinks slot that no app fills) #322

Open

Description

@bmtcril

At narrow widths (below the header's 768 px breakpoint) the shell header drops every app's primary navigation links. The wide layout renders the org.openedx.frontend.slot.header.primaryLinks.v1 slot (desktop/PrimaryNavLinks.tsx). The narrow menu renders a different slot, org.openedx.frontend.slot.header.mobileMenuLinks.v1 (mobile/MobileNavLinks.tsx). No app fills that slot: searching the openedx org finds it only in frontend-base itself, where shell/header/app.tsx prepends the language menu. frontend-base's own dev header (shell/dev/devHeader/app.tsx) fills only primaryLinks.

Example (Tutor main, signed out, catalog home, 2026-10-16):

  • 1280 px: the header shows Explore courses → /catalog/courses, from frontend-app-catalog's headerLinkExploreCourses widget, plus Sign Up and Login.
  • 375 px: the toggle opens a menu containing only the language selector. "Explore courses" isn't anywhere in the header. The same applies to the catalog's signed-in links (Courses / Programs / Discover) and to learner-dashboard's primary links.
  • Manually confirmed on a Pixel 10 against the master sandbox.

Impact: on a phone, the main navigation each app registers is unreachable from the header. For a signed-out visitor on the landing page, the full course catalog listing can only be reached by URL.

Expected: the narrow menu shows the same primary links as the wide layout. Options: render primaryLinks inside the mobile menu (or make mobileMenuLinks include it by default), or document that apps must register their links in both slots and update the first-party apps.

Environment: frontend-base main (header code as of 2026-09-22, #316), Tutor main (overhangio/openedx-mfe:22.1.0-main). First seen 2026-09-23 with an empty menu, before #316 added the language item. Found by the Open edX end-to-end test suite (BTR TC-00061).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugReport of or fix for something that isn't working as intended

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions