11import { FC , memo , useState } from 'react' ;
2- import { defineMessages , injectIntl , WrappedComponentProps } from 'react-intl' ;
2+ import { defineMessages } from 'react-intl' ;
33import equal from 'fast-deep-equal' ;
44import { EnrolRequestRowData } from 'types/course/enrolRequests' ;
55
66import AcceptButton from 'lib/components/core/buttons/AcceptButton' ;
77import DeleteButton from 'lib/components/core/buttons/DeleteButton' ;
8- import { COURSE_USER_ROLES } from 'lib/constants/sharedConstants' ;
98import { useAppDispatch } from 'lib/hooks/store' ;
109import toast from 'lib/hooks/toast' ;
10+ import useTranslation from 'lib/hooks/useTranslation' ;
11+ import roleTranslations from 'lib/translations/course/users/roles' ;
1112
1213import { approveEnrolRequest , rejectEnrolRequest } from '../../operations' ;
1314
14- interface Props extends WrappedComponentProps {
15+ interface Props {
1516 enrolRequest : EnrolRequestRowData ;
1617}
1718const styles = {
@@ -53,7 +54,8 @@ const translations = defineMessages({
5354} ) ;
5455
5556const PendingEnrolRequestsButtons : FC < Props > = ( props ) => {
56- const { intl, enrolRequest } = props ;
57+ const { enrolRequest } = props ;
58+ const { t } = useTranslation ( ) ;
5759 const dispatch = useAppDispatch ( ) ;
5860 const [ isApproving , setIsApproving ] = useState ( false ) ;
5961 const [ isDeleting , setIsDeleting ] = useState ( false ) ;
@@ -63,7 +65,7 @@ const PendingEnrolRequestsButtons: FC<Props> = (props) => {
6365 return dispatch ( approveEnrolRequest ( enrolRequest ) )
6466 . then ( ( ) => {
6567 toast . success (
66- intl . formatMessage ( translations . approveSuccess , {
68+ t ( translations . approveSuccess , {
6769 name : enrolRequest . name ,
6870 } ) ,
6971 ) ;
@@ -73,7 +75,7 @@ const PendingEnrolRequestsButtons: FC<Props> = (props) => {
7375 ? error . response . data . errors
7476 : '' ;
7577 toast . error (
76- intl . formatMessage ( translations . approveFailure , {
78+ t ( translations . approveFailure , {
7779 error : errorMessage ,
7880 } ) ,
7981 ) ;
@@ -86,7 +88,7 @@ const PendingEnrolRequestsButtons: FC<Props> = (props) => {
8688 return dispatch ( rejectEnrolRequest ( enrolRequest . id ) )
8789 . then ( ( ) => {
8890 toast . success (
89- intl . formatMessage ( translations . rejectSuccess , {
91+ t ( translations . rejectSuccess , {
9092 name : enrolRequest . name ,
9193 } ) ,
9294 ) ;
@@ -96,7 +98,7 @@ const PendingEnrolRequestsButtons: FC<Props> = (props) => {
9698 ? error . response . data . errors
9799 : '' ;
98100 toast . error (
99- intl . formatMessage ( translations . rejectFailure , {
101+ t ( translations . rejectFailure , {
100102 error : errorMessage ,
101103 } ) ,
102104 ) ;
@@ -111,28 +113,25 @@ const PendingEnrolRequestsButtons: FC<Props> = (props) => {
111113 disabled = { isApproving || isDeleting }
112114 onClick = { onApprove }
113115 sx = { styles . buttonStyle }
114- tooltip = { intl . formatMessage ( translations . approveTooltip ) }
116+ tooltip = { t ( translations . approveTooltip ) }
115117 />
116118 < DeleteButton
117119 className = { `enrol-request-reject-${ enrolRequest . id } ` }
118- confirmMessage = { intl . formatMessage ( translations . rejectConfirm , {
119- role : COURSE_USER_ROLES [ enrolRequest . role ! ] ,
120+ confirmMessage = { t ( translations . rejectConfirm , {
121+ role : t ( roleTranslations [ enrolRequest . role ! ] ) ,
120122 name : enrolRequest . name ,
121123 email : enrolRequest . email ,
122124 } ) }
123125 disabled = { isApproving || isDeleting }
124126 loading = { isDeleting }
125127 onClick = { onDelete }
126128 sx = { styles . buttonStyle }
127- tooltip = { intl . formatMessage ( translations . rejectTooltip ) }
129+ tooltip = { t ( translations . rejectTooltip ) }
128130 />
129131 </ div >
130132 ) ;
131133} ;
132134
133- export default memo (
134- injectIntl ( PendingEnrolRequestsButtons ) ,
135- ( prevProps , nextProps ) => {
136- return equal ( prevProps . enrolRequest , nextProps . enrolRequest ) ;
137- } ,
138- ) ;
135+ export default memo ( PendingEnrolRequestsButtons , ( prevProps , nextProps ) => {
136+ return equal ( prevProps . enrolRequest , nextProps . enrolRequest ) ;
137+ } ) ;
0 commit comments