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;