Conversation
BREAKING CHANGE: refactors the MFE for frontend-base.
| it('renders Image layout when ENABLE_IMAGE_LAYOUT configuration is enabled', () => { | ||
| mergeConfig({ | ||
| ENABLE_IMAGE_LAYOUT: true, | ||
| mergeSiteConfig({ |
There was a problem hiding this comment.
| mergeSiteConfig({ | |
| mergeAppConfig(testAppId, { |
| { | ||
| path: '*', | ||
| element: ( | ||
| <Navigate replace to={PAGE_NOT_FOUND} /> | ||
| ), | ||
| } |
There was a problem hiding this comment.
Probably not a good idea having an app with a catch-all. This should be handled by the shell. (Thanks @bradenmacdonald for catching this.)
The only purpose of the included index.html is to serve the dev environment, so modify it to make that clear.
Apps should avoid having a catch-all route, instead relying on the shell to provide it.
Update package.json for publication as a "buildless" library. (Also upgrade openedx-atlas.)
feat: Prepare for publication to NPM
Now we have a way to discover app URLs dynamically; do so for the (default) redirect on login.
Bump frontend-base to alpha.4 to fix a bug with the route role redirection mechanism.
Bump frontend-base to avoid the inotify handle resource starvation.
BREAKING CHANGE: Pre-design-tokens theming is no longer supported.
When the backend returns the LMS dashboard URL as redirect_url after login or registration, replace it with getUrlByRouteRole(dashboardRole) so that RedirectLogistration can use <Navigate> for SPA navigation instead of a full page reload. Also hydrate the authenticated user before SPA navigation so the shell header displays the user's name. This applies the same fetchAuthenticatedUser/hydrateAuthenticatedUser pattern already used for the localNextPath flow to any redirect URL that starts with '/'. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
If the dashboard route role isn't registered, getUrlByRouteRole() returns undefined, breaking navigation. Fall back to '/' in all four call sites so the app degrades gracefully. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The formatjs formatter in @openedx/frontend-base now outputs flat KV JSON directly to src/i18n/transifex_input.json (as of alpha.16), so the separate i18n.concat step and its associated transifex-utils dependency are no longer needed. Bump @openedx/frontend-base peer dep to ^1.0.0-alpha.16 to require the version that includes this change. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add workspaces configuration and workspace-aware scripts for developing with local packages (such as frontend-base). Also, since npm skips bin-linking for workspace packages during install, do it when frontend-base is built. Part of openedx/frontend-base#184 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds `.releaserc` and a release GitHub Actions workflow, releasing from the `frontend-base` branch as a prerelease (`alpha`) to the `latest` dist-tag. Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.7 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename src/i18n/index.js → index.ts (project uses TypeScript) - Add src/i18n/messages.d.ts type stub so TypeScript is satisfied before translations:pull has been run - Remove src/i18n/messages.ts from git tracking (gitignored, generated) - Remove unused intl_imports and i18n Makefile variables - Remove detect_changed_source_translations Makefile target (unused by any CI workflow, extract_translations, or pull_translations) - Update package-lock to resolve @openedx/frontend-base to 1.0.0-alpha.23 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.8 🎉 The release is available on: Your semantic-release bot 📦🚀 |
The old App.messages pattern included apps exporting their messages via \`src/index.ts\`. There is no reason for apps to export this. The file only exists so the app can run as a site with \`npm run dev\`. With frontend-base's i18n pipeline, translations are handled at the site level via \`site.i18n\`. App-only testing didn't catch this because the webpack fallback plugin correctly resolves the missing messages file when \`npm run dev\` is running the app as a site from the repo root (\`src/i18n/\` context). The broken export only surfaces when the compiled \`dist/\` is consumed by a site. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.9 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.10 🎉 The release is available on: Your semantic-release bot 📦🚀 |
frontend-base now expects `roles: [role]` instead of `role: role` in route handle objects. Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.11 🎉 The release is available on: Your semantic-release bot 📦🚀 |
The shell stylesheet moved from a SCSS file to a JS manifest at @openedx/frontend-base/shell/style. Imports it directly from site.config.dev.tsx and drops the now-redundant site.scss. Also fixes two @media queries in _base_component.scss that used a single-dash custom-media name and were silently non-matching. Refs openedx/frontend-base#232 Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.12 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Adds a build-ci make target (exposed as npm run build:ci) that runs openedx build against site.config.dev.tsx, and wires it into the CI workflow after the existing tsc-based build step. Catches errors in the real app graph (e.g. broken imports in lazy-loaded routes) that neither tsc nor Jest would surface. Co-Authored-By: Claude <noreply@anthropic.com>
NotFoundPage was the only authn route child without a <Helmet> block, so /authn/notfound kept whatever title the previous page set. Add the title following the per-page pattern from frontend-base ADR 0015. Refs openedx/frontend-base#250. Co-Authored-By: Claude <noreply@anthropic.com>
|
🎉 This PR is included in version 1.0.0-alpha.13 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Description
Refer to the parent issue for a full description.
In short, this refactors the codebase for frontend-base support. There are several breaking changes. It is a long-lived feature branch, and as such, should not be rebased or squashed until time comes for it to either merge to master or become master.
BREAKING CHANGE: Plugins written prior to this will need to be adapted to frontend-base syntax.