openedx / openedx/frontend-app-learning
Reduce the Redux store to the external specialExams reducer
Open
@brian-smith-tcril is already working on this.
Since Aug 5, 2026.
- Dominant language
- JavaScript
- Stars
- 70
- Forks
- 335
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 35
Description
Part of #1946 — Redux → React Query migration (Stage 1). Partial teardown.
Goal: shrink the Redux store to the last external dependency — specialExams.
Tasks
- Reduce
store.tsto onlyspecialExams(external, from@edx/frontend-lib-special-exams). All local reducers leave first, including thepluginsslice (#2017 — its de-Redux is Stage-1, not a Stage-2 concern). - This
specialExams-only endpoint needs no external dependency — it depends only on learning's own remaining conversions (tabs, courseware, model-store #1977, plugins #2017). - Final dep removal is separate and library-gated: dropping
react-redux/redux/@reduxjs/toolkit, deletingstore.ts, and removingAppProvider store=requires the special-exams components to no longer need a host-supplied react-reduxProvider+ store. The approach for that (self-contained library store vs. React Query conversion) is being investigated in #2018; a concretefrontend-lib-special-examschange is filed only if/when that investigation says so.
Verify: store.ts registers only specialExams; git grep react-redux in learning's own source returns only special-exams-adjacent files; exams still function (timer, gating, access token).
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.