openedx / openedx/frontend-component-header
[DEPR]: Learning Header Actions Slot V1
@ChrisChV is already working on this.
Since Aug 23, 2026.
- 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.v1slot, defined in LearningHeaderActionsSlot/v1/index.jsx, which currently wrapsHeaderNotificationsSlotandLearningHelpSlotand is only rendered by v2 whenshowUserDropdownis true. - Delete the
v1/directory entirely. The sharedimages/folder stays, since its screenshots remain valid forv2. - The root index.jsx will drop the
LearningHeaderActionsSlotV1named 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
- Merge the PR introducing the
v2slot: https://github.com/openedx/frontend-component-header/pull/682 - Mark
v1as deprecated inv1/README.mdandplugin-slots/README.md - Announce the migration path on Discourse/Slack so operators and plugin authors update their
pluginSlotsconfig from.v1to.v2
Feature Removal Tasks
- Remove the
v1/directory (index.jsx,README.md) - Update
v2/index.jsxto renderHeaderNotificationsSlotandLearningHelpSlotdirectly and unconditionally - Remove the
LearningHeaderActionsSlotV1named export from the rootindex.jsx - Update the root
README.mdandHeaderNotificationsSlot/README.mdto remove references to.v1 - Publish a release and changelog entry noting the removal
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.