Implement the "Releases" section in the Portal using the newly refactored shared content components.
Goal:
Display release notes in the Portal using the same "Tree Nav + Content + Sections List" layout as the "Learn" section.
Scope:
- Stores:
- Create
apps/portal/store/Releases.mjs to fetch and manage the tree of release versions (likely from a releases.json index).
- Reuse or extend
apps/portal/store/ContentSections.mjs for the right-hand sidebar.
- View Construction:
- Create
apps/portal/view/release/MainContainer.mjs extending apps/portal/view/shared/content/Container.mjs.
- Create
apps/portal/view/release/MainContainerController.mjs.
- Create
apps/portal/view/release/MainContainerStateProvider.mjs.
- Wiring:
- In
MainContainerStateProvider, map the generic tree store key to apps/portal/store/Releases.mjs.
- Map the generic
sections store key to the section store.
- Integration:
- Update
apps/portal/view/news/TabContainer.mjs (or equivalent) to replace the "Releases" placeholder with the new MainContainer.
- Routing:
- Configure the controller to handle
/news/releases/{version} routes.
Dependencies:
- Depends on the completion of #8388 (Refactor Learn).
Implement the "Releases" section in the Portal using the newly refactored shared content components.
Goal: Display release notes in the Portal using the same "Tree Nav + Content + Sections List" layout as the "Learn" section.
Scope:
apps/portal/store/Releases.mjsto fetch and manage the tree of release versions (likely from areleases.jsonindex).apps/portal/store/ContentSections.mjsfor the right-hand sidebar.apps/portal/view/release/MainContainer.mjsextendingapps/portal/view/shared/content/Container.mjs.apps/portal/view/release/MainContainerController.mjs.apps/portal/view/release/MainContainerStateProvider.mjs.MainContainerStateProvider, map the generictreestore key toapps/portal/store/Releases.mjs.sectionsstore key to the section store.apps/portal/view/news/TabContainer.mjs(or equivalent) to replace the "Releases" placeholder with the newMainContainer./news/releases/{version}routes.Dependencies: