diff --git a/.env b/.env index 87320c76c..ac30a050b 100644 --- a/.env +++ b/.env @@ -35,3 +35,5 @@ LOGO_URL='' LOGO_TRADEMARK_URL='' LOGO_WHITE_URL='' FAVICON_URL='' +ENABLE_LEARNER_RECORD_MFE='' +LEARNER_RECORD_MFE_BASE_URL='' diff --git a/.env.development b/.env.development index 22d9d5f5b..6c283ad62 100644 --- a/.env.development +++ b/.env.development @@ -36,3 +36,5 @@ LOGO_URL=https://edx-cdn.org/v3/default/logo.svg LOGO_TRADEMARK_URL=https://edx-cdn.org/v3/default/logo-trademark.svg LOGO_WHITE_URL=https://edx-cdn.org/v3/default/logo-white.svg FAVICON_URL=https://edx-cdn.org/v3/default/favicon.ico +ENABLE_LEARNER_RECORD_MFE='' +LEARNER_RECORD_MFE_BASE_URL='http://localhost:1990' diff --git a/.env.test b/.env.test index 661073e27..2526f82cd 100644 --- a/.env.test +++ b/.env.test @@ -17,3 +17,5 @@ LOGO_URL=https://edx-cdn.org/v3/default/logo.svg LOGO_TRADEMARK_URL=https://edx-cdn.org/v3/default/logo-trademark.svg LOGO_WHITE_URL=https://edx-cdn.org/v3/default/logo-white.svg FAVICON_URL=https://edx-cdn.org/v3/default/favicon.ico +ENABLE_LEARNER_RECORD_MFE='' +LEARNER_RECORD_MFE_BASE_URL='http://localhost:1990' diff --git a/src/index.jsx b/src/index.jsx index e662eebec..211ed43c2 100755 --- a/src/index.jsx +++ b/src/index.jsx @@ -5,6 +5,7 @@ import { APP_INIT_ERROR, APP_READY, initialize, + mergeConfig, subscribe, } from '@edx/frontend-platform'; import { @@ -55,4 +56,12 @@ initialize({ ], requireAuthenticatedUser: true, hydrateAuthenticatedUser: true, + handlers: { + config: () => { + mergeConfig({ + ENABLE_LEARNER_RECORD_MFE: (process.env.ENABLE_LEARNER_RECORD_MFE || false), + LEARNER_RECORD_MFE_BASE_URL: process.env.LEARNER_RECORD_MFE_BASE_URL, + }, 'App loadConfig override handler'); + }, + }, }); diff --git a/src/profile/ProfilePage.jsx b/src/profile/ProfilePage.jsx index c5a53488a..3b5da6e9d 100644 --- a/src/profile/ProfilePage.jsx +++ b/src/profile/ProfilePage.jsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { sendTrackingLogEvent } from '@edx/frontend-platform/analytics'; -import { ensureConfig } from '@edx/frontend-platform'; +import { ensureConfig, getConfig } from '@edx/frontend-platform'; import { AppContext } from '@edx/frontend-platform/react'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { StatusAlert, Hyperlink } from '@edx/paragon'; @@ -44,10 +44,11 @@ ensureConfig(['CREDENTIALS_BASE_URL', 'LMS_BASE_URL'], 'ProfilePage'); class ProfilePage extends React.Component { constructor(props, context) { super(props, context); - const credentialsBaseUrl = context.config.CREDENTIALS_BASE_URL; + + const recordsUrl = this.getRecordsUrl(context); this.state = { - viewMyRecordsUrl: credentialsBaseUrl ? `${credentialsBaseUrl}/records` : null, + viewMyRecordsUrl: recordsUrl, accountSettingsUrl: `${context.config.LMS_BASE_URL}/account/settings`, }; @@ -66,6 +67,19 @@ class ProfilePage extends React.Component { }); } + getRecordsUrl(context) { + let recordsUrl = null; + + if (getConfig().ENABLE_LEARNER_RECORD_MFE) { + recordsUrl = getConfig().LEARNER_RECORD_MFE_BASE_URL; + } else { + const credentialsBaseUrl = context.config.CREDENTIALS_BASE_URL; + recordsUrl = credentialsBaseUrl ? `${credentialsBaseUrl}/records` : null; + } + + return recordsUrl; + } + isAuthenticatedUserProfile() { return this.props.match.params.username === this.context.authenticatedUser.username; }