diff --git a/src/course-tabs/CourseTabsNavigation.jsx b/src/course-tabs/CourseTabsNavigation.jsx
index 63640ebe41..a5eccabe5e 100644
--- a/src/course-tabs/CourseTabsNavigation.jsx
+++ b/src/course-tabs/CourseTabsNavigation.jsx
@@ -1,17 +1,17 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
+import { useIntl } from '@edx/frontend-platform/i18n';
+import { PluginSlot } from '@openedx/frontend-plugin-framework';
import classNames from 'classnames';
-
-import messages from './messages';
-import Tabs from '../generic/tabs/Tabs';
+import PropTypes from 'prop-types';
+import React from 'react';
import { CoursewareSearch, CoursewareSearchToggle } from '../course-home/courseware-search';
import { useCoursewareSearchState } from '../course-home/courseware-search/hooks';
+import Tabs from '../generic/tabs/Tabs';
+
+import messages from './messages';
-const CourseTabsNavigation = ({
- activeTabSlug, className, tabs, intl,
-}) => {
+const CourseTabsNavigation = ({ activeTabSlug, className, tabs }) => {
const { show } = useCoursewareSearchState();
+ const intl = useIntl();
return (
@@ -20,15 +20,21 @@ const CourseTabsNavigation = ({
className="nav-underline-tabs"
aria-label={intl.formatMessage(messages.courseMaterial)}
>
- {tabs.map(({ url, title, slug }) => (
-
- {title}
-
- ))}
+
+ {tabs.map(({
+ url,
+ title,
+ slug,
+ }) => (
+
+ {title}
+
+ ))}
+
@@ -47,7 +53,6 @@ CourseTabsNavigation.propTypes = {
slug: PropTypes.string.isRequired,
url: PropTypes.string.isRequired,
})).isRequired,
- intl: intlShape.isRequired,
};
CourseTabsNavigation.defaultProps = {
@@ -55,4 +60,4 @@ CourseTabsNavigation.defaultProps = {
className: null,
};
-export default injectIntl(CourseTabsNavigation);
+export default CourseTabsNavigation;
diff --git a/src/index.jsx b/src/index.jsx
index f390cb3106..47a4e854b1 100755
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -7,6 +7,7 @@ import {
getConfig,
} from '@edx/frontend-platform';
import { AppProvider, ErrorPage, PageWrap } from '@edx/frontend-platform/react';
+import { PluginSlot } from '@openedx/frontend-plugin-framework';
import React from 'react';
import ReactDOM from 'react-dom';
import { Routes, Route } from 'react-router-dom';
@@ -62,7 +63,7 @@ subscribe(APP_READY, () => {
- )}
+ )}
/>
{
)}
/>
))}
+ {getConfig()?.PLUGIN_ROUTES?.map((route) => (
+
+
+
+ )}
+ />
+ ))}
diff --git a/src/setupTest.js b/src/setupTest.js
index e1bfdc79b6..6184a85361 100755
--- a/src/setupTest.js
+++ b/src/setupTest.js
@@ -30,12 +30,6 @@ import { appendBrowserTimezoneToUrl, executeThunk } from './utils';
import buildSimpleCourseAndSequenceMetadata from './courseware/data/__factories__/sequenceMetadata.factory';
import { buildOutlineFromBlocks } from './courseware/data/__factories__/learningSequencesOutline.factory';
-jest.mock('@openedx/frontend-plugin-framework', () => ({
- ...jest.requireActual('@openedx/frontend-plugin-framework'),
- Plugin: () => 'Plugin',
- PluginSlot: () => 'PluginSlot',
-}));
-
jest.mock('@src/generic/plugin-store', () => ({
...jest.requireActual('@src/generic/plugin-store'),
usePluginsCallback: jest.fn((_, cb) => cb),
diff --git a/src/tab-page/TabPage.jsx b/src/tab-page/TabPage.jsx
index c9c29ed578..ee9a5d5ed4 100644
--- a/src/tab-page/TabPage.jsx
+++ b/src/tab-page/TabPage.jsx
@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
+import { useIntl } from '@edx/frontend-platform/i18n';
import { useDispatch, useSelector } from 'react-redux';
import { Navigate } from 'react-router-dom';
@@ -17,7 +17,8 @@ import LoadedTabPage from './LoadedTabPage';
import { setCallToActionToast } from '../course-home/data/slice';
import LaunchCourseHomeTourButton from '../product-tours/newUserCourseHomeTour/LaunchCourseHomeTourButton';
-const TabPage = ({ intl, ...props }) => {
+const TabPage = ({ ...props }) => {
+ const intl = useIntl();
const {
activeTabSlug,
courseId,
@@ -92,11 +93,10 @@ TabPage.defaultProps = {
TabPage.propTypes = {
activeTabSlug: PropTypes.string.isRequired,
- intl: intlShape.isRequired,
courseId: PropTypes.string,
courseStatus: PropTypes.string.isRequired,
metadataModel: PropTypes.string.isRequired,
unitId: PropTypes.string,
};
-export default injectIntl(TabPage);
+export default TabPage;