Skip to content

Commit 46d5917

Browse files
refactor: Replace of injectIntl with useIntl() part 7 (#2297)
1 parent 4f3904e commit 46d5917

File tree

14 files changed

+106
-129
lines changed

14 files changed

+106
-129
lines changed

src/accessibility-page/AccessibilityBody/AccessibilityBody.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3-
import { injectIntl, FormattedMessage } from '@edx/frontend-platform/i18n';
3+
import { FormattedMessage } from '@edx/frontend-platform/i18n';
44
import { Hyperlink, MailtoLink, Stack } from '@openedx/paragon';
55

66
import messages from './messages';
@@ -95,4 +95,4 @@ AccessibilityBody.propTypes = {
9595
email: PropTypes.string.isRequired,
9696
};
9797

98-
export default injectIntl(AccessibilityBody);
98+
export default AccessibilityBody;
Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,57 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import { ActionRow, AlertModal, Button } from '@openedx/paragon';
4-
import { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';
4+
import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n';
55

66
import ModalErrorListItem from './ModalErrorListItem';
77
import messages from './messages';
88

99
const ModalError = ({
10-
intl, isError, handleUndoChanges, showErrorModal, errorList, settingsData,
11-
}) => (
12-
<AlertModal
13-
title={intl.formatMessage(messages.modalErrorTitle)}
14-
isOpen={isError}
15-
variant="danger"
16-
footerNode={(
17-
<ActionRow>
18-
<Button
19-
variant="tertiary"
20-
onClick={() => showErrorModal(!isError)}
21-
>
22-
{intl.formatMessage(messages.modalErrorButtonChangeManually)}
23-
</Button>
24-
<Button onClick={handleUndoChanges}>
25-
{intl.formatMessage(messages.modalErrorButtonUndoChanges)}
26-
</Button>
27-
</ActionRow>
10+
isError, handleUndoChanges, showErrorModal, errorList, settingsData,
11+
}) => {
12+
const intl = useIntl();
13+
return (
14+
<AlertModal
15+
title={intl.formatMessage(messages.modalErrorTitle)}
16+
isOpen={isError}
17+
variant="danger"
18+
footerNode={(
19+
<ActionRow>
20+
<Button
21+
variant="tertiary"
22+
onClick={() => showErrorModal(!isError)}
23+
>
24+
{intl.formatMessage(messages.modalErrorButtonChangeManually)}
25+
</Button>
26+
<Button onClick={handleUndoChanges}>
27+
{intl.formatMessage(messages.modalErrorButtonUndoChanges)}
28+
</Button>
29+
</ActionRow>
2830
)}
29-
>
30-
<p>
31-
<FormattedMessage
32-
id="course-authoring.advanced-settings.modal.error.description"
33-
defaultMessage="There was {errorCounter} while trying to save the course settings in the database.
31+
>
32+
<p>
33+
<FormattedMessage
34+
id="course-authoring.advanced-settings.modal.error.description"
35+
defaultMessage="There was {errorCounter} while trying to save the course settings in the database.
3436
Please check the following validation feedbacks and reflect them in your course settings:"
35-
values={{ errorCounter: <strong>{errorList.length} validation error </strong> }}
36-
/>
37-
</p>
38-
<hr />
39-
<ul className="p-0">
40-
{errorList.map((settingName) => (
41-
<ModalErrorListItem
42-
key={settingName.key}
43-
settingName={settingName}
44-
settingsData={settingsData}
37+
values={{ errorCounter: <strong>{errorList.length} validation error </strong> }}
4538
/>
46-
))}
47-
</ul>
48-
</AlertModal>
49-
);
39+
</p>
40+
<hr />
41+
<ul className="p-0">
42+
{errorList.map((settingName) => (
43+
<ModalErrorListItem
44+
key={settingName.key}
45+
settingName={settingName}
46+
settingsData={settingsData}
47+
/>
48+
))}
49+
</ul>
50+
</AlertModal>
51+
);
52+
};
5053

5154
ModalError.propTypes = {
52-
intl: intlShape.isRequired,
5355
isError: PropTypes.bool.isRequired,
5456
handleUndoChanges: PropTypes.func.isRequired,
5557
showErrorModal: PropTypes.func.isRequired,
@@ -60,4 +62,4 @@ ModalError.propTypes = {
6062
settingsData: PropTypes.shape({}).isRequired,
6163
};
6264

63-
export default injectIntl(ModalError);
65+
export default ModalError;

src/course-unit/course-sequence/sequence-navigation/SequenceNavigation.jsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useSelector } from 'react-redux';
33
import PropTypes from 'prop-types';
44
import classNames from 'classnames';
55
import {
6-
injectIntl, intlShape, isRtl, getLocale,
6+
useIntl, isRtl, getLocale,
77
} from '@edx/frontend-platform/i18n';
88
import { Button, useWindowSize, breakpoints } from '@openedx/paragon';
99
import {
@@ -19,14 +19,14 @@ import messages from '../messages';
1919
import SequenceNavigationTabs from './SequenceNavigationTabs';
2020

2121
const SequenceNavigation = ({
22-
intl,
2322
courseId,
2423
unitId,
2524
sequenceId,
2625
className,
2726
handleCreateNewCourseXBlock,
2827
showPasteUnit,
2928
}) => {
29+
const intl = useIntl();
3030
const sequenceStatus = useSelector(getSequenceStatus);
3131
const {
3232
isFirstUnit, isLastUnit, nextLink, previousLink,
@@ -106,7 +106,6 @@ const SequenceNavigation = ({
106106
};
107107

108108
SequenceNavigation.propTypes = {
109-
intl: intlShape.isRequired,
110109
courseId: PropTypes.string.isRequired,
111110
unitId: PropTypes.string,
112111
className: PropTypes.string,
@@ -121,4 +120,4 @@ SequenceNavigation.defaultProps = {
121120
className: undefined,
122121
};
123122

124-
export default injectIntl(SequenceNavigation);
123+
export default SequenceNavigation;

src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/index.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3-
import { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n';
3+
import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n';
44

55
import messages from './messages';
66
import { ProblemTypes } from '../../../../../data/constants/problem';
@@ -10,9 +10,8 @@ import AnswersContainer from './AnswersContainer';
1010
const AnswerWidget = ({
1111
// Redux
1212
problemType,
13-
// injected
14-
intl,
1513
}) => {
14+
const intl = useIntl();
1615
const problemStaticData = ProblemTypes[problemType];
1716
return (
1817
<div>
@@ -31,8 +30,6 @@ const AnswerWidget = ({
3130

3231
AnswerWidget.propTypes = {
3332
problemType: PropTypes.string.isRequired,
34-
// injected
35-
intl: intlShape.isRequired,
3633
};
3734
export const AnswerWidgetInternal = AnswerWidget; // For testing only
38-
export default injectIntl(AnswerWidget);
35+
export default AnswerWidget;

src/editors/containers/ProblemEditor/components/EditProblemView/QuestionWidget/index.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import { connect } from 'react-redux';
4-
import { injectIntl, FormattedMessage, intlShape } from '@edx/frontend-platform/i18n';
4+
import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n';
55
import { getConfig } from '@edx/frontend-platform';
66

77
import { selectors } from '../../../../../data/redux';
@@ -16,9 +16,8 @@ const QuestionWidget = ({
1616
images,
1717
isLibrary,
1818
blockId,
19-
// injected
20-
intl,
2119
}) => {
20+
const intl = useIntl();
2221
const { editorRef, refReady, setEditorRef } = prepareEditorRef();
2322
const initialContent = question;
2423
const newContent = replaceStaticWithAsset({
@@ -62,8 +61,6 @@ QuestionWidget.propTypes = {
6261
images: PropTypes.shape({}).isRequired,
6362
isLibrary: PropTypes.bool.isRequired,
6463
blockId: PropTypes.string.isRequired,
65-
// injected
66-
intl: intlShape.isRequired,
6764
};
6865
export const mapStateToProps = (state) => ({
6966
question: selectors.problem.question(state),
@@ -74,4 +71,4 @@ export const mapStateToProps = (state) => ({
7471
});
7572

7673
export const QuestionWidgetInternal = QuestionWidget; // For testing only
77-
export default injectIntl(connect(mapStateToProps)(QuestionWidget));
74+
export default connect(mapStateToProps)(QuestionWidget);

src/editors/containers/VideoEditor/components/VideoSettingsModal/components/TranscriptWidget/index.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import { connect, useDispatch, useSelector } from 'react-redux';
33
import PropTypes from 'prop-types';
44
import {
55
FormattedMessage,
6-
injectIntl,
7-
intlShape,
6+
useIntl,
87
} from '@edx/frontend-platform/i18n';
98
import {
109
Form,
@@ -91,9 +90,8 @@ const TranscriptWidget = ({
9190
updateField,
9291
isUploadError,
9392
isDeleteError,
94-
// injected
95-
intl,
9693
}) => {
94+
const intl = useIntl();
9795
const [error] = React.useContext(ErrorContext).transcripts;
9896
const [showImportCard, setShowImportCard] = React.useState(true);
9997
const fullTextLanguages = module.hooks.transcriptLanguages(transcripts, intl);
@@ -224,7 +222,6 @@ TranscriptWidget.propTypes = {
224222
updateField: PropTypes.func.isRequired,
225223
isUploadError: PropTypes.bool.isRequired,
226224
isDeleteError: PropTypes.bool.isRequired,
227-
intl: PropTypes.shape(intlShape).isRequired,
228225
};
229226
export const mapStateToProps = (state) => ({
230227
transcripts: selectors.video.transcripts(state),
@@ -241,4 +238,4 @@ export const mapDispatchToProps = (dispatch) => ({
241238
});
242239

243240
export const TranscriptWidgetInternal = TranscriptWidget; // For testing only
244-
export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(TranscriptWidget));
241+
export default connect(mapStateToProps, mapDispatchToProps)(TranscriptWidget);

src/files-and-videos/generic/table-components/sort-and-filter-modal/SortAndFilterModal.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useContext, useEffect, useState } from 'react';
22
import PropTypes from 'prop-types';
3-
import { injectIntl, intlShape, FormattedMessage } from '@edx/frontend-platform/i18n';
3+
import { useIntl, FormattedMessage } from '@edx/frontend-platform/i18n';
44
import {
55
ActionRow,
66
Button,
@@ -18,9 +18,8 @@ const SortAndFilterModal = ({
1818
isSortOpen,
1919
closeSort,
2020
handleSort,
21-
// injected
22-
intl,
2321
}) => {
22+
const intl = useIntl();
2423
const {
2524
state, setAllFilters, columns, gotoPage,
2625
} = useContext(DataTableContext);
@@ -178,8 +177,6 @@ SortAndFilterModal.propTypes = {
178177
handleSort: PropTypes.func.isRequired,
179178
isSortOpen: PropTypes.bool.isRequired,
180179
closeSort: PropTypes.func.isRequired,
181-
// injected
182-
intl: intlShape.isRequired,
183180
};
184181

185-
export default injectIntl(SortAndFilterModal);
182+
export default SortAndFilterModal;

src/files-and-videos/generic/table-components/table-custom-columns/MoreInfoColumn.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useState } from 'react';
22
import { PropTypes } from 'prop-types';
3-
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
3+
import { useIntl } from '@edx/frontend-platform/i18n';
44
import {
55
Button,
66
Icon,
@@ -21,9 +21,8 @@ const MoreInfoColumn = ({
2121
handleOpenFileInfo,
2222
handleOpenDeleteConfirmation,
2323
fileType,
24-
// injected
25-
intl,
2624
}) => {
25+
const intl = useIntl();
2726
const [isOpen, , close, toggle] = useToggle();
2827
const [target, setTarget] = useState(null);
2928

@@ -144,12 +143,10 @@ MoreInfoColumn.propTypes = {
144143
handleOpenFileInfo: PropTypes.func.isRequired,
145144
handleOpenDeleteConfirmation: PropTypes.func.isRequired,
146145
fileType: PropTypes.string.isRequired,
147-
// injected
148-
intl: intlShape.isRequired,
149146
};
150147

151148
MoreInfoColumn.defaultProps = {
152149
handleLock: null,
153150
};
154151

155-
export default injectIntl(MoreInfoColumn);
152+
export default MoreInfoColumn;

src/files-and-videos/videos-page/VideosPage.jsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ import PropTypes from 'prop-types';
33
import { Helmet } from 'react-helmet';
44
import { useDispatch, useSelector } from 'react-redux';
55
import {
6-
injectIntl,
6+
useIntl,
77
FormattedMessage,
8-
intlShape,
98
} from '@edx/frontend-platform/i18n';
109
import {
1110
ActionRow,
@@ -51,9 +50,8 @@ import UploadModal from './upload-modal';
5150

5251
const VideosPage = ({
5352
courseId,
54-
// injected
55-
intl,
5653
}) => {
54+
const intl = useIntl();
5755
const dispatch = useDispatch();
5856
const [
5957
isTranscriptSettingsOpen,
@@ -331,8 +329,6 @@ const VideosPage = ({
331329

332330
VideosPage.propTypes = {
333331
courseId: PropTypes.string.isRequired,
334-
// injected
335-
intl: intlShape.isRequired,
336332
};
337333

338-
export default injectIntl(VideosPage);
334+
export default VideosPage;

src/grading-settings/assignment-section/index.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, { useState } from 'react';
22
import PropTypes from 'prop-types';
3-
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
3+
import { useIntl } from '@edx/frontend-platform/i18n';
4+
45
import { Button } from '@openedx/paragon';
56
import { CheckCircle, Warning } from '@openedx/paragon/icons';
67

@@ -15,14 +16,14 @@ const MIN_NUMBER_VALUE = 0;
1516
const MAX_NUMBER_VALUE = 100;
1617

1718
const AssignmentSection = ({
18-
intl,
1919
handleRemoveAssignment,
2020
setShowSavePrompt,
2121
graders,
2222
setGradingData,
2323
courseAssignmentLists,
2424
setShowSuccessAlert,
2525
}) => {
26+
const intl = useIntl();
2627
const [errorList, setErrorList] = useState({});
2728
const {
2829
type, weight, minCount, dropCount,
@@ -201,7 +202,6 @@ AssignmentSection.defaultProps = {
201202
};
202203

203204
AssignmentSection.propTypes = {
204-
intl: intlShape.isRequired,
205205
handleRemoveAssignment: PropTypes.func.isRequired,
206206
setGradingData: PropTypes.func.isRequired,
207207
setShowSavePrompt: PropTypes.func.isRequired,
@@ -212,4 +212,4 @@ AssignmentSection.propTypes = {
212212
),
213213
};
214214

215-
export default injectIntl(AssignmentSection);
215+
export default AssignmentSection;

0 commit comments

Comments
 (0)