1- import React from 'react' ;
2- import PropTypes from 'prop-types' ;
3- import { injectIntl , intlShape } from '@edx/frontend-platform/i18n' ;
1+ import { useIntl } from '@edx/frontend-platform/i18n' ;
2+ import { PluginSlot } from '@openedx/frontend-plugin-framework' ;
43import classNames from 'classnames' ;
5-
6- import messages from './messages' ;
7- import Tabs from '../generic/tabs/Tabs' ;
4+ import PropTypes from 'prop-types' ;
5+ import React from 'react' ;
86import { CoursewareSearch , CoursewareSearchToggle } from '../course-home/courseware-search' ;
97import { useCoursewareSearchState } from '../course-home/courseware-search/hooks' ;
8+ import Tabs from '../generic/tabs/Tabs' ;
9+
10+ import messages from './messages' ;
1011
11- const CourseTabsNavigation = ( {
12- activeTabSlug, className, tabs, intl,
13- } ) => {
12+ const CourseTabsNavigation = ( { activeTabSlug, className, tabs } ) => {
1413 const { show } = useCoursewareSearchState ( ) ;
14+ const intl = useIntl ( ) ;
1515
1616 return (
1717 < div id = "courseTabsNavigation" className = { classNames ( 'course-tabs-navigation' , className ) } >
@@ -20,15 +20,21 @@ const CourseTabsNavigation = ({
2020 className = "nav-underline-tabs"
2121 aria-label = { intl . formatMessage ( messages . courseMaterial ) }
2222 >
23- { tabs . map ( ( { url, title, slug } ) => (
24- < a
25- key = { slug }
26- className = { classNames ( 'nav-item flex-shrink-0 nav-link' , { active : slug === activeTabSlug } ) }
27- href = { url }
28- >
29- { title }
30- </ a >
31- ) ) }
23+ < PluginSlot id = "course_tab_links_slot" >
24+ { tabs . map ( ( {
25+ url,
26+ title,
27+ slug,
28+ } ) => (
29+ < a
30+ key = { slug }
31+ className = { classNames ( 'nav-item flex-shrink-0 nav-link' , { active : slug === activeTabSlug } ) }
32+ href = { url }
33+ >
34+ { title }
35+ </ a >
36+ ) ) }
37+ </ PluginSlot >
3238 </ Tabs >
3339 </ div >
3440 < div className = "course-tabs-navigation__search-toggle" >
@@ -47,12 +53,11 @@ CourseTabsNavigation.propTypes = {
4753 slug : PropTypes . string . isRequired ,
4854 url : PropTypes . string . isRequired ,
4955 } ) ) . isRequired ,
50- intl : intlShape . isRequired ,
5156} ;
5257
5358CourseTabsNavigation . defaultProps = {
5459 activeTabSlug : undefined ,
5560 className : null ,
5661} ;
5762
58- export default injectIntl ( CourseTabsNavigation ) ;
63+ export default CourseTabsNavigation ;
0 commit comments