1- import { useState } from 'react' ;
21import { useParams } from 'react-router-dom' ;
32import { useIntl } from '@openedx/frontend-base' ;
4- import { useToggle , ActionRow , Button , IconButton , ModalPopup , Menu , MenuItem } from '@openedx/paragon' ;
3+ import { useToggle , ActionRow , Button , IconButton , Dropdown } from '@openedx/paragon' ;
54import { TrendingUp , MoreVert , OpenInNew } from '@openedx/paragon/icons' ;
65import { useCourseInfo } from '@src/data/apiHook' ;
76import GradingConfigurationModal from '@src/grading/components/GradingConfigurationModal' ;
@@ -11,41 +10,34 @@ const GradingActionRow = () => {
1110 const { courseId = '' } = useParams < { courseId : string } > ( ) ;
1211 const intl = useIntl ( ) ;
1312 const { data = { gradebookUrl : '' , studioGradingUrl : '' } } = useCourseInfo ( courseId ) ;
14- const [ configurationMenuTarget , setConfigurationMenuTarget ] = useState < HTMLButtonElement | null > ( null ) ;
15- const [ isOpenMenu , openMenu , closeMenu ] = useToggle ( false ) ;
1613 const [ isOpenConfigModal , openConfigModal , closeConfigModal ] = useToggle ( false ) ;
1714
18- const handleConfigurationMenuClick = ( event : React . MouseEvent < HTMLButtonElement > ) => {
19- setConfigurationMenuTarget ( event ?. currentTarget ) ;
20- openMenu ( ) ;
21- } ;
22-
2315 const handleConfigModalOpen = ( ) => {
2416 openConfigModal ( ) ;
25- closeMenu ( ) ;
2617 } ;
2718
2819 return (
2920 < >
3021 < ActionRow >
3122 < Button as = "a" href = { data . gradebookUrl } iconBefore = { TrendingUp } variant = "outline-primary" > { intl . formatMessage ( messages . viewGradebook ) } </ Button >
32- < IconButton
33- alt = { intl . formatMessage ( messages . configurationAlt ) }
34- className = "lead"
35- iconAs = { MoreVert }
36- onClick = { handleConfigurationMenuClick }
37- />
23+ < Dropdown >
24+ < Dropdown . Toggle
25+ as = { IconButton }
26+ alt = { intl . formatMessage ( messages . configurationAlt ) }
27+ className = "lead"
28+ iconAs = { MoreVert }
29+ />
30+ < Dropdown . Menu >
31+ < Dropdown . Item onClick = { handleConfigModalOpen } >
32+ { intl . formatMessage ( messages . viewGradingConfiguration ) }
33+ </ Dropdown . Item >
34+ < Dropdown . Item as = "a" href = { data . studioGradingUrl } target = "_blank" >
35+ { intl . formatMessage ( messages . viewCourseGradingSettings ) }
36+ < OpenInNew className = "ml-2" />
37+ </ Dropdown . Item >
38+ </ Dropdown . Menu >
39+ </ Dropdown >
3840 </ ActionRow >
39- < ModalPopup positionRef = { configurationMenuTarget } onClose = { closeMenu } isOpen = { isOpenMenu } >
40- < Menu >
41- < MenuItem onClick = { handleConfigModalOpen } >
42- { intl . formatMessage ( messages . viewGradingConfiguration ) }
43- </ MenuItem >
44- < MenuItem iconAfter = { OpenInNew } as = "a" href = { data . studioGradingUrl } target = "_blank" >
45- { intl . formatMessage ( messages . viewCourseGradingSettings ) }
46- </ MenuItem >
47- </ Menu >
48- </ ModalPopup >
4941 < GradingConfigurationModal isOpen = { isOpenConfigModal } onClose = { closeConfigModal } />
5042 </ >
5143 ) ;
0 commit comments