openedx / openedx/frontend-component-header

[DEPR]: Learning Header Actions Slot V1

Open
#681 2 comments 0 reactions 1 assignee View on GitHub

@ChrisChV is already working on this.

Since Aug 23, 2026.

depr
Dominant language
JavaScript
Stars
10
Forks
193
Avg merge
25d 8h
Merged PRs (30d)
1

Description

RFC Start Date

2026-08-31

Target Plan Accepted Date

2026-09-14

Target Transition Unblocked Date

2026-09-23

Earliest Breaking Changes Unblocked Date

2026-10-23

Earliest Open edX Named Release with Breaking Changes

Willow - 2027-01

Rationale

The org.openedx.frontend.layout.learning_header_actions.v1 plugin slot is gated behind both showUserDropdown and authenticatedUser, tying it to the visibility of the user dropdown menu. This is unintended: showUserDropdown should only control the AuthenticatedUserDropdown, not the header's action items (notifications tray, help link, and any plugin content injected into this slot). This prevents consumers who set showUserDropdown={false} from still showing notifications/help, and prevents third-party plugins attached to this slot from rendering independently of that flag. See https://github.com/openedx/frontend-component-header/pull/676

Removal
  • Remove the org.openedx.frontend.layout.learning_header_actions.v1 slot, defined in LearningHeaderActionsSlot/v1/index.jsx, which currently wraps HeaderNotificationsSlot and LearningHelpSlot and is only rendered by v2 when showUserDropdown is true.
  • Delete the v1/ directory entirely. The shared images/ folder stays, since its screenshots remain valid for v2.
  • The root index.jsx will drop the LearningHeaderActionsSlotV1 named export.
Replacement

Replaced by the org.openedx.frontend.layout.learning_header_actions.v2 slot, defined in LearningHeaderActionsSlot/v2/index.jsx. Once v1 is removed, v2 will render HeaderNotificationsSlot and LearningHelpSlot directly and unconditionally, no longer gated by showUserDropdown.

Deprecation

Mark org.openedx.frontend.layout.learning_header_actions.v1 as deprecated in v1/README.md and in the plugin slots index, pointing consumers to .v2.

Open question: Is there no native way to deprecate a plugin slot?

Additional Info

No response

Transition Unblocked Tasks
Feature Removal Tasks
  • Remove the v1/ directory (index.jsx, README.md)
  • Update v2/index.jsx to render HeaderNotificationsSlot and LearningHelpSlot directly and unconditionally
  • Remove the LearningHeaderActionsSlotV1 named export from the root index.jsx
  • Update the root README.md and HeaderNotificationsSlot/README.md to remove references to .v1
  • Publish a release and changelog entry noting the removal

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.